Function at 0x42e790
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov esi, dword [esp + 0x70]
mov ebx, dword [esi + 0x5ac]
mov dword [esp + 0x40], ebx
movsx edx, word [esi + 0x5a8]
mov eax, dword [ebx + 0x8c]
mov edx, dword [eax + edx*4]
mov dword [esp + 0x34], edx
movsx eax, byte [edx + 0x78]
mov edx, dword [0x5ebe98]
mov ecx, dword [edx + 0x610]
lea edx, [eax*4]
shl eax, 5
sub eax, edx
fld dword [eax + ecx + 0x10]
fnstcw word [esp + 0x5a]
mov ax, word [esp + 0x5a]
mov ah, 0xc
mov word [esp + 0x58], ax
mov eax, dword [0x5b4178]
fldcw word [esp + 0x58]
fistp dword [esp + 0x38]
fldcw word [esp + 0x5a]
test eax, eax
jne 0x42ea26
mov ebp, esi
jmp 0x42e808
mov ebp, eax
mov eax, dword [ebp + 0x5d4]
test eax, eax
jne 0x42e806
cmp byte [esi + 0x59b], 0
jle 0x42ed6b
movsx eax, word [esi + 0x302]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x5c8]
test ax, ax
je 0x42ea2e
cwde
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov dword [esp + 0x50], eax
mov eax, dword [0x5b46ec]
test eax, eax
jle 0x42ea26
xor edi, edi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
jmp 0x42e8bc
mov eax, dword [esp + 0x40]
cmp byte [eax + 0xb5], 0
jle 0x42ea61
mov eax, dword [esi + 0x5ec]
test eax, eax
je 0x42ea61
cmp edx, eax
je 0x42ea61
inc edi
cmp dword [0x5b46ec], edi
jle 0x42e8f6
mov eax, dword [esp + 0x40]
cmp dword [esi + 0x5ac], eax
jne 0x42e8f6
lea ebx, [edi*4]
mov eax, dword [0x5ec138]
mov edx, dword [eax + ebx]
cmp byte [edx + 1], 0
je 0x42e8a7
cmp byte [edx + 0x586], 0
jne 0x42e8a7
cmp byte [edx + 0x595], 1
jne 0x42e880
mov ecx, dword [esp + 0x34]
cmp byte [ecx + 0x78], 0xf
je 0x42e880
inc edi
cmp dword [0x5b46ec], edi
jg 0x42e8b0
mov eax, dword [esp + 0x24]
test eax, eax
je 0x42ea26
cmp esi, ebp
je 0x42eda6
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx + 0x34]
test dx, dx
jle 0x42e964
mov eax, dword [0x5b4258]
test eax, eax
je 0x42e964
mov eax, dword [0x5b423c]
test eax, eax
jne 0x42e964
cmp byte [esi + 0x599], 0
jne 0x42e964
cmp byte [ecx + 0x38], 2
je 0x42ee9c
mov ecx, dword [ebp + 0x5c]
test ecx, ecx
jle 0x42ee9c
movsx eax, dx
sub ecx, eax
mov dword [ebp + 0x5c], ecx
test ecx, ecx
js 0x42eebb
mov byte [ebp + 0x598], 0
mov byte [esi + 0x599], 1
mov eax, dword [esp + 0x28]
test eax, eax
je 0x42ec20
mov edi, dword [0x5b462c]
test edi, edi
je 0x42ecaf
mov edx, dword [esp + 0x34]
movsx eax, byte [edx + 0x78]
mov ecx, eax
shl ecx, 5
lea edx, [eax*4]
mov eax, dword [esp + 0x20]
sub ecx, edx
mov edx, dword [eax + 0x610]
add ecx, edx
fld dword [ecx + 0x14]
fldz
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
and ah, 0x45
cmp ah, 0x40
jne 0x42ed7b
fstp st(0)
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x50]
sar eax, 0x1f
shr eax, 0x1e
lea ebx, [eax + edx]
sar ebx, 2
mov eax, dword [0x5b4628]
test eax, eax
je 0x42ed29
fld dword [ecx + 0x18]
fldz
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
and ah, 0x45
xor ah, 0x40
jne 0x42ed2c
fstp st(0)
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 0x5c]
sub edx, ebx
mov dword [ecx + 0x5c], edx
test edx, edx
js 0x42ee8c
xor ebx, ebx
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 0x58]
cmp ebx, edx
jge 0x42edd4
sub edx, ebx
mov dword [ecx + 0x58], edx
jmp 0x42ecec
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [0x545dd0]
inc eax
mov dword [0x545dd0], eax
test eax, eax
jne 0x42ea47
mov dword [0x545dd0], 1
mov ecx, dword [0x545dd0]
mov dword [esp + 0x2c], ecx
mov word [esi + 0x5c8], cx
mov dword [esp + 0x40], ebx
jmp 0x42e83e
movsx eax, word [edx + 0x125]
test dword [esp + 0x14], eax
je 0x42e8a7
mov eax, dword [edx + 0x558]
cmp eax, dword [0x5b4148]
jae 0x42e8a7
mov eax, dword [edx + 0x5c0]
test eax, eax
je 0x42e8a7
movsx eax, word [edx + 0x5ca]
cmp eax, dword [esp + 0x2c]
je 0x42e8a7
cmp dword [edx + 0x5bc], 0x4256f0
je 0x42ee4a
mov eax, dword [esp + 0x34]
cmp byte [eax + 0x68], 1
jg 0x42e8a7
mov al, byte [edx + 0x58f]
test al, al
jne 0x42ee29
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 0x6c]
test eax, eax
js 0x42e8a7
push ecx
push 0
push edx
push esi
call fcn.00401b00
add esp, 0x10
test eax, eax
jne 0x42eb1b
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x3c]
test eax, eax
je 0x42e8a7
push eax
mov eax, dword [0x5ec138]
push 1
mov eax, dword [eax + ebx]
push eax
push esi
call fcn.00401b00
add esp, 0x10
test eax, eax
je 0x42e8a7
mov eax, dword [0x5ec138]
mov edx, dword [0x5ebe98]
mov dword [esp + 0x18], edx
mov edx, dword [eax + ebx]
push eax
mov eax, dword [esp + 0x30]
mov dword [0x5ebe98], edx
push eax
push 0
mov ecx, dword [esp + 0x40]
movsx eax, word [ecx + 0x84]
push eax
mov eax, dword [ecx + 0x6c]
push eax
mov eax, dword [ecx + 0x70]
push eax
mov eax, dword [ecx + 0x38]
push eax
movsx eax, byte [ecx + 0x78]
push eax
mov eax, dword [ecx + 0x74]
push eax
mov eax, dword [esp + 0x74]
push eax
push esi
push edx
call fcn.0040bcc0
add esp, 0x2c
mov eax, dword [esp + 0x30]
push eax
push 1
mov edx, dword [esp + 0x40]
movsx eax, word [edx + 0x84]
push eax
mov eax, dword [edx + 0x6c]
push eax
mov ecx, dword [edx + 0x70]
push ecx
mov eax, dword [edx + 0x38]
push eax
movsx eax, byte [edx + 0x78]
push eax
mov eax, dword [edx + 0x74]
push eax
mov eax, dword [esp + 0x74]
push eax
mov eax, dword [0x5ebe98]
push eax
push esi
call fcn.0040bcc0
mov eax, dword [0x5ecaa8]
add esp, 0x30
test eax, eax
je 0x42ea26
mov ecx, dword [0x5ebe98]
mov edx, ecx
mov dword [esp + 0x4c], ecx
jmp 0x42ebc4
mov edx, eax
mov eax, dword [edx + 0x5d4]
test eax, eax
jne 0x42ebc2
cmp ebp, edx
sete byte [esp + 0x3f]
mov al, byte [esp + 0x3f]
xor eax, 1
and eax, 0xff
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x5d4]
test eax, eax
je 0x42eec7
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax + 0x5d4]
test ecx, ecx
je 0x42eec7
mov dword [esp + 0x24], 0
mov ecx, dword [esp + 0x18]
mov dword [0x5ebe98], ecx
jmp 0x42e8a7
mov eax, dword [0x545d58]
mov edx, dword [0x5b4148]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp + 0x568], eax
mov eax, dword [ebp + 0x608]
inc eax
cmp ax, word [ebp + 0x60a]
mov word [ebp + 0x608], ax
jbe 0x42ec5e
cmp ax, 1
jbe 0x42ec5e
mov word [ebp + 0x60a], ax
cmp byte [esi + 0x59b], 0
jle 0x42ed07
mov edx, dword [0x5454e0]
test edx, edx
js 0x42ed07
sub esp, 0xc
movsx eax, word [0x5ec9a8]
push 0x64
push eax
push eax
push 0
push edx
call fcn.004b0400
add esp, 0x20
cmp byte [esi + 0x597], 0
je 0x42ea26
mov dword [esp + 0x70], esi
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0040fd00
mov edx, dword [esp + 0x34]
movsx eax, byte [edx + 0x78]
mov ecx, eax
shl ecx, 5
lea edx, [eax*4]
mov eax, dword [esp + 0x20]
sub ecx, edx
mov ebx, dword [eax + 0x610]
add ecx, ebx
fld dword [ecx + 0x14]
fldz
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
and ah, 0x45
xor ah, 0x40
jne 0x42ed7b
fstp st(0)
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx + 0x34]
test edx, edx
jns 0x42ec79
mov edx, dword [0x5454dc]
test edx, edx
jns 0x42ec79
jmp 0x42ec92
mov edi, dword [0x5b41b8]
test edi, edi
je 0x42edf2
mov eax, dword [esp + 0x34]
mov edx, dword [eax + 0x28]
test edx, edx
jns 0x42ec79
jmp 0x42ec92
fld dword [ecx + 0x18]
fld1
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
and ah, 0x45
xor ah, 0x40
je 0x42e9f5
fld dword [0x5503e4]
fxch st(1)
fucompp
fnstsw ax
and ah, 0x45
xor ah, 0x40
jne 0x42ea0d
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x5c]
sub eax, ebx
mov dword [edx + 0x5c], eax
jmp 0x42ea0d
movsx edx, word [esi + 0x300]
mov dword [esp + 0x14], edx
jmp 0x42e82a
fild dword [esp + 0x50]
fnstcw word [esp + 0x5a]
fmulp st(1)
mov ax, word [esp + 0x5a]
mov ah, 0xc
mov word [esp + 0x58], ax
fldcw word [esp + 0x58]
fistp dword [esp + 0x54]
fldcw word [esp + 0x5a]
mov ebx, dword [esp + 0x54]
jmp 0x42e9cf
mov edx, dword [esp + 0x40]
cmp word [edx + 0x34], 0
jle 0x42e964
mov eax, dword [0x5b4258]
test eax, eax
je 0x42e964
mov eax, dword [0x5b423c]
test eax, eax
jne 0x42e964
jmp 0x42e95d
mov ebp, dword [0x5b4630]
test ebp, ebp
je 0x42ee60
mov eax, dword [esp + 0x20]
mov dword [eax + 0x58], 1
jmp 0x42ecec
mov edx, dword [esp + 0x34]
mov ecx, dword [edx + 0x28]
test ecx, ecx
js 0x42ec92
sub esp, 0xc
mov eax, 0x69
movsx edx, word [0x5ec9a8]
mov ebx, dword [esp + 0x5c]
sub eax, ebx
push eax
push edx
push edx
push 0
push ecx
call fcn.004b0400
add esp, 0x20
jmp 0x42ec92
dec al
jne 0x42e8a7
movsx eax, word [edx + 0x2e0]
mov ecx, dword [esp + 0x34]
cmp dword [ecx + 0x6c], eax
jg 0x42e8a7
jmp 0x42eade
mov ecx, dword [esp + 0x34]
cmp byte [ecx + 0x68], 0
jle 0x42e8a7
jmp 0x42eac1
mov edx, dword [esp + 0x20]
push edi
push edi
mov ebx, dword [0x5ebe98]
mov ecx, dword [esp + 0x3c]
mov dword [0x5ebe98], edx
push ecx
push esi
call dword [edx + 0x5c0]
add esp, 0x10
mov dword [0x5ebe98], ebx
jmp 0x42ecec
mov ebx, edx
mov dword [ecx + 0x5c], 0
neg ebx
jmp 0x42ea0d
mov eax, dword [ebp + 0x58]
movsx edx, dx
sub eax, edx
mov dword [ebp + 0x58], eax
test eax, eax
jg 0x42e956
mov dword [ebp + 0x58], 1
jmp 0x42e956
mov dword [ebp + 0x5c], 0
jmp 0x42e956
cmp byte [esi + 0x11e], 0
jne 0x42f4f0
cmp byte [esp + 0x3f], 0
jne 0x42ec0d
mov edx, dword [esp + 0x34]
cmp byte [edx + 0x78], 0xf
je 0x42f504
mov eax, dword [esp + 0x4c]
cmp byte [eax + 0x59c], 1
je 0x42fabe
cmp byte [esi + 0x59c], 1
je 0x42fab2
mov edx, dword [0x5ebe98]
mov dword [esp + 0xc], edx
push edx
call fcn.004016f0
pop edx
test eax, eax
je 0x42ef32
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0xc]
mov eax, dword [ecx + 0x6c]
sub word [edx + 0x2e0], ax
mov ecx, dword [esp + 0xc]
cmp byte [ecx + 0x181], 0
jne 0x42f2a8
mov eax, dword [ecx + 0x2c8]
mov eax, dword [eax + 0x30]
test eax, eax
je 0x42ef7f
cmp word [eax + 8], 0
je 0x42ef7f
cmp word [ecx + 0x2e6], 0
je 0x42ef6d
jle 0x42ef7f
cmp word [ecx + 0x2e4], 0
jle 0x42ef7f
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x5d0]
test ecx, ecx
je 0x42f1fa
mov eax, dword [esp + 0xc]
mov ecx, eax
mov edx, dword [eax + 0x5a8]
mov eax, dword [eax + 0x5ac]
cmp dx, word [eax + 0xae]
jl 0x42f1d0
cmp dx, word [eax + 0xac]
jg 0x42f1d0
cmp byte [ecx + 0x593], 0
jne 0x42f1d0
cmp byte [eax + 0xb1], 0
je 0x42efcd
mov edx, dword [ecx + 0x58]
mov eax, dword [esp + 0x50]
sub edx, eax
mov dword [ecx + 0x58], edx
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov edx, dword [edx + 0x5ac]
mov ecx, dword [ecx + 0x2c8]
mov dword [esp], edx
mov dword [esp + 4], ecx
movsx eax, word [edx + 0xa6]
mov edx, dword [0x5b4134]
mov eax, dword [edx + eax*4 - 4]
mov dword [esp + 0x30], eax
mov edx, dword [ecx + eax*4]
mov eax, dword [esp + 0x2c]
mov word [esp + 0x46], ax
test edx, edx
je 0x42f05c
cmp word [edx + 8], 0
je 0x42f05c
cmp byte [edx + 0xb5], 0xff
jne 0x42f02c
mov ecx, dword [esp]
mov al, byte [ecx + 0xb5]
mov byte [edx + 0xb5], al
push eax
push 0
mov eax, dword [esp + 0x38]
mov ecx, dword [0x5ebe98]
push eax
push ecx
call fcn.0041e4c0
mov eax, dword [esp + 0x3c]
mov word [esp + 0x56], ax
mov eax, dword [0x5ebe98]
mov edx, dword [esp + 0x3c]
add esp, 0x10
mov word [eax + 0x5ca], dx
mov ecx, dword [esp + 0x34]
cmp byte [ecx + 0x42], 0
jne 0x42fb16
mov eax, dword [0x5ebe98]
cmp byte [eax + 0x1ac], 0
jne 0x42fb07
mov eax, dword [ecx + 0x30]
test eax, eax
js 0x42faf0
push edx
push 0
push eax
mov eax, dword [0x5ec208]
push 0
push 0
push eax
mov eax, dword [0x5ec528]
push eax
mov eax, dword [0x5ed038]
push eax
call fcn.00426410
mov dword [esp + 0x3c], eax
add esp, 0x20
mov ebx, dword [esp + 0x1c]
mov al, byte [esp + 0x28]
test ebx, ebx
je 0x42fadd
sub esp, 0xc
mov ecx, dword [esp + 0x28]
push ecx
call fcn.0040b960
add esp, 0x10
mov ebx, dword [esi + 0x5ac]
mov ecx, dword [esp + 0x1c]
cmp byte [ecx + 0x178], 0
je 0x42f101
mov eax, dword [0x5ebe98]
fld dword [esi + 0x3ac]
fld dword [eax + 0x3ac]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x45
sete byte [ecx + 0x3a7]
mov edx, dword [esp + 0x1c]
mov eax, dword [0x5ec208]
mov byte [edx + 0x596], 2
mov dword [edx + 0x3c8], eax
mov ecx, dword [esp + 0x2c]
mov al, byte [esp + 0x28]
mov word [esp + 0x46], cx
test al, al
je 0x42f139
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x42f139
mov eax, dword [0x5ebe98]
mov dword [esp + 0x20], eax
mov dx, word [ebx + 0xa6]
test dx, dx
mov word [esp + 0x10], dx
je 0x42f75d
cmp word [ebx + 0xae], 0xffff
je 0x42f54e
mov eax, dword [0x5ebe98]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov dx, word [esp + 0x46]
mov word [eax + 0x5ca], dx
mov ecx, dword [esp + 0x20]
cmp eax, ecx
jne 0x42f187
mov al, byte [esp + 0x28]
mov byte [ecx + 0x58e], al
mov ecx, dword [esp + 0x34]
mov edx, dword [0x5ebe98]
mov dword [esp + 0xc], edx
mov eax, 0x28
mov dx, word [ecx + 0x86]
test dx, dx
je 0x42f1a9
movsx eax, dx
mov edx, dword [0x5b4148]
add eax, edx
mov edx, dword [esp + 0xc]
mov dword [edx + 0x558], eax
mov dword [edx + 0x554], 0
jmp 0x42ec0d
push edx
push edx
mov eax, dword [esp + 0x3c]
push eax
push esi
mov edx, dword [esp + 0x1c]
call dword [edx + 0x5c0]
add esp, 0x10
test eax, eax
jne 0x42f77e
mov dword [esp + 0x24], 0
jmp 0x42e8a7
push eax
call fcn.004016f0
pop edx
test eax, eax
jne 0x42ef7f
mov edx, dword [esp + 0xc]
cmp byte [edx + 0x593], 0
jne 0x42ef7f
mov al, byte [edx + 0x3a7]
cmp al, byte [esi + 0x3a7]
je 0x42f76c
mov ecx, dword [esp + 0xc]
cmp byte [ecx + 0x588], 0
jne 0x42f246
cmp byte [ecx + 0x58a], 0
jns 0x42ef7f
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0xc]
fild dword [eax + 0x38]
movsx eax, byte [eax + 0x78]
mov ecx, dword [edx + 0x610]
lea edx, [eax*4]
shl eax, 5
sub eax, edx
fld dword [eax + ecx + 0xc]
fucompp
fnstsw ax
test ah, 1
jne 0x42ef7f
call fcn.004c9550
mov edx, dword [0x5ebe98]
mov dword [esp + 0xc], edx
movsx edx, word [edx + 0x183]
and edx, eax
dec edx
je 0x42f911
mov edx, dword [esp + 0xc]
cmp byte [edx + 0x181], 0
je 0x42ef7f
mov ecx, dword [esp + 0xc]
cmp byte [ecx + 0x58e], 0
je 0x42ef7f
cmp word [ecx + 0x2e6], 0
je 0x42f2d7
jle 0x42ef7f
cmp word [ecx + 0x2e4], 0
jle 0x42ef7f
mov edx, dword [esp + 0xc]
mov al, byte [edx + 0x3a7]
cmp al, byte [esi + 0x3a7]
je 0x42faa0
mov ecx, dword [esp + 0xc]
cmp byte [ecx + 0x593], 0
jne 0x42ef7f
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x34]
movsx ecx, byte [edx + 0x78]
mov eax, dword [eax + 0x38]
mov edx, ecx
shl edx, 5
mov dword [esp + 0x48], eax
lea eax, [ecx*4]
sub edx, eax
mov eax, dword [esp + 0xc]
fild dword [esp + 0x48]
add edx, dword [eax + 0x610]
fld dword [edx + 0xc]
fucompp
fnstsw ax
test ah, 1
jne 0x42ef7f
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x170]
cmp ax, 0
mov word [esp + 0xa], ax
je 0x42f363
jle 0x42ef7f
cwde
cmp dword [esp + 0x50], eax
jge 0x42ef7f
fld dword [edx + 0x10]
fldz
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
and ah, 0x45
cmp ah, 0x40
je 0x42fa99
fild dword [esp + 0x50]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x45
jne 0x42ef7f
push eax
push eax
push 1
mov edx, dword [esp + 0x40]
movsx eax, word [edx + 0x84]
push eax
mov eax, dword [edx + 0x6c]
push eax
mov eax, dword [edx + 0x70]
push eax
mov eax, dword [esp + 0x60]
push eax
push ecx
mov eax, dword [edx + 0x74]
push eax
mov ecx, dword [esp + 0x74]
push ecx
mov edx, dword [esp + 0x34]
push edx
push esi
call fcn.0040b9e0
mov ecx, dword [0x5ebe98]
mov dword [esp + 0x3c], ecx
add esp, 0x30
cmp word [ecx + 0x2e6], 0
jle 0x42f3e6
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 0x70]
sub word [ecx + 0x2e4], ax
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0xc]
inc word [ecx + 0xda]
mov al, byte [edx + 0x2b7]
test al, al
je 0x42f430
movsx eax, al
cmp dword [esp + 0x50], eax
jl 0x42f430
mov ecx, edx
mov edx, dword [edx + 0x2c8]
mov eax, dword [ecx + 0x5ac]
cmp eax, dword [edx + 0x30]
jne 0x42f430
push eax
push 0
mov edx, dword [esp + 0x3c]
movsx eax, byte [edx + 0x78]
push eax
push ecx
call fcn.004233d0
add esp, 0x10
sub esp, 0xc
mov ecx, dword [esp + 0x40]
movsx eax, word [ecx + 0x84]
push eax
mov eax, dword [ecx + 0x6c]
push eax
mov eax, dword [ecx + 0x70]
push eax
mov eax, dword [ecx + 0x38]
push eax
movsx eax, byte [ecx + 0x78]
push eax
mov eax, dword [ecx + 0x74]
mov ecx, dword [0x5ebe98]
push eax
mov eax, dword [esp + 0x74]
push eax
push esi
push ecx
call fcn.0040bec0
add esp, 0x30
mov eax, dword [esp + 0x34]
cmp byte [eax + 0x42], 0
jne 0x42fb47
mov eax, dword [0x5ebe98]
cmp byte [eax + 0x1ac], 0
jne 0x42fb38
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 0x30]
test eax, eax
js 0x42fb21
push edx
push 0
push eax
mov eax, dword [0x5ec208]
push 0
push 0
push eax
mov eax, dword [0x5ec528]
push eax
mov eax, dword [0x5ed038]
push eax
call fcn.00426410
mov dword [esp + 0x3c], eax
add esp, 0x20
mov ebx, dword [esp + 0x1c]
test ebx, ebx
je 0x42faca
sub esp, 0xc
mov ecx, dword [esp + 0x28]
push ecx
call fcn.0040b960
mov dword [esp + 0x38], 1
mov ebx, dword [esi + 0x5ac]
add esp, 0x10
jmp 0x42f0d3
push esi
call fcn.004016f0
pop edx
test eax, eax
jne 0x42ec05
jmp 0x42eed4
push eax
push eax
push 1
movsx eax, word [edx + 0x84]
push eax
mov eax, dword [edx + 0x6c]
push eax
mov eax, dword [edx + 0x70]
push eax
mov ebp, dword [edx + 0x38]
push ebp
mov ecx, dword [esp + 0x68]
movsx eax, byte [ecx + 0x127]
push eax
mov edi, dword [edx + 0x74]
push edi
mov ebx, dword [esp + 0x74]
push ebx
push ecx
push esi
call fcn.0040b9e0
mov dword [esp + 0xa0], esi
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0041e930
mov dl, byte [ebx + 0xa8]
cmp dl, 1
jle 0x42f6e8
mov ecx, dword [0x5ebe98]
mov dword [esp + 0xc], ecx
mov ax, word [ecx + 0x125]
test word [esi + 0x2fe], ax
je 0x42f165
cmp dl, 2
je 0x42f6e8
mov eax, dword [ecx + 0x58]
test eax, eax
jle 0x42f165
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x42f165
cmp dl, 3
je 0x42f6e8
mov al, byte [ecx + 0x223]
mov edx, dword [esp + 0xc]
mov byte [esp + 0x13], al
mov ecx, dword [esi + 0x224]
mov al, byte [edx + 0x22b]
xor edx, edx
test al, al
je 0x42f5d4
movsx edx, al
mov eax, dword [esp + 0xc]
movsx eax, byte [eax + 0x592]
sub edx, eax
movsx eax, byte [esp + 0x13]
sub eax, ecx
add eax, edx
test eax, eax
jg 0x42f165
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x5ac]
movsx edx, word [edx + 0x5a8]
mov eax, dword [eax + 0x74]
cmp word [eax + edx*2], 0
je 0x42f165
mov edx, dword [ebx + 0x64]
test edx, edx
je 0x42f61d
movsx eax, word [esi + 0x5a8]
cmp word [edx + eax*2], 0
jne 0x42f165
mov edx, dword [ebx + 0x68]
test edx, edx
je 0x42f636
movsx eax, word [esi + 0x5a8]
cmp word [edx + eax*2], 0
jne 0x42f165
mov ecx, dword [esp + 0xc]
cmp byte [ecx + 0x3a8], 0
jne 0x42f165
cmp byte [ecx + 0x595], 0
jne 0x42f165
mov eax, dword [ecx + 0x5d0]
test eax, eax
jne 0x42f165
mov eax, dword [ecx + 0x98]
cmp byte [eax + 0x76], 0
jne 0x42f165
push ecx
call fcn.004016f0
pop ecx
test eax, eax
jne 0x42f165
mov eax, dword [esi + 0x124]
and eax, 0xffff00
cmp eax, 0x100
jne 0x42f6ad
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x124]
and eax, 0xffff00
cmp eax, 0x100
je 0x42f74b
push esi
call fcn.004016f0
pop edx
test eax, eax
jne 0x42f165
mov eax, dword [esi + 0x3b4]
push eax
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0x3b4]
push ecx
call fcn.004016d0
fld qword [0x550390]
pop eax
fucompp
fnstsw ax
pop edx
test ah, 1
jne 0x42f165
movsx eax, word [esp + 0x10]
mov edx, dword [0x5b4134]
mov ecx, dword [edx + eax*4 - 4]
mov eax, dword [esi + 0x2c8]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x42f73c
cmp word [edx + 8], 0
je 0x42f75d
cmp byte [edx + 0xb5], 0xff
jne 0x42f720
mov al, byte [ebx + 0xb5]
mov byte [edx + 0xb5], al
push ebx
push 1
push ecx
push esi
call fcn.0041e4c0
add esp, 0x10
mov edx, dword [0x5ebe98]
mov dword [esp + 0xc], edx
jmp 0x42f165
mov edx, dword [0x5ebe98]
mov dword [esp + 0xc], edx
jmp 0x42f165
cmp byte [0x5ec9ac], 0
jne 0x42f165
jmp 0x42f6ad
mov ecx, dword [0x5ebe98]
mov dword [esp + 0xc], ecx
jmp 0x42f165
cmp byte [edx + 0x182], 0
jg 0x42f22c
jmp 0x42ef7f
push eax
push eax
push 0
mov ecx, dword [esp + 0x40]
movsx eax, word [ecx + 0x84]
push eax
mov eax, dword [ecx + 0x6c]
push eax
mov eax, dword [ecx + 0x70]
push eax
mov eax, dword [ecx + 0x38]
push eax
movsx eax, byte [ecx + 0x78]
push eax
mov eax, dword [ecx + 0x74]
mov ecx, dword [0x5ebe98]
push eax
mov ebx, dword [esp + 0x74]
push ebx
push ecx
push esi
call fcn.0040b9e0
add esp, 0x30
mov ebx, dword [esi + 0x5ac]
mov eax, dword [0x5ebe98]
mov edx, dword [esp + 0x34]
mov dword [esi + 0x5ec], eax
inc word [ebx + 0xda]
cmp byte [edx + 0x42], 0
jne 0x42f836
cmp byte [eax + 0x1ac], 0
jne 0x42fa8a
mov eax, dword [edx + 0x2c]
test eax, eax
js 0x42fa7b
push edx
push 0
push eax
mov eax, dword [0x5ec208]
push 0
push 0
push eax
mov eax, dword [0x5ec528]
push eax
mov eax, dword [0x5ed038]
push eax
call fcn.00426410
mov dword [esp + 0x3c], eax
add esp, 0x20
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x42f830
sub esp, 0xc
mov ebx, dword [esp + 0x28]
push ebx
call fcn.0040b960
add esp, 0x10
mov ebx, dword [esi + 0x5ac]
mov eax, dword [0x5b4148]
mov ecx, dword [0x5454c4]
add eax, ecx
mov dword [ebp + 0x418], eax
mov eax, dword [esi + 0x55c]
cmp eax, dword [0x5b4148]
jae 0x42fa59
mov ecx, dword [esp + 0x34]
mov edx, dword [esi + 0x410]
movsx eax, word [ecx + 0x84]
add edx, eax
mov dword [esi + 0x410], edx
mov edx, dword [esi + 0x54c]
movsx eax, word [ecx + 0x84]
add edx, eax
mov dword [esi + 0x54c], edx
mov edx, dword [esi + 0x550]
movsx eax, word [ecx + 0x84]
add edx, eax
mov dword [esi + 0x550], edx
mov edx, dword [0x5b4148]
movsx eax, word [ecx + 0x84]
add eax, edx
mov dword [esi + 0x55c], eax
mov edx, dword [esp + 0x34]
mov eax, dword [0x5ebe98]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
movsx eax, word [edx + 0x84]
add dword [ecx + 0x410], eax
movsx eax, word [edx + 0x84]
add dword [ecx + 0x54c], eax
movsx eax, word [edx + 0x84]
mov edx, dword [ecx + 0x550]
add edx, eax
mov dword [ecx + 0x550], edx
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x42f0d3
mov edx, dword [esp + 0x2c]
mov al, byte [esp + 0x28]
mov word [esp + 0x46], dx
jmp 0x42f124
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x170]
cmp ax, 0
je 0x42f932
jle 0x42f297
cwde
cmp dword [esp + 0x50], eax
jge 0x42f297
mov eax, dword [esp + 0x38]
test eax, eax
je 0x42f948
mov eax, dword [esp + 0x50]
cmp dword [esp + 0x38], eax
jle 0x42f297
push eax
push eax
push 1
mov edx, dword [esp + 0x40]
movsx eax, word [edx + 0x84]
push eax
mov eax, dword [edx + 0x6c]
push eax
mov eax, dword [edx + 0x70]
push eax
mov eax, dword [edx + 0x38]
push eax
movsx eax, byte [edx + 0x78]
push eax
mov eax, dword [edx + 0x74]
push eax
mov ecx, dword [esp + 0x74]
push ecx
mov edx, dword [esp + 0x34]
push edx
push esi
call fcn.0040b9e0
mov eax, dword [0x5ebe98]
mov byte [eax + 0x58e], 1
mov dword [eax + 0x5bc], 0x41f5a0
mov eax, dword [0x5ebe98]
add esp, 0x2c
mov byte [eax + 0x588], 0
xor eax, eax
mov edx, dword [0x5ebe98]
mov dword [edx + 0x3bc], eax
mov dword [edx + 0x3b8], eax
push 0
push 0xc
push edx
call fcn.0041e4c0
pop eax
mov ecx, dword [esp + 0x40]
movsx eax, word [ecx + 0x84]
push eax
mov eax, dword [ecx + 0x6c]
push eax
mov eax, dword [ecx + 0x70]
push eax
mov eax, dword [ecx + 0x38]
push eax
movsx eax, byte [ecx + 0x78]
push eax
mov eax, dword [ecx + 0x74]
mov ecx, dword [0x5ebe98]
push eax
mov eax, dword [esp + 0x74]
push eax
push esi
push ecx
call fcn.0040bec0
mov eax, dword [0x5ebe98]
mov dword [esp + 0x3c], eax
add esp, 0x30
cmp word [eax + 0x2e6], 0
jle 0x42fa1c
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0xc]
mov eax, dword [edx + 0x70]
sub word [ecx + 0x2e4], ax
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x34]
inc word [eax + 0xda]
cmp byte [edx + 0x42], 0
jne 0x42fb47
mov ecx, dword [esp + 0xc]
cmp byte [ecx + 0x1ac], 0
je 0x42f48d
push edx
push 0
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x1f4]
push eax
jmp 0x42f49c
push esi
call fcn.004016f0
pop edx
test eax, eax
je 0x42f8b3
mov ecx, dword [0x5b41bc]
test ecx, ecx
jne 0x42f8b3
jmp 0x42f85b
push ebx
push 0
mov ecx, dword [esi + 0x1f0]
push ecx
jmp 0x42f7f6
push edx
push 0
mov eax, dword [eax + 0x1f0]
push eax
jmp 0x42f7f6
fstp st(0)
jmp 0x42f38f
cmp byte [edx + 0x182], 0
jg 0x42f2ed
jmp 0x42ef7f
mov byte [esi + 0x59c], 2
jmp 0x42ef0b
mov byte [eax + 0x59c], 2
jmp 0x42eefe
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x28], 1
mov word [esp + 0x46], cx
mov al, 1
mov ebx, dword [esi + 0x5ac]
mov dword [esp + 0x1c], 0
jmp 0x42f124
push eax
mov eax, dword [0x5ec138]
push 0
mov eax, dword [eax + ebx]
mov ecx, dword [eax + 0x1f4]
push ecx
jmp 0x42f08b
push edx
push 0
mov eax, dword [eax + 0x1f4]
push eax
jmp 0x42f08b
mov ebx, dword [esi + 0x5ac]
jmp 0x42f8f3
push eax
mov eax, dword [0x5ec138]
push 0
mov eax, dword [eax + ebx]
mov ecx, dword [eax + 0x1f4]
push ecx
jmp 0x42f49c
push edx
push 0
mov eax, dword [eax + 0x1f4]
push eax
jmp 0x42f49c
mov ebx, dword [esi + 0x5ac]
mov dword [esp + 0x28], 1
jmp 0x42f8f3