Function at 0x4546a0
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5a2410
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x138
mov eax, dword [0x5f300c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x100], ecx
mov esi, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0x18]
mov edi, dword [ebx + 0x10]
mov ecx, dword [esi + 0x298]
mov dword [ebp - 0xa0], eax
add ecx, 4
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebx + 0x1c]
mov dword [ebp - 0xec], eax
mov eax, dword [ecx]
push edx
push ecx
mov dword [ebp - 0xe4], esi
mov dword [ebp - 0xfc], edi
mov dword [ebp - 0xa8], edx
call dword [eax + 0x18]
mov ecx, dword [ebx + 0x28]
mov dword [ebp - 0xdc], ecx
mov ecx, dword [ebx + 0x30]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebx + 0x2c]
mov dword [ebp - 0xd4], ecx
mov ecx, dword [ebp - 0xbc]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebx + 0x34]
mov dword [ebp - 0xb8], eax
mov eax, dword [ecx + 0x50]
dec eax
fldz
fstp dword [ebp - 0xe8]
mov dword [ebp - 0x118], eax
cmp dword [ebx + 0x24], eax
jne 0x454838
mov eax, dword [ecx + 0x1c]
xor edx, edx
mov esi, dword [ecx + 0x34]
test eax, eax
push dword [ebp - 0xa8]
setle dl
lea ecx, [eax - 1]
dec edx
and edx, ecx
movzx eax, byte [edx + esi]
mov esi, dword [ebp - 0xe4]
imul ecx, eax, 0x4c
mov eax, dword [edi + 0x14]
fld dword [ecx + eax + 0x28]
mov ecx, dword [esi + 0x298]
add ecx, 4
push ecx
fstp dword [ebp - 0xcc]
mov eax, dword [ecx]
call dword [eax + 0x54]
mov ecx, dword [esi + 0x238]
xor edx, edx
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0xe8], edx
cmp ecx, dword [esi + 0x23c]
je 0x454814
cmp dword [ecx], eax
jne 0x4547ef
mov eax, dword [ecx + 4]
cmp edx, eax
jge 0x4547e9
mov edx, eax
mov dword [ebp - 0xe8], edx
mov eax, dword [ebp - 0xe0]
cmp dword [ecx + 8], eax
jne 0x454809
mov eax, dword [ecx + 0xc]
cmp edx, eax
jge 0x454803
mov edx, eax
mov dword [ebp - 0xe8], edx
mov eax, dword [ebp - 0xe0]
add ecx, 0x10
cmp ecx, dword [esi + 0x23c]
jne 0x4547d6
fild dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xbc]
fstp dword [ebp - 0xf0]
fld dword [ebp - 0xf0]
fmul dword [ebp - 0xcc]
fstp dword [ebp - 0xe8]
mov eax, dword [ecx + 0x38]
mov edx, dword [ebp - 0xec]
fld dword [eax + edx*4]
fsub qword [ebx + 0x38]
fstp dword [ebp - 0xf0]
fld dword [ebp - 0xe8]
fldz
fcomp st(1)
fnstsw ax
fld dword [ebp - 0xf0]
test ah, 5
jp 0x454caf
fild dword [ebx + 0x20]
mov edx, dword [ebp - 0xa0]
fstp dword [ebp - 0xcc]
fld dword [ebp - 0xcc]
cmp byte [ebx + 0x44], 0
mov eax, dword [edx]
fstp dword [ebp - 0xe0]
fadd dword [ebp - 0xe0]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0xcc], eax
fst dword [ebp - 0xdc]
faddp st(1)
fstp dword [ebp - 0xd4]
je 0x4548ad
mov eax, dword [ebx + 0x40]
jmp 0x4548c7
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ecx + 0x34]
mov eax, dword [eax + 0x18]
movzx eax, byte [eax + ecx]
imul ecx, eax, 0x4c
mov eax, dword [edi + 0x14]
mov eax, dword [ecx + eax + 0x34]
push eax
mov eax, dword [ebp - 0xdc]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], eax
mov eax, dword [ebp - 0xb4]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0xd4]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0xb8]
mov dword [ecx + 0xc], eax
mov ecx, edx
call dword [ebp - 0xcc]
mov ecx, dword [ebp - 0x100]
cmp byte [ecx + 0x18], 0
jne 0x454cb3
cmp dword [edi + 0x80], 0x100
je 0x454924
cmp dword [edi + 0x84], 0x100
jne 0x454cb3
mov ecx, dword [esi + 0x298]
push dword [ebp - 0xa8]
add ecx, 4
push ecx
mov eax, dword [ecx]
call dword [eax + 0x54]
mov ecx, dword [esi + 0x238]
mov dword [ebp - 0xa4], eax
xor eax, eax
mov dword [ebp - 0xc8], eax
cmp ecx, dword [esi + 0x23c]
je 0x454998
mov edx, dword [ebp - 0xa4]
jmp 0x454960
cmp dword [ecx], edx
jne 0x454973
mov edx, dword [ecx + 4]
cmp eax, edx
jge 0x45496d
mov eax, edx
mov edx, dword [ebp - 0xa4]
cmp dword [ecx + 8], edx
jne 0x454987
mov edx, dword [ecx + 0xc]
cmp eax, edx
jge 0x454981
mov eax, edx
mov edx, dword [ebp - 0xa4]
add ecx, 0x10
cmp ecx, dword [esi + 0x23c]
jne 0x454960
mov dword [ebp - 0xc8], eax
mov ecx, dword [esi + 0x298]
push dword [ebp - 0xa8]
add ecx, 4
push ecx
mov eax, dword [ecx]
call dword [eax + 0x54]
mov ecx, dword [ebp - 0xc8]
mov dword [ebp - 0xc0], eax
xor eax, eax
push dword [ebp - 0xa8]
test ecx, ecx
sets al
dec eax
and eax, ecx
mov dword [ebp - 0xa4], eax
xor eax, eax
test ecx, ecx
sets al
dec eax
and eax, ecx
mov ecx, dword [esi + 0x298]
add ecx, 4
mov dword [ebp - 0xcc], eax
push ecx
mov eax, dword [ecx]
call dword [eax + 0x54]
mov ecx, eax
mov eax, dword [ebp - 0xc0]
cmp ecx, eax
jne 0x454a06
cmp dword [ebp - 0xcc], 0
setg dl
jmp 0x454a09
setl dl
test dl, dl
je 0x454a25
mov edx, dword [ebp - 0xa4]
mov dword [ebp - 0x110], ecx
mov dword [ebp - 0x10c], 0
jmp 0x454a47
mov dword [ebp - 0x110], eax
xor edx, edx
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0x10c], eax
mov eax, ecx
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xa4], edx
mov dword [ebp - 0x108], eax
xor ecx, ecx
mov eax, dword [esi + 0x23c]
sub eax, dword [esi + 0x238]
sar eax, 4
mov dword [ebp - 0x104], edx
mov dword [ebp - 0xac], ecx
test eax, eax
je 0x454cb3
mov dword [ebp - 0xc8], ecx
cmp ecx, dword [esi + 0x260]
jne 0x454a88
mov eax, dword [edi + 0x80]
jmp 0x454a8e
mov eax, dword [edi + 0x84]
cmp eax, 0x100
jne 0x454c88
mov edx, dword [ebp - 0x110]
sub esp, 0x10
mov ecx, dword [ebp - 0xc8]
mov eax, esp
add ecx, dword [esi + 0x238]
mov dword [eax], edx
mov edx, dword [ebp - 0x10c]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0xc0]
mov dword [eax + 8], edx
mov edx, dword [ebp - 0xa4]
mov dword [eax + 0xc], edx
lea eax, [ebp - 0x128]
push eax
call fcn.0046bbf0
mov eax, dword [ebp - 0x128]
mov dword [ebp - 0xf4], eax
cmp eax, dword [ebp - 0x120]
jne 0x454aff
mov eax, dword [ebp - 0x124]
cmp eax, dword [ebp - 0x11c]
je 0x454c82
mov ecx, dword [ebp - 0xbc]
xor edx, edx
mov eax, dword [ecx + 0x1c]
test eax, eax
mov esi, dword [ecx + 0x34]
setle dl
dec edx
lea ecx, [eax - 1]
and edx, ecx
movzx eax, byte [edx + esi]
imul ecx, eax, 0x4c
mov eax, dword [edi + 0x14]
fld dword [ecx + eax + 0x28]
mov eax, dword [ebp - 0xbc]
fstp dword [ebp - 0xec]
fld dword [ebp - 0xe0]
fld qword [ebx + 0x38]
mov ecx, dword [eax + 0x38]
mov eax, dword [ebp - 0xf4]
sub eax, dword [ebp - 0xb0]
fstp dword [ebp - 0xcc]
fld dword [ebp - 0xcc]
fld dword [ebp - 0xec]
fld dword [ecx + eax*4]
fadd st(3)
ret
fsub st(2)
fild dword [ebp - 0x124]
fstp dword [ebp - 0xf4]
fld dword [ebp - 0xf4]
mov eax, dword [ebp - 0x120]
sub eax, dword [ebp - 0xb0]
fmul st(2)
faddp st(1)
fstp dword [ebp - 0xf4]
fld dword [ebp - 0xf4]
fst dword [ebp - 0xdc]
fld dword [ecx + eax*4]
faddp st(4)
fxch st(3)
fsubrp st(2)
fild dword [ebp - 0x11c]
fstp dword [ebp - 0xf4]
fmul dword [ebp - 0xf4]
faddp st(1)
fstp dword [ebp - 0xf4]
fld dword [ebp - 0xf4]
fst dword [ebp - 0xd4]
fld dword [ebx + 0x28]
fcom st(2)
fnstsw ax
fstp st(2)
test ah, 5
jnp 0x454bde
fxch st(1)
fstp dword [ebp - 0xdc]
jmp 0x454be0
fstp st(1)
fld dword [ebx + 0x30]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
je 0x454bf6
fstp dword [ebp - 0xd4]
jmp 0x454bf8
fstp st(0)
mov edx, dword [ebp - 0xa0]
mov esi, dword [ebp - 0xe4]
mov eax, dword [edx]
mov cl, byte [esi + 0x26c]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0xac]
cmp eax, dword [esi + 0x260]
jne 0x454c32
movzx eax, cl
neg eax
sbb eax, eax
and eax, 0xfffffff0
add eax, 0x7c
jmp 0x454c37
mov eax, 0x78
push dword [edi + eax]
mov eax, dword [ebp - 0xdc]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], eax
mov eax, dword [ebp - 0xb4]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0xd4]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0xb8]
mov dword [ecx + 0xc], eax
mov ecx, edx
call dword [ebp - 0xf4]
mov edx, dword [ebp - 0x104]
mov eax, dword [ebp - 0x108]
mov dword [ebp - 0xa4], edx
mov dword [ebp - 0xc0], eax
mov ecx, dword [ebp - 0xac]
mov eax, dword [esi + 0x23c]
inc ecx
sub eax, dword [esi + 0x238]
add dword [ebp - 0xc8], 0x10
sar eax, 4
mov dword [ebp - 0xac], ecx
cmp ecx, eax
jb 0x454a78
jmp 0x454cb3
fstp st(1)
fstp st(0)
mov eax, dword [ebp - 0x100]
xor ecx, ecx
mov dword [ebp - 0xac], ecx
mov dword [ebp - 0xa4], 0x100
cmp byte [eax + 0x18], cl
jne 0x454d29
mov edx, dword [esi + 0x298]
add edx, 4
mov eax, dword [edx]
mov ecx, dword [eax + 0x18]
mov eax, dword [ebp - 0xa8]
inc eax
push eax
push edx
call ecx
mov ecx, dword [ebp - 0x118]
cmp dword [ebx + 0x24], ecx
jne 0x454d15
lea ecx, [esi + 0x238]
push eax
call fcn.0046c740
mov ecx, eax
mov dword [ebp - 0xac], ecx
cmp ecx, 1
jne 0x454d1d
mov eax, dword [edi + 0x80]
jmp 0x454d23
xor ecx, ecx
mov dword [ebp - 0xac], ecx
mov eax, dword [edi + 0x84]
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0x118]
fldz
fstp dword [ebp - 0xec]
cmp dword [ebx + 0x24], eax
jne 0x455273
mov eax, dword [ebp - 0xbc]
mov edx, dword [eax + 0x1c]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0xc8], edx
mov dword [ebp - 0xc0], eax
cmp edx, eax
jge 0x455273
fild dword [ebx + 0x20]
fstp dword [ebp - 0xb0]
fld dword [ebp - 0xb0]
fstp dword [ebp - 0xe0]
fld qword [ebx + 0x38]
fstp dword [ebp - 0xcc]
fld dword [ebp - 0xe0]
fld dword [ebp - 0xcc]
mov eax, dword [ebp - 0xbc]
fld dword [ebp - 0xe8]
push edx
mov eax, dword [eax + 0x38]
fld dword [eax + edx*4]
fadd st(3)
fsub st(2)
fadd st(1)
fstp dword [ebp - 0xb0]
fld dword [ebp - 0xb0]
fst dword [ebp - 0xdc]
fld dword [eax + edx*4 + 4]
mov eax, dword [ebp - 0xbc]
faddp st(4)
fxch st(3)
mov dword [ebp - 0x12c], 0
mov eax, dword [eax + 0x30]
fsubrp st(2)
add eax, edx
faddp st(1)
fstp dword [ebp - 0xb0]
fld dword [ebp - 0xb0]
fst dword [ebp - 0xd4]
fsubrp st(1)
fstp dword [ebp - 0xb0]
fld dword [ebp - 0xb0]
fadd dword [ebp - 0xec]
mov dword [ebp - 0xb0], eax
mov al, byte [eax]
mov byte [ebp - 0x99], al
mov eax, dword [ebp - 0xbc]
fstp dword [ebp - 0xec]
mov eax, dword [eax + 0x34]
movzx eax, byte [eax + edx]
mov edx, esi
push eax
push 0
push ecx
push dword [ebx + 0x44]
lea ecx, [ebp - 0x114]
mov dword [ebp - 0xf4], eax
push dword [ebx + 0x40]
push dword [ebp - 0xbc]
push edi
call fcn.004540d0
mov al, byte [ebp - 0x99]
add esp, 0x20
cmp al, 0x80
jae 0x454f5b
mov dword [ebp - 0x98], 0x5af0d8
mov dword [ebp - 0x94], 0x5af0dc
mov dword [ebp - 0x90], 0x5af0e0
jmp eax
invalid
pop edx
add bh, al
test dword [edi + edi*8 - 1], esi
jmp esp
invalid
pop edx
add bh, al
test dword [eax - 1], edi
invalid
invalid
call 0xc745a975
test dword [edi + edi*8 - 1], edi
invalid
in al, dx
invalid
pop edx
add bh, al
inc ebp
xor al, 0xf0
pop edx
add bh, al
inc ebp
test ah, dh
invalid
pop edx
add bh, al
inc ebp
mov al, bh
invalid
pop edx
add bh, al
inc ebp
invalid
cld
invalid
pop edx
add bh, al
inc ebp
nop
add cl, dh
pop edx
add bh, al
inc ebp
xchg esp, eax
add al, 0xf1
pop edx
add bh, al
inc ebp
cwde
or cl, dh
pop edx
add bh, al
inc ebp
pushfd
or al, 0xf1
pop edx
add bh, al
inc ebp
mov al, byte [0x5af110]
mov dword [ebp - 0x5c], 0x5af114
mov dword [ebp - 0x58], 0x5af118
mov dword [ebp - 0x54], 0x5af11c
mov dword [ebp - 0x50], 0x5af120
mov dword [ebp - 0x4c], 0x5af124
mov dword [ebp - 0x48], 0x5af128
mov dword [ebp - 0x44], 0x5af12c
mov dword [ebp - 0x40], 0x5af130
mov dword [ebp - 0x3c], 0x5af134
mov dword [ebp - 0x38], 0x5af138
mov dword [ebp - 0x34], 0x5af13c
mov dword [ebp - 0x30], 0x5af140
mov dword [ebp - 0x2c], 0x5af144
mov dword [ebp - 0x28], 0x5af148
mov dword [ebp - 0x24], 0x5af14c
mov dword [ebp - 0x20], 0x5af150
mov dword [ebp - 0x1c], 0x5af154
cmp al, 0x20
jae 0x454f54
movzx eax, al
mov eax, dword [ebp + eax*4 - 0x98]
jmp 0x454fba
mov eax, 0x5af158
jmp 0x454fba
lea ecx, [esi + 0x10]
mov esi, dword [ebp - 0xc0]
mov eax, esi
sub eax, dword [ebp - 0xc8]
push eax
push dword [ebp - 0xb0]
call fcn.00464aa0
mov dword [ebp - 0xc0], eax
test eax, eax
je 0x454f98
cmp dword [eax + 0x14], 0x10
jb 0x454f90
mov eax, dword [eax]
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xc8], esi
jmp 0x454fc0
movzx eax, byte [ebp - 0x99]
push eax
lea eax, [ebp - 0x12c]
push str.x_2X
push eax
call fcn.004025c0
add esp, 0xc
lea eax, [ebp - 0x12c]
mov dword [ebp - 0xc0], eax
imul eax, dword [ebp - 0xf4], 0x4c
mov edi, dword [edi + 0x14]
mov ecx, dword [ebp - 0xac]
mov esi, dword [ebp - 0x114]
mov edi, dword [eax + edi + 0x30]
test ecx, ecx
je 0x4550bb
mov eax, dword [ebp - 0xfc]
cmp byte [eax + 0x68], 0
je 0x454ffc
lea edi, [ecx - 1]
neg edi
sbb edi, edi
and edi, 0x10
mov edi, dword [edi + eax + 0x64]
cmp byte [eax + 0x70], 0
je 0x4550bb
mov ecx, dword [ebp - 0xe4]
mov ecx, dword [ecx + 0x298]
mov dword [ebp - 4], 0
mov ecx, dword [ecx + 0x80]
mov eax, dword [ecx]
mov eax, dword [eax + 0x1c]
call eax
dec eax
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0xa8], eax
jge 0x4550bb
cmp dword [ebp - 0xa4], 0x100
jne 0x4550bb
cmp dword [ebp - 0xac], 1
mov edx, dword [ebp - 0xa0]
mov eax, dword [edx]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp - 0xe4]
mov al, byte [eax + 0x26c]
jne 0x45507b
movzx ecx, al
neg ecx
sbb ecx, ecx
and ecx, 0xfffffff0
add ecx, 0x7c
jmp 0x455080
mov ecx, 0x78
mov eax, dword [ebp - 0xfc]
push dword [eax + ecx]
mov ecx, dword [ebp - 0xdc]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [ebp - 0xb4]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0xd4]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0xb8]
mov dword [eax + 0xc], ecx
mov ecx, edx
call dword [ebp - 0xb0]
jmp 0x4550f7
mov ecx, dword [ebp - 0xa0]
push esi
mov esi, dword [ebp - 0xdc]
sub esp, 0x10
mov eax, dword [ecx]
mov edx, dword [eax + 0x38]
mov eax, esp
mov dword [eax], esi
mov esi, dword [ebp - 0xb4]
mov dword [eax + 4], esi
mov esi, dword [ebp - 0xd4]
mov dword [eax + 8], esi
mov esi, dword [ebp - 0xb8]
mov dword [eax + 0xc], esi
call edx
mov esi, dword [ebp - 0x114]
mov eax, dword [ebp - 0x100]
mov ecx, dword [ebp - 0xc0]
cmp dword [eax + 0x1c], 0
sete al
sub esp, 8
mov edx, esp
mov byte [ebp - 0xc4], al
lea eax, [ecx + 1]
mov dword [ebp - 0xb0], eax
mov dword [edx], ecx
mov al, byte [ecx]
inc ecx
test al, al
jne 0x455120
sub ecx, dword [ebp - 0xb0]
sub esp, 0x10
mov eax, esp
mov dword [edx + 4], ecx
mov ecx, dword [ebp - 0xdc]
push dword [ebp - 0xc4]
mov dword [eax], ecx
mov ecx, dword [ebp - 0xb4]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0xd4]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0xb8]
push edi
mov edi, dword [ebp - 0xfc]
mov edx, edi
mov dword [eax + 0xc], ecx
mov ecx, dword [ebp - 0xa0]
push esi
call fcn.004541b0
mov ecx, dword [ebp - 0xac]
add esp, 0x24
mov esi, dword [ebp - 0xe4]
test ecx, ecx
je 0x45523f
cmp byte [edi + 0x70], 0
je 0x45523f
mov ecx, dword [esi + 0x298]
mov dword [ebp - 4], 1
mov ecx, dword [ecx + 0x80]
mov eax, dword [ecx]
mov eax, dword [eax + 0x1c]
call eax
dec eax
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0xa8], eax
jge 0x455239
cmp dword [ebp - 0xa4], 0x100
je 0x455239
cmp dword [ebp - 0xac], 1
mov al, byte [esi + 0x26c]
jne 0x4551e8
movzx ecx, al
neg ecx
sbb ecx, ecx
and ecx, 0xfffffff0
add ecx, 0x7c
jmp 0x4551ed
mov ecx, 0x78
mov eax, dword [ebp - 0xa0]
mov ecx, dword [edi + ecx]
push 0
mov eax, dword [eax]
mov edx, dword [eax + 0x40]
mov eax, dword [ebp - 0xa4]
push eax
push ecx
push eax
push ecx
mov ecx, dword [ebp - 0xdc]
push 0
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [ebp - 0xb4]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0xd4]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0xb8]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebp - 0xa0]
call edx
mov ecx, dword [ebp - 0xac]
mov eax, dword [ebp - 0xbc]
mov edx, dword [ebp - 0xc8]
fld dword [ebp - 0xe0]
inc edx
fld dword [ebp - 0xcc]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0xc8], edx
mov dword [ebp - 0xc0], eax
cmp edx, eax
jl 0x454d8a
fstp st(1)
fstp st(0)
fild dword [ebx + 0x20]
fstp dword [ebp - 0xc4]
fld dword [ebp - 0xc4]
fadd dword [ebp - 0xf0]
fadd dword [ebp - 0xe8]
fst qword [ebp - 0xf8]
fadd dword [ebp - 0xec]
fstp dword [ebp - 0xc4]
fld dword [ebp - 0xc4]
fst dword [ebp - 0xdc]
fadd dword [edi + 0x58]
fstp dword [ebp - 0xd4]
test ecx, ecx
je 0x455369
cmp byte [edi + 0x70], 0
je 0x455369
mov ecx, dword [esi + 0x298]
mov dword [ebp - 4], 2
mov ecx, dword [ecx + 0x80]
mov eax, dword [ecx]
mov eax, dword [eax + 0x1c]
call eax
dec eax
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0xa8], eax
jge 0x455369
cmp dword [ebp - 0xa4], 0x100
jne 0x455369
cmp dword [ebp - 0xac], 1
mov edx, dword [ebp - 0xa0]
mov eax, dword [edx]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0xc4], eax
mov al, byte [esi + 0x26c]
jne 0x45532c
movzx eax, al
neg eax
sbb eax, eax
and eax, 0xfffffff0
add eax, 0x7c
jmp 0x455331
mov eax, 0x78
push dword [edi + eax]
mov eax, dword [ebp - 0xdc]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], eax
mov eax, dword [ebp - 0xb4]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0xd4]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0xb8]
mov dword [ecx + 0xc], eax
mov ecx, edx
call dword [ebp - 0xc4]
jmp 0x45556b
cmp byte [ebx + 0x44], 0
je 0x455382
mov ecx, dword [ebp - 0xa0]
push dword [ebx + 0x40]
mov eax, dword [ecx]
mov edx, dword [eax + 0x38]
jmp 0x455479
mov ecx, dword [esi + 0x298]
mov dword [ebp - 4], 3
mov ecx, dword [ecx + 0x80]
mov eax, dword [ecx]
mov eax, dword [eax + 0x1c]
call eax
dec eax
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0xa8], eax
jge 0x455406
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax]
mov edx, dword [eax + 0x38]
mov eax, dword [ebp - 0xbc]
mov ecx, dword [eax + 0x34]
mov eax, dword [eax + 0x18]
movzx eax, byte [eax + ecx]
imul ecx, eax, 0x4c
mov eax, dword [edi + 0x14]
push dword [ecx + eax + 0x34]
mov ecx, dword [ebp - 0xdc]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [ebp - 0xb4]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0xd4]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0xb8]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebp - 0xa0]
call edx
jmp 0x4554a9
mov eax, dword [ebp - 0xbc]
mov edx, dword [edi + 0x14]
mov ecx, dword [eax + 0x34]
mov eax, dword [eax + 0x18]
movzx eax, byte [eax + ecx]
mov ecx, dword [ebp - 0xa0]
imul eax, eax, 0x4c
mov dword [ebp - 0xc4], eax
cmp byte [eax + edx + 0x38], 0
mov eax, dword [ecx]
mov edx, dword [eax + 0x38]
mov eax, dword [edi + 0x14]
je 0x455473
mov esi, dword [ebp - 0xc4]
push dword [esi + eax + 0x34]
mov esi, dword [ebp - 0xdc]
sub esp, 0x10
mov eax, esp
mov dword [eax], esi
mov esi, dword [ebp - 0xb4]
mov dword [eax + 4], esi
mov esi, dword [ebp - 0xd4]
mov dword [eax + 8], esi
mov esi, dword [ebp - 0xb8]
mov dword [eax + 0xc], esi
call edx
mov esi, dword [ebp - 0xe4]
jmp 0x4554a9
push dword [eax + 0x9b4]
mov edi, dword [ebp - 0xdc]
sub esp, 0x10
mov eax, esp
mov dword [eax], edi
mov edi, dword [ebp - 0xb4]
mov dword [eax + 4], edi
mov edi, dword [ebp - 0xd4]
mov dword [eax + 8], edi
mov edi, dword [ebp - 0xb8]
mov dword [eax + 0xc], edi
call edx
mov edi, dword [ebp - 0xfc]
cmp dword [ebp - 0xac], 0
je 0x45556b
cmp byte [edi + 0x70], 0
je 0x45556b
mov ecx, dword [esi + 0x298]
mov dword [ebp - 4], 4
mov ecx, dword [ecx + 0x80]
mov eax, dword [ecx]
mov eax, dword [eax + 0x1c]
call eax
mov ecx, dword [ebp - 0xa8]
dec eax
mov dword [ebp - 4], 0xffffffff
cmp ecx, eax
jge 0x455571
cmp dword [ebp - 0xa4], 0x100
je 0x455571
cmp dword [ebp - 0xac], 1
mov al, byte [esi + 0x26c]
jne 0x45551a
movzx ecx, al
neg ecx
sbb ecx, ecx
and ecx, 0xfffffff0
add ecx, 0x7c
jmp 0x45551f
mov ecx, 0x78
mov eax, dword [ebp - 0xa0]
mov ecx, dword [edi + ecx]
push 0
mov eax, dword [eax]
mov edx, dword [eax + 0x40]
mov eax, dword [ebp - 0xa4]
push eax
push ecx
push eax
push ecx
mov ecx, dword [ebp - 0xdc]
push 0
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [ebp - 0xb4]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0xd4]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0xb8]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebp - 0xa0]
call edx
mov ecx, dword [ebp - 0xa8]
fld dword [ebp - 0xd4]
fst dword [ebp - 0xdc]
fld dword [ebx + 0x28]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x455593
fstp dword [ebp - 0xdc]
jmp 0x455595
fstp st(0)
cmp dword [edi + 0x14c], 0
fld dword [ebx + 0x30]
fstp dword [ebp - 0xd4]
je 0x4555c7
push ecx
mov ecx, dword [esi + 0x298]
lea eax, [ebp - 0x148]
push eax
call fcn.00426e60
mov byte [ebp - 0x99], 1
cmp dword [eax + 4], 0
jne 0x4555ce
mov byte [ebp - 0x99], 0
mov eax, dword [ebp - 0x118]
cmp dword [ebx + 0x24], eax
jne 0x455634
mov dword [ebp - 4], 5
cmp dword [esi + 0x27c], 0
je 0x45561f
mov ecx, dword [esi + 0x284]
push dword [ebp - 0xa8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
test al, al
jne 0x45561f
mov ecx, dword [esi + 0x284]
push dword [ebp - 0xa8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
test eax, eax
jne 0x455621
mov eax, dword [esi + 0x280]
jmp 0x455621
xor eax, eax
mov dword [ebp - 4], 0xffffffff
test eax, eax
jne 0x45567e
cmp byte [ebp - 0x99], al
jne 0x45567e
mov ecx, dword [ebp - 0xdc]
sub esp, 0x10
mov eax, esp
push dword [ebx + 0x24]
mov dword [eax], ecx
push dword [ebp - 0xa8]
mov ecx, dword [ebp - 0xb4]
push dword [ebp - 0xbc]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0xd4]
push edi
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0xb8]
push esi
push dword [ebp - 0xa0]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebp - 0x100]
call fcn.0045b010
mov edx, dword [ebp - 0xbc]
mov eax, dword [ebx + 0x24]
inc eax
mov byte [ebp - 0x99], 0
cmp eax, dword [edx + 0x50]
jge 0x4558c5
test byte [edi + 0x18c], 1
je 0x4556c1
test eax, eax
jg 0x4556a9
xor eax, eax
jmp 0x4556b8
mov ecx, dword [edx + 4]
test ecx, ecx
je 0x4556b5
mov eax, dword [ecx + eax*4]
jmp 0x4556b8
mov eax, dword [edx + 0x18]
test eax, eax
setne byte [ebp - 0x99]
mov ecx, dword [edi + 0x118]
test ecx, ecx
je 0x4557b4
cmp byte [esi + 0x218], 0
jne 0x4556e5
cmp byte [edi + 0x11d], 0
je 0x4557b4
cmp byte [edi + 0x11c], 0
je 0x4557b4
cmp dword [edi + 0x124], 0x100
jne 0x4557b4
cmp byte [edx + 0x29], 0
je 0x4557b4
mov eax, 0x55555556
mov dword [ebp - 0x134], 1
imul dword [edi + 0x48]
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x130], eax
cmp eax, ecx
jl 0x45573b
mov eax, 1
cmp ecx, 1
jl 0x45573b
mov eax, ecx
fld dword [ebx + 0x30]
mov esi, dword [ebp - 0xa0]
mov dword [ebp - 0xf0], eax
fild dword [ebp - 0xf0]
fstp dword [ebp - 0xc4]
fsub dword [ebp - 0xc4]
mov edx, dword [esi]
push dword [edi + 0x120]
fstp dword [ebp - 0x128]
fld dword [ebx + 0x2c]
sub esp, 0x10
mov eax, dword [ebp - 0x128]
mov ecx, esp
fstp dword [ebp - 0x124]
fld dword [ebx + 0x30]
fstp dword [ebp - 0x120]
fld dword [ebx + 0x34]
mov dword [ecx], eax
mov eax, dword [ebp - 0x124]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x120]
mov dword [ecx + 8], eax
fstp dword [ebp - 0x11c]
mov eax, dword [ebp - 0x11c]
mov dword [ecx + 0xc], eax
mov ecx, esi
call dword [edx + 0x38]
jmp 0x4557ba
mov esi, dword [ebp - 0xa0]
cmp byte [ebp - 0x99], 0
je 0x4558c5
test byte [edi + 0x190], 1
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x110], eax
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0x108], eax
je 0x45580b
fld qword [ebp - 0xf8]
fstp dword [ebp - 0xc4]
fld dword [ebp - 0xc4]
fst dword [ebp - 0x110]
fadd dword [edi + 0x58]
fstp dword [ebp - 0x108]
jmp 0x45581d
fld dword [ebx + 0x30]
fst dword [ebp - 0x108]
fsub dword [edi + 0x58]
fstp dword [ebp - 0x110]
mov eax, dword [ebp - 0x100]
mov edx, dword [eax + 0x70]
test edx, edx
jne 0x45587a
cmp byte [edi + 0x90], dl
je 0x45583a
mov ecx, dword [edi + 0x8c]
jmp 0x455843
mov eax, dword [edi + 0x14]
mov ecx, dword [eax + 0x9b0]
mov eax, dword [ebp - 0x110]
sub esp, 0x10
mov edx, esp
push ecx
mov dword [edx], eax
mov ecx, esi
mov eax, dword [ebp - 0xb4]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x108]
mov dword [edx + 8], eax
mov eax, dword [ebp - 0xb8]
mov dword [edx + 0xc], eax
mov dl, 1
call fcn.00460a80
add esp, 0x14
jmp 0x4558c5
cmp byte [edi + 0x90], 0
je 0x45588b
mov eax, dword [edi + 0x8c]
jmp 0x455894
mov eax, dword [edi + 0x14]
mov eax, dword [eax + 0x9b0]
push eax
mov eax, dword [ebp - 0x110]
push 1
sub esp, 0x10
mov ecx, esp
push esi
mov dword [ecx], eax
mov eax, dword [ebp - 0xb4]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x108]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0xb8]
mov dword [ecx + 0xc], eax
call edx
add esp, 0x1c
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0059df64
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x40