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

Disassembly:
mov eax, dword [0x5d5a00]
test eax, eax
je 0x40e68e
jmp 0x41b150
ret
mov eax, dword [0x5d5a0c]
test eax, eax
je 0x41b174
mov eax, dword [eax + 0x6f8]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0x80]
mov dword [0x7e2c88], 0
ret
mov eax, dword [0x5d5a0c]
sub esp, 0xe4
test eax, eax
push esi
je 0x43049f
mov esi, dword [esp + 0xec]
test esi, esi
je 0x43049f
mov eax, dword [esi + 0x9c]
test eax, eax
je 0x43049f
call fcn.0040e660
mov eax, dword [esi + 0x44]
cmp eax, 2
je 0x42f12b
cmp eax, 3
je 0x42f12b
cmp eax, 0xa
je 0x42f12b
cmp eax, 7
jne 0x42f115
mov eax, dword [esi + 0x80]
jmp 0x42f151
mov edx, dword [esi + 0x48]
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x54]
push edx
mov edx, dword [esi + 0x50]
push eax
mov eax, dword [esi + 0x4c]
push ecx
push edx
push eax
jmp 0x42f162
mov eax, dword [esi + 0x84]
test eax, eax
je 0x42f14e
mov ecx, dword [esi + 0x80]
mov edx, dword [esi + 0x58]
mov eax, dword [esi + 0x54]
push ecx
mov ecx, dword [esi + 0x50]
push edx
mov edx, dword [esi + 0x4c]
push eax
push ecx
push edx
jmp 0x42f162
mov eax, dword [esi + 0x48]
mov ecx, dword [esi + 0x58]
mov edx, dword [esi + 0x54]
push eax
mov eax, dword [esi + 0x50]
push ecx
mov ecx, dword [esi + 0x4c]
push edx
push eax
push ecx
call fcn.0041f900
add esp, 0x14
push ebx
push ebp
push edi
push 0x5a
push 0x5a
push 0x5a
call fcn.0041f6b0
push 0xff
push 0xff
push 0xff
mov edi, eax
call fcn.0041f6b0
mov ebx, eax
mov eax, dword [esi + 0x64]
add esp, 0x18
test eax, eax
je 0x42f1a4
mov eax, dword [esi + 0x98]
test eax, eax
jne 0x42f1c5
mov eax, dword [esi + 0x84]
test eax, eax
jne 0x42f1c5
cmp dword [esi + 0x44], 0xa
je 0x42f401
test dword [esi + 0x5c], 0xff000000
jne 0x42f401
mov eax, dword [esi + 0x5c]
and eax, 0xffffff
jne 0x42f244
mov edx, dword [esi + 0x50]
mov eax, dword [esi + 0x4c]
push edx
push eax
call fcn.0041f9c0
mov ecx, dword [esi + 0x60]
mov edx, dword [esi + 0x50]
mov eax, dword [esi + 0x54]
push ecx
mov ecx, dword [esi + 0x4c]
push edx
lea edx, [eax + ecx - 1]
push edx
call fcn.0041f9e0
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 0x50]
mov edx, dword [esi + 0x58]
push eax
lea eax, [ecx + edx - 1]
mov ecx, dword [esi + 0x54]
mov edx, dword [esi + 0x4c]
push eax
lea eax, [ecx + edx - 1]
push eax
call fcn.0041f9e0
mov ecx, dword [esi + 0x60]
mov edx, dword [esi + 0x50]
mov eax, dword [esi + 0x58]
push ecx
lea ecx, [edx + eax - 1]
mov edx, dword [esi + 0x4c]
push ecx
push edx
call fcn.0041f9e0
mov eax, dword [esi + 0x60]
push eax
mov ecx, dword [esi + 0x50]
mov edx, dword [esi + 0x4c]
push ecx
push edx
call fcn.0041f9e0
add esp, 0x38
jmp 0x42f401
cmp eax, 1
jne 0x42f2e8
mov eax, dword [esi + 0x44]
cmp eax, 2
je 0x42f25f
cmp eax, 3
je 0x42f25f
cmp eax, 0xa
jne 0x42f28f
mov eax, dword [esi + 0x84]
test eax, eax
je 0x42f28f
push 0x5a
push 0x5a
push 0x5a
call fcn.0041f6b0
push 0xff
push 0xff
push 0xff
mov ebx, eax
call fcn.0041f6b0
add esp, 0x18
mov edi, eax
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x4c]
push eax
push ecx
call fcn.0041f9c0
mov edx, dword [esi + 0x50]
mov eax, dword [esi + 0x54]
mov ecx, dword [esi + 0x4c]
push ebx
push edx
lea edx, [eax + ecx - 1]
push edx
call fcn.0041f9e0
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x58]
push edi
lea edx, [eax + ecx - 1]
mov eax, dword [esi + 0x54]
mov ecx, dword [esi + 0x4c]
push edx
lea edx, [eax + ecx - 1]
push edx
call fcn.0041f9e0
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x58]
push edi
lea edx, [eax + ecx - 1]
mov eax, dword [esi + 0x4c]
push edx
push eax
call fcn.0041f9e0
push ebx
jmp 0x42f22f
cmp eax, 2
jne 0x42f401
mov eax, dword [esi + 0x44]
cmp eax, 2
je 0x42f303
cmp eax, 3
je 0x42f303
cmp eax, 0xa
jne 0x42f333
mov eax, dword [esi + 0x84]
test eax, eax
je 0x42f333
push 0x5a
push 0x5a
push 0x5a
call fcn.0041f6b0
push 0xff
push 0xff
push 0xff
mov edi, eax
call fcn.0041f6b0
add esp, 0x18
mov ebx, eax
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x4c]
push eax
push ecx
call fcn.0041f9c0
mov edx, dword [esi + 0x50]
mov eax, dword [esi + 0x54]
mov ecx, dword [esi + 0x4c]
push ebx
push edx
lea edx, [eax + ecx - 1]
push edx
call fcn.0041f9e0
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x58]
push edi
lea edx, [eax + ecx - 1]
mov eax, dword [esi + 0x54]
mov ecx, dword [esi + 0x4c]
push edx
lea edx, [eax + ecx - 1]
push edx
call fcn.0041f9e0
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x58]
push edi
lea edx, [eax + ecx - 1]
mov eax, dword [esi + 0x4c]
push edx
push eax
call fcn.0041f9e0
mov ecx, dword [esi + 0x50]
mov edx, dword [esi + 0x4c]
push ebx
push ecx
push edx
call fcn.0041f9e0
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x4c]
inc eax
inc ecx
push eax
push ecx
call fcn.0041f9c0
mov edx, dword [esi + 0x50]
mov eax, dword [esi + 0x54]
mov ecx, dword [esi + 0x4c]
add esp, 0x40
inc edx
push edi
push edx
lea edx, [eax + ecx - 2]
push edx
call fcn.0041f9e0
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x58]
push ebx
lea edx, [eax + ecx - 2]
mov eax, dword [esi + 0x54]
mov ecx, dword [esi + 0x4c]
push edx
lea edx, [eax + ecx - 2]
push edx
call fcn.0041f9e0
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x58]
push ebx
lea edx, [eax + ecx - 2]
mov eax, dword [esi + 0x4c]
inc eax
push edx
push eax
call fcn.0041f9e0
mov ecx, dword [esi + 0x50]
mov edx, dword [esi + 0x4c]
inc ecx
push edi
inc edx
push ecx
push edx
call fcn.0041f9e0
add esp, 0x30
push 0x82
push 0x82
push 0x82
call fcn.0041f6b0
mov ebx, dword [esi + 0x4c]
mov edx, dword [esi + 0x68]
mov ecx, dword [esi + 0x98]
add esp, 0xc
add edx, ebx
mov dword [esp + 0x30], eax
test ecx, ecx
mov ecx, dword [esi + 0x6c]
je 0x42f434
mov eax, dword [esi + 0x70]
push eax
mov eax, dword [esi + 0x50]
add ecx, eax
lea eax, [esi + 4]
push ecx
push edx
push eax
call fcn.004304e0
mov eax, dword [esi + 0x98]
add esp, 0x10
test eax, eax
je 0x42f477
mov eax, dword [esi + 0x88]
test eax, eax
je 0x42f4a2
mov ecx, dword [esi + 0x94]
mov ebp, dword [esi + 0x50]
mov edx, dword [esi + 0x90]
mov edi, dword [esi + 0x4c]
add ecx, ebp
push eax
add edx, edi
push ecx
push edx
jmp 0x42f49a
mov eax, dword [esi + 0x8c]
test eax, eax
je 0x42f4a2
mov ebp, dword [esi + 0x50]
mov ecx, dword [esi + 0x90]
mov edi, dword [esi + 0x4c]
push eax
mov eax, dword [esi + 0x94]
add eax, ebp
add ecx, edi
push eax
push ecx
call fcn.004209c0
add esp, 0xc
push 0x5a
push 0x5a
push 0x5a
call fcn.0041f6b0
push 0xff
push 0xff
push 0xff
mov ebp, eax
call fcn.0041f6b0
mov ebx, eax
mov eax, dword [esi + 0x44]
add eax, 0xfffffffc
add esp, 0x18
cmp eax, 6
mov dword [esp + 0x20], ebx
ja case.0x42f4db.6
jmp dword [eax*4 + 0x4304a8]
mov eax, dword [esi + 0x84]
mov edi, dword [esi + 0xc0]
test eax, eax
je 0x42f518
mov edx, dword [esi + 0x80]
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 8]
push edx
mov edx, dword [edi + 4]
push eax
mov eax, dword [edi]
push ecx
add edx, dword [esi + 0x50]
push edx
mov edx, dword [esi + 0x4c]
add eax, edx
push eax
call fcn.0041f900
add esp, 0x14
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x42f5b9
mov ecx, dword [esi + 0x50]
mov edx, dword [edi + 4]
mov ebx, dword [esi + 0x4c]
add ecx, edx
mov edx, dword [edi]
push ecx
add edx, ebx
push edx
call fcn.0041f9c0
mov eax, dword [esi + 0x50]
mov edx, dword [edi + 4]
mov ecx, dword [edi]
add eax, edx
mov edx, dword [esi + 0x4c]
push ebp
push eax
mov eax, dword [edi + 8]
add ecx, eax
lea eax, [ecx + edx - 1]
push eax
call fcn.0041f9e0
mov ecx, dword [edi + 0xc]
mov eax, dword [esi + 0x50]
mov edx, dword [edi + 4]
add ecx, eax
push ebp
lea eax, [ecx + edx - 1]
mov ecx, dword [edi]
mov edx, dword [edi + 8]
push eax
add ecx, edx
mov edx, dword [esi + 0x4c]
lea eax, [ecx + edx - 1]
push eax
call fcn.0041f9e0
mov ecx, dword [edi + 0xc]
mov edx, dword [esi + 0x50]
mov ebx, dword [esi + 0x4c]
add ecx, edx
mov edx, dword [edi + 4]
push ebp
lea eax, [ecx + edx - 1]
mov ecx, dword [edi]
add ecx, ebx
push eax
push ecx
call fcn.0041f9e0
mov edx, dword [esi + 0x50]
mov eax, dword [edi]
push ebp
mov ebp, dword [edi + 4]
add edx, ebp
push edx
mov edx, dword [esi + 0x4c]
add eax, edx
push eax
call fcn.0041f9e0
add esp, 0x38
jmp case.0x42f4db.6
cmp eax, 2
jne 0x42f6c7
mov ecx, dword [esi + 0x50]
mov ebx, dword [edi + 4]
mov edx, dword [edi]
add ecx, ebx
push ecx
mov ecx, dword [esi + 0x4c]
add edx, ecx
push edx
call fcn.0041f9c0
mov eax, dword [esi + 0x50]
mov ecx, dword [edi + 4]
mov edx, dword [edi + 8]
add eax, ecx
mov ecx, dword [edi]
push ebp
add ecx, edx
mov edx, dword [esi + 0x4c]
push eax
lea eax, [ecx + edx - 1]
push eax
call fcn.0041f9e0
mov ecx, dword [edi + 0xc]
mov edx, dword [esi + 0x50]
add ecx, edx
mov edx, dword [edi + 4]
push ebp
lea eax, [ecx + edx - 1]
mov ecx, dword [edi]
mov edx, dword [esi + 0x4c]
push eax
add ecx, dword [edi + 8]
lea eax, [ecx + edx - 1]
push eax
call fcn.0041f9e0
mov ecx, dword [edi + 0xc]
mov eax, dword [esi + 0x50]
mov edx, dword [edi + 4]
add ecx, eax
push ebp
lea eax, [ecx + edx - 1]
mov ecx, dword [edi]
mov edx, dword [esi + 0x4c]
push eax
add ecx, edx
push ecx
call fcn.0041f9e0
mov edx, dword [esi + 0x50]
mov ecx, dword [edi + 4]
mov eax, dword [edi]
mov ebx, dword [esi + 0x4c]
add edx, ecx
push ebp
add eax, ebx
push edx
push eax
call fcn.0041f9e0
mov eax, dword [esi + 0x84]
add esp, 0x38
test eax, eax
je case.0x42f4db.6
mov ecx, dword [edi + 0xc]
mov eax, dword [esi + 0x50]
mov edx, dword [edi + 4]
add ecx, eax
push ebp
lea eax, [ecx + edx - 1]
mov ecx, dword [edi]
mov edx, dword [edi + 8]
push eax
add ecx, edx
mov edx, dword [esi + 0x4c]
lea eax, [ecx + edx - 1]
push eax
call fcn.0041f9e0
mov ecx, dword [edi + 0xc]
mov edx, dword [esi + 0x50]
mov ebx, dword [esi + 0x4c]
add ecx, edx
mov edx, dword [edi + 4]
lea eax, [ecx + edx - 1]
mov ecx, dword [edi]
add ecx, ebx
push eax
push ecx
call fcn.0041f9c0
mov edx, dword [esi + 0x50]
mov eax, dword [edi]
push ebp
mov ebp, dword [edi + 4]
mov ecx, dword [esi + 0x4c]
add edx, ebp
push edx
mov edx, dword [edi + 8]
add eax, edx
lea edx, [eax + ecx - 1]
push edx
call fcn.0041f9e0
add esp, 0x20
jmp case.0x42f4db.6
cmp eax, 1
jne case.0x42f4db.6
mov eax, dword [esi + 0x84]
test eax, eax
je 0x42f700
push 0x5a
push 0x5a
push 0x5a
call fcn.0041f6b0
push 0xff
push 0xff
push 0xff
mov ebx, eax
call fcn.0041f6b0
add esp, 0x18
mov ebp, eax
mov eax, dword [esi + 0x50]
mov edx, dword [edi + 4]
mov ecx, dword [edi]
add eax, edx
push eax
mov eax, dword [esi + 0x4c]
add ecx, eax
push ecx
call fcn.0041f9c0
mov edx, dword [esi + 0x50]
mov ecx, dword [edi + 4]
mov eax, dword [edi]
add edx, ecx
mov ecx, dword [esi + 0x4c]
push ebx
push edx
mov edx, dword [edi + 8]
add eax, edx
lea edx, [eax + ecx - 1]
push edx
call fcn.0041f9e0
mov eax, dword [edi + 0xc]
mov ecx, dword [esi + 0x50]
add eax, ecx
mov ecx, dword [edi + 4]
push ebp
lea edx, [eax + ecx - 1]
mov eax, dword [edi]
mov ecx, dword [esi + 0x4c]
push edx
add eax, dword [edi + 8]
lea edx, [eax + ecx - 1]
push edx
call fcn.0041f9e0
mov eax, dword [edi + 0xc]
mov ecx, dword [esi + 0x50]
add eax, ecx
mov ecx, dword [edi + 4]
push ebp
mov ebp, dword [esi + 0x4c]
lea edx, [eax + ecx - 1]
mov eax, dword [edi]
add eax, ebp
push edx
push eax
call fcn.0041f9e0
mov ecx, dword [esi + 0x50]
mov ebp, dword [edi + 4]
mov edx, dword [edi]
mov edi, dword [esi + 0x4c]
add ecx, ebp
push ebx
add edx, edi
push ecx
push edx
call fcn.0041f9e0
add esp, 0x38
jmp case.0x42f4db.6
mov eax, dword [esi + 0x84]
test eax, eax
je case.0x42f4db.6
mov eax, dword [esi + 0xc0]
mov dword [esp + 0x24], eax
mov edi, dword [eax]
mov ebx, dword [eax + 4]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x48]
push eax
push edx
push ecx
push ebx
push edi
mov dword [esp + 0x28], edx
call fcn.0041f900
mov eax, dword [esi + 0x5c]
add esp, 0x14
and eax, 0xffffff
jne 0x42f83b
push ebx
push edi
call fcn.0041f9c0
mov ecx, dword [esp + 0x18]
mov edx, dword [esi + 0x60]
push edx
push ebx
lea eax, [ecx + edi - 1]
push eax
call fcn.0041f9e0
mov eax, dword [esp + 0x28]
mov ecx, dword [esi + 0x60]
mov edx, dword [esp + 0x24]
push ecx
lea eax, [eax + ebx - 1]
mov dword [esp + 0x34], eax
push eax
lea eax, [edx + edi - 1]
push eax
call fcn.0041f9e0
mov eax, dword [esi + 0x60]
mov ecx, dword [esp + 0x3c]
push eax
push ecx
push edi
call fcn.0041f9e0
mov edx, dword [esi + 0x60]
push edx
push ebx
push edi
call fcn.0041f9e0
add esp, 0x38
jmp 0x42f956
cmp eax, 1
jne 0x42f897
push ebx
push edi
call fcn.0041f9c0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
push ecx
push ebx
lea eax, [eax + edi - 1]
push eax
call fcn.0041f9e0
mov edx, dword [esp + 0x28]
push ebp
lea eax, [edx + ebx - 1]
mov dword [esp + 0x34], eax
push eax
mov eax, dword [esp + 0x2c]
lea eax, [eax + edi - 1]
push eax
call fcn.0041f9e0
mov ecx, dword [esp + 0x3c]
push ebp
push ecx
push edi
call fcn.0041f9e0
mov edx, dword [esp + 0x4c]
push edx
push ebx
push edi
call fcn.0041f9e0
add esp, 0x38
jmp 0x42f956
cmp eax, 2
jne 0x42f956
push ebx
push edi
call fcn.0041f9c0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
push ecx
push ebx
lea eax, [eax + edi - 1]
push eax
call fcn.0041f9e0
mov edx, dword [esp + 0x28]
push ebp
lea eax, [edx + ebx - 1]
push eax
mov eax, dword [esp + 0x2c]
lea eax, [eax + edi - 1]
push eax
call fcn.0041f9e0
mov ecx, dword [esp + 0x34]
push ebp
lea eax, [ecx + ebx - 1]
push eax
push edi
call fcn.0041f9e0
mov edx, dword [esp + 0x4c]
push edx
push ebx
push edi
call fcn.0041f9e0
lea eax, [ebx + 1]
lea ecx, [edi + 1]
push eax
push ecx
call fcn.0041f9c0
mov eax, dword [esp + 0x50]
add esp, 0x40
lea ecx, [eax + edi - 2]
lea eax, [ebx + 1]
push ebp
push eax
push ecx
call fcn.0041f9e0
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
push edx
lea eax, [ecx + ebx - 2]
mov dword [esp + 0x44], eax
push eax
mov eax, dword [esp + 0x24]
lea eax, [eax + edi - 2]
push eax
call fcn.0041f9e0
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x4c]
push ecx
lea eax, [edi + 1]
push edx
push eax
call fcn.0041f9e0
lea eax, [ebx + 1]
push ebp
push eax
lea eax, [edi + 1]
push eax
call fcn.0041f9e0
add esp, 0x30
mov eax, dword [esp + 0x24]
mov ecx, dword [0x5c71e4]
add eax, 0x1c
mov dword [esp + 0x2c], 0
mov dword [esp + 0x1c], eax
mov eax, dword [0x5c71e8]
lea edx, [edi + ecx*4]
mov ecx, dword [esp + 0x28]
test ecx, ecx
mov dword [esp + 0x18], edx
lea ebx, [ebx + eax + 5]
jle case.0x42f4db.6
mov ecx, dword [esp + 0x1c]
add ecx, 8
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x1c]
cmp dword [edx], 3
jne 0x42fa24
mov edi, dword [esp + 0x24]
mov ecx, ebx
cdq
sub eax, edx
mov edx, dword [edi]
sar eax, 1
sub ecx, eax
add edx, 7
push ecx
push edx
call fcn.0041f9c0
mov eax, dword [0x5c71e8]
mov ecx, ebx
cdq
sub eax, edx
mov edx, dword [edi]
sar eax, 1
sub ecx, eax
mov eax, dword [esp + 0x18]
push ebp
push ecx
lea ecx, [edx + eax - 7]
push ecx
call fcn.0041f9e0
mov eax, dword [0x5c71e8]
cdq
sub eax, edx
mov edx, ebx
sar eax, 1
sub edx, eax
mov eax, dword [edi]
inc edx
add eax, 7
push edx
push eax
call fcn.0041f9c0
mov eax, dword [0x5c71e8]
mov ecx, dword [esp + 0x3c]
cdq
sub eax, edx
mov edx, ebx
sar eax, 1
sub edx, eax
mov eax, dword [edi]
push ecx
mov ecx, dword [esp + 0x30]
inc edx
push edx
lea edx, [eax + ecx - 7]
push edx
call fcn.0041f9e0
add esp, 0x28
jmp 0x42fb1a
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
cmp edx, dword [ecx + 0x14]
jne 0x42fa6f
mov edx, dword [ecx + 0x18]
push edx
lea edx, [eax + 6]
push edx
mov edx, dword [esp + 0x18]
add edx, 0xfffffffc
push edx
mov edx, ebx
sub edx, eax
mov eax, dword [ecx]
add eax, 2
push edx
push eax
call fcn.0041f900
mov edi, dword [esi + 0x70]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
or ecx, 0xffffffff
sub ecx, edi
push ecx
push ebx
push edx
push eax
call fcn.004304e0
add esp, 0x24
jmp 0x42fa93
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x14]
test eax, eax
mov eax, dword [esp + 0x18]
je 0x42fa83
mov edx, dword [esi + 0x70]
jmp 0x42fa87
mov edx, dword [esp + 0x30]
push edx
push ebx
push eax
push ecx
call fcn.004304e0
add esp, 0x10
mov edx, dword [esp + 0x1c]
cmp dword [edx], 2
jne 0x42fb1a
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x42fb1a
mov ecx, dword [esp + 0x24]
mov eax, dword [0x5c71e4]
mov edi, ebx
mov edx, dword [ecx]
lea edx, [edx + eax + 2]
mov dword [esp + 0x34], edx
cdq
sub eax, edx
mov edx, dword [ecx + 0x14]
mov ecx, dword [esi + 0x70]
sar eax, 1
sub edi, eax
mov eax, dword [esp + 0x2c]
cmp eax, edx
jne 0x42fadc
or eax, 0xffffffff
sub eax, ecx
mov dword [esp + 0x38], eax
jmp 0x42fae0
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0x34]
push edi
push edx
call fcn.0041f9c0
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
lea ecx, [edi + 3]
push eax
add edx, 2
push ecx
push edx
call fcn.0041f9e0
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
add edi, 0xfffffffd
push eax
add ecx, 7
push edi
push ecx
call fcn.0041f9e0
add esp, 0x20
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov eax, 0x24
add ecx, eax
add edx, eax
mov eax, dword [0x5c71e8]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x28]
inc ecx
cmp ecx, edx
lea ebx, [ebx + eax + 6]
mov dword [esp + 0x2c], ecx
jl 0x42f996
jmp case.0x42f4db.6
mov ebx, dword [esi + 0xc0]
mov edx, dword [esi + 0x50]
mov edi, dword [esi + 0x4c]
mov ecx, dword [ebx + 4]
mov eax, dword [ebx]
add ecx, edx
mov edx, dword [esi + 0x80]
push edx
mov edx, dword [ebx + 0xc]
push edx
mov edx, dword [ebx + 8]
add eax, edi
push edx
push ecx
push eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], ecx
call fcn.0041f900
mov eax, dword [ebx + 0x14]
lea edx, [esp + 0x68]
lea ecx, [ebx + eax + 0x20]
push ecx
push edx
call fcn.00508ac6
mov eax, dword [0x5c71e4]
mov ecx, dword [0x5c71ec]
lea edi, [esp + 0x70]
add esp, 0x1c
lea edx, [ecx + eax]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov eax, dword [ebx + 8]
imul ecx, edx
add ecx, 3
cmp ecx, eax
jl 0x42fbf2
lea edi, [esp + 0x54]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [esp + 0x54]
mov byte [esp + ecx + 0x53], al
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov eax, dword [ebx + 8]
imul ecx, edx
add ecx, 3
cmp ecx, eax
jge 0x42fbc7
mov eax, dword [ebx + 0x1c]
test eax, eax
jne 0x42fcc4
mov eax, dword [ebx + 0x78]
mov edi, dword [ebx + 0x70]
mov ecx, dword [ebx + 0xc]
push eax
mov eax, dword [ebx + 0x74]
imul edi, edx
imul eax, edx
mov edx, dword [esp + 0x1c]
sub ecx, 4
push ecx
mov ecx, dword [esp + 0x18]
push eax
add ecx, 2
lea eax, [edi + edx + 1]
push ecx
push eax
call fcn.0041f900
mov eax, dword [esi + 0x98]
add esp, 0x14
test eax, eax
je 0x42fc58
mov ecx, dword [esi + 0x70]
mov edx, dword [0x5c71e8]
mov eax, dword [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x1c]
add edx, eax
push edx
add ecx, 3
lea edx, [esp + 0x5c]
push ecx
push edx
jmp 0x42fc77
mov eax, dword [esp + 0x30]
mov ecx, dword [0x5c71e8]
mov edx, dword [esp + 0x10]
push eax
mov eax, dword [esp + 0x1c]
add ecx, edx
push ecx
add eax, 3
lea ecx, [esp + 0x5c]
push eax
push ecx
call fcn.004304e0
add esp, 0x10
xor eax, eax
mov cl, byte [esp + eax + 0x54]
mov byte [esp + eax + 0xa4], cl
inc eax
test cl, cl
jne 0x42fc81
mov edx, dword [ebx + 0x74]
or eax, 0xffffffff
mov byte [esp + edx + 0xa4], cl
mov edx, dword [esi + 0x70]
mov ecx, dword [0x5c71e8]
sub eax, edx
mov edx, dword [esp + 0x10]
push eax
mov eax, dword [esp + 0x1c]
add ecx, edx
push ecx
lea edx, [esp + 0xac]
lea ecx, [edi + eax + 3]
push ecx
push edx
jmp 0x42fd11
mov eax, dword [esi + 0x98]
test eax, eax
je 0x42fcf3
mov ecx, dword [0x5c71e8]
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x70]
mov edi, dword [esp + 0x18]
add ecx, edx
push eax
push ecx
lea eax, [edi + 3]
lea ecx, [esp + 0x5c]
push eax
push ecx
call fcn.004304e0
jmp 0x42fd1a
mov edx, dword [esp + 0x30]
mov eax, dword [0x5c71e8]
mov ecx, dword [esp + 0x10]
push edx
mov edx, dword [esp + 0x1c]
add eax, ecx
push eax
add edx, 3
lea eax, [esp + 0x5c]
push edx
push eax
call fcn.004304e0
mov edi, dword [esp + 0x28]
mov eax, dword [ebx + 0x1c]
add esp, 0x10
cmp eax, 1
je 0x42fdd1
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x14]
cmp edx, eax
jl 0x42fdd1
lea edi, [esp + 0x54]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [ebx + 0x14]
not ecx
dec ecx
add ecx, eax
cmp edx, ecx
jg 0x42fdcd
mov ecx, dword [0x5c71e4]
sub edx, eax
mov eax, dword [0x5c71ec]
push 0
add eax, ecx
mov ecx, dword [esp + 0x1c]
imul edx, eax
push 0xc8
push 0
lea edi, [edx + ecx + 1]
call fcn.0041f6b0
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x34], eax
lea eax, [edx + 2]
push eax
push edi
call fcn.0041f9c0
mov eax, dword [esp + 0x3c]
mov ecx, dword [0x5c71e8]
mov edx, dword [esp + 0x24]
push eax
lea eax, [ecx + edx + 3]
push eax
push edi
call fcn.0041f9e0
mov ecx, dword [esp + 0x30]
inc edi
lea eax, [ecx + 2]
push eax
push edi
call fcn.0041f9c0
mov edx, dword [esp + 0x50]
mov eax, dword [0x5c71e8]
mov ecx, dword [esp + 0x38]
push edx
lea edx, [eax + ecx + 3]
push edx
push edi
call fcn.0041f9e0
add esp, 0x34
mov edi, dword [esp + 0x18]
mov ecx, dword [ebx + 8]
mov eax, dword [esp + 0x10]
push eax
lea edx, [ecx + edi - 1]
push edx
call fcn.0041f9c0
mov eax, dword [esp + 0x18]
push ebp
push eax
push edi
call fcn.0041f9e0
mov ecx, dword [ebx + 0xc]
push ebp
mov ebp, dword [esp + 0x28]
lea edx, [ecx + ebp - 1]
push edx
push edi
call fcn.0041f9e0
mov eax, dword [esp + 0x40]
mov ecx, dword [ebx + 0xc]
push eax
mov eax, dword [ebx + 8]
lea edx, [ecx + ebp - 1]
lea ecx, [eax + edi - 1]
push edx
push ecx
call fcn.0041f9e0
mov eax, dword [ebx + 8]
mov edx, dword [esp + 0x4c]
push edx
push ebp
lea ecx, [eax + edi - 1]
push ecx
call fcn.0041f9e0
add esp, 0x38
jmp case.0x42f4db.6
mov edi, dword [esi + 0xc0]
mov eax, dword [esi + 0x4c]
mov edx, dword [esi + 0x50]
mov ebx, dword [edi + 0x40]
mov ecx, dword [edi + 0x54]
add ebx, eax
mov eax, dword [edi + 0x44]
add eax, edx
mov edx, dword [esi + 0x80]
push edx
mov edx, dword [edi + 0x50]
push ecx
push edx
push eax
push ebx
mov dword [esp + 0x30], eax
call fcn.0041f900
mov eax, dword [esp + 0x30]
mov ecx, dword [0x5c71e8]
add ecx, eax
mov eax, dword [edi + 0x60]
mov dword [esp + 0x38], ecx
mov ecx, dword [edi + 0x5c]
add esp, 0x14
cmp eax, ecx
jl 0x42fec0
mov edx, dword [edi + 0x4c]
add edx, ecx
cmp eax, edx
jge 0x42fec0
mov edx, dword [0x5c71e8]
sub eax, ecx
add edx, 2
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x28], edx
mov edx, dword [edi + 0x6c]
imul eax, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x2c]
push edx
mov edx, dword [edi + 0x50]
push edx
lea edx, [eax + ecx + 1]
push edx
push ebx
call fcn.0041f900
add esp, 0x14
mov edx, dword [edi + 0x5c]
mov ecx, dword [edi + 0x70]
xor eax, eax
mov dword [esp + 0x14], ecx
test edx, edx
jle 0x42fee0
test ecx, ecx
je 0x42fedc
mov ecx, dword [ecx + 0x40]
inc eax
cmp eax, edx
jl 0x42fed0
mov dword [esp + 0x14], ecx
mov eax, dword [edi + 0x4c]
mov dword [esp + 0x2c], 0
test eax, eax
jle 0x42ff6e
test ecx, ecx
je 0x42ff6e
mov eax, dword [edi + 0x58]
lea edx, [esp + 0x54]
add eax, ecx
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
test cl, cl
jne 0x42fefc
mov eax, dword [edi + 0x48]
mov byte [esp + eax + 0x54], cl
mov ecx, dword [edi + 0x60]
mov edx, dword [edi + 0x5c]
mov eax, dword [esp + 0x2c]
sub ecx, edx
cmp eax, ecx
mov eax, dword [esp + 0x24]
jne 0x42ff2b
mov ecx, dword [esi + 0x70]
or edx, 0xffffffff
sub edx, ecx
jmp 0x42ff2e
mov edx, dword [esi + 0x70]
push edx
push eax
lea eax, [ebx + 3]
lea ecx, [esp + 0x5c]
push eax
push ecx
call fcn.004304e0
mov edx, dword [0x5c71e8]
mov eax, dword [esp + 0x34]
add esp, 0x10
lea ecx, [eax + edx + 2]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0x40]
mov edx, dword [edi + 0x4c]
inc eax
mov dword [esp + 0x14], ecx
cmp eax, edx
mov dword [esp + 0x2c], eax
jl 0x42feef
mov ecx, dword [edi + 0x50]
mov eax, dword [esp + 0x1c]
push eax
lea edx, [ebx + ecx - 1]
push edx
call fcn.0041f9c0
mov eax, dword [esp + 0x24]
push ebp
push eax
push ebx
call fcn.0041f9e0
mov ecx, dword [edi + 0x54]
push ebp
mov ebp, dword [esp + 0x34]
lea edx, [ecx + ebp - 1]
push edx
push ebx
call fcn.0041f9e0
mov eax, dword [esp + 0x40]
mov ecx, dword [edi + 0x54]
push eax
mov eax, dword [edi + 0x50]
lea edx, [ecx + ebp - 1]
lea ecx, [ebx + eax - 1]
push edx
push ecx
call fcn.0041f9e0
mov eax, dword [edi + 0x50]
mov edx, dword [esp + 0x4c]
push edx
push ebp
lea ecx, [ebx + eax - 1]
push ecx
call fcn.0041f9e0
add esp, 0x38
jmp case.0x42f4db.6
mov edi, dword [esi + 0xc0]
mov ebx, dword [esi + 0x50]
mov eax, dword [esi + 0x4c]
mov edx, dword [edi + 0x18]
mov ecx, dword [edi + 0x14]
mov dword [esp + 0x18], edx
mov edx, dword [esi + 0x48]
push edx
mov edx, dword [esp + 0x1c]
push edx
push ecx
push ebx
push eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
call fcn.0041f900
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
push ebx
lea eax, [eax + ecx - 1]
push eax
mov dword [esp + 0x38], eax
call fcn.0041f9c0
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x2c]
push edx
push ebx
push eax
call fcn.0041f9e0
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x48]
push edx
lea eax, [ecx + ebx - 1]
push eax
mov eax, dword [esp + 0x40]
push eax
call fcn.0041f9e0
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
push ebp
lea eax, [ecx + ebx - 1]
push eax
push edx
call fcn.0041f9e0
mov eax, dword [esp + 0x5c]
add esp, 0x40
push ebp
push ebx
push eax
call fcn.0041f9e0
mov eax, dword [edi]
add esp, 0xc
cmp eax, 1
jne 0x43007e
mov ebx, dword [edi + 4]
mov ecx, dword [edi + 0x18]
mov eax, dword [esi + 0x50]
sub ebx, ecx
add ebx, eax
jmp 0x43008f
mov eax, dword [edi + 4]
mov edx, dword [edi + 0x14]
mov ecx, dword [esi + 0x4c]
sub eax, edx
add eax, ecx
mov dword [esp + 0x10], eax
mov ecx, dword [esi + 0x48]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x14]
push edx
push eax
push ebx
push ecx
call fcn.0041f900
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
push ebx
lea eax, [edx + eax - 1]
push eax
mov dword [esp + 0x38], eax
call fcn.0041f9c0
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x2c]
push ecx
push ebx
push edx
call fcn.0041f9e0
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x38]
push ecx
lea eax, [eax + ebx - 1]
push eax
push edx
mov dword [esp + 0x64], eax
call fcn.0041f9e0
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x50]
push ebp
push eax
push ecx
call fcn.0041f9e0
mov edx, dword [esp + 0x5c]
add esp, 0x40
push ebp
push ebx
push edx
call fcn.0041f9e0
mov eax, dword [edi]
mov ebx, dword [esi + 0x50]
mov ecx, dword [esi + 0x4c]
add esp, 0xc
cmp eax, 1
jne 0x43020e
mov eax, dword [edi + 0x14]
push 1
cdq
sub eax, edx
push ebp
sar eax, 1
add eax, ecx
push 1
mov dword [esp + 0x48], eax
mov eax, dword [edi + 0x14]
cdq
and edx, 3
push ebp
add eax, edx
push 3
sar eax, 2
add eax, ebx
mov dword [esp + 0x54], eax
mov eax, dword [edi + 0x14]
cdq
and edx, 3
add eax, edx
sar eax, 2
add eax, ecx
mov dword [esp + 0x58], eax
mov edx, dword [edi + 0x14]
add edx, edx
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x55555556
add edx, ebx
mov dword [esp + 0x5c], edx
mov edx, dword [edi + 0x14]
add edx, edx
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x55555556
lea ecx, [edx + ecx + 2]
mov dword [esp + 0x60], ecx
mov ecx, dword [edi + 0x14]
add ecx, ecx
imul ecx
mov eax, edx
lea ecx, [esp + 0x50]
shr eax, 0x1f
add edx, eax
push ecx
add edx, ebx
mov dword [esp + 0x68], edx
call fcn.00420380
mov eax, dword [edi + 0x14]
mov ecx, dword [esi + 0x50]
cdq
mov ebx, dword [edi + 4]
and edx, 3
add eax, edx
mov edx, ecx
sar eax, 2
sub edx, eax
mov eax, 0x55555556
add edx, ebx
mov dword [esp + 0x58], edx
mov edx, dword [edi + 0x14]
add edx, edx
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, ecx
sub eax, edx
mov edx, dword [edi + 4]
add eax, edx
mov dword [esp + 0x60], eax
mov edx, dword [edi + 0x14]
add edx, edx
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [edi + 4]
sub ecx, edx
add ecx, eax
mov dword [esp + 0x68], ecx
jmp 0x4302f9
mov eax, dword [edi + 0x18]
push 1
cdq
and edx, 3
push ebp
add eax, edx
push 1
sar eax, 2
add eax, ecx
push ebp
mov dword [esp + 0x4c], eax
mov eax, dword [edi + 0x18]
cdq
sub eax, edx
push 3
sar eax, 1
add eax, ebx
mov dword [esp + 0x54], eax
mov edx, dword [edi + 0x18]
add edx, edx
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
add edx, ecx
mov dword [esp + 0x58], edx
mov eax, dword [edi + 0x18]
cdq
and edx, 3
add eax, edx
sar eax, 2
add eax, ebx
mov dword [esp + 0x5c], eax
mov edx, dword [edi + 0x18]
add edx, edx
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x55555556
add edx, ecx
mov dword [esp + 0x60], edx
mov ecx, dword [edi + 0x18]
add ecx, ecx
imul ecx
mov ecx, edx
lea eax, [esp + 0x50]
shr ecx, 0x1f
add edx, ecx
push eax
lea edx, [edx + ebx + 2]
mov dword [esp + 0x68], edx
call fcn.00420380
mov eax, dword [edi + 0x18]
mov ecx, dword [esi + 0x4c]
cdq
mov ebx, dword [edi + 4]
and edx, 3
add eax, edx
mov edx, ecx
sar eax, 2
sub edx, eax
mov eax, 0x55555556
add edx, ebx
mov dword [esp + 0x54], edx
mov edx, dword [edi + 0x18]
add edx, edx
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, ecx
sub eax, edx
mov edx, dword [edi + 4]
add eax, edx
mov dword [esp + 0x5c], eax
mov edx, dword [edi + 0x18]
add edx, edx
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [edi + 4]
sub ecx, edx
add ecx, eax
mov dword [esp + 0x64], ecx
push 1
push ebp
push 1
push ebp
lea ecx, [esp + 0x64]
push 3
push ecx
call fcn.00420380
mov eax, dword [edi]
add esp, 0x30
fld dword [edi + 8]
cmp eax, 1
jne 0x430345
mov edx, dword [esi + 0x4c]
mov dword [esp + 0x10], edx
call fcn.00509960
mov ecx, dword [esi + 0x50]
mov ebx, eax
mov eax, dword [edi + 0x18]
add ebx, ecx
fld dword [edi + 0xc]
add ebx, eax
mov eax, dword [edi + 0x14]
mov dword [esp + 0x14], eax
call fcn.00509960
mov dword [esp + 0x18], eax
jmp 0x43036e
call fcn.00509960
mov edx, dword [edi + 0x14]
mov ecx, dword [esi + 0x4c]
fld dword [edi + 0xc]
mov ebx, dword [esi + 0x50]
add eax, edx
add eax, ecx
mov dword [esp + 0x10], eax
call fcn.00509960
mov ecx, dword [edi + 0x18]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
mov edx, dword [esi + 0x48]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
push edx
push eax
push ecx
push ebx
push edi
call fcn.0041f900
mov edx, dword [esp + 0x28]
push ebx
lea edi, [edx + edi - 1]
push edi
call fcn.0041f9c0
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x2c]
push eax
push ebx
push ecx
call fcn.0041f9e0
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x48]
push ecx
lea eax, [edx + ebx - 1]
mov edx, dword [esp + 0x3c]
push eax
push edx
mov dword [esp + 0x64], eax
call fcn.0041f9e0
mov eax, dword [esp + 0x64]
push ebp
push eax
push edi
call fcn.0041f9e0
add esp, 0x40
push ebp
push ebx
push edi
call fcn.0041f9e0
add esp, 0xc
mov eax, dword [esi + 0x78]
test eax, eax
je 0x430490
push 0
push 0
push 0
call fcn.0041f6b0
mov edi, dword [esi + 0x78]
add esp, 0xc
test edi, edi
mov ebx, eax
je 0x430490
mov eax, dword [edi]
dec eax
cmp eax, 3
ja case.default.0x43040a
jmp dword [eax*4 + 0x4304c4]
mov eax, dword [edi + 4]
mov ebp, dword [esi + 0x50]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
add ecx, ebp
mov ebp, dword [esi + 0x4c]
add edx, ebp
push ecx
push edx
call fcn.0041f9c0
add esp, 8
jmp case.default.0x43040a
mov eax, dword [edi + 4]
mov ebp, dword [esi + 0x50]
push ebx
mov ecx, dword [eax + 4]
mov edx, dword [eax]
add ecx, ebp
mov ebp, dword [esi + 0x4c]
add edx, ebp
push ecx
push edx
call fcn.0041f9e0
add esp, 0xc
jmp case.default.0x43040a
mov eax, dword [edi + 4]
mov cl, byte [eax + 8]
mov dl, byte [eax + 4]
mov al, byte [eax]
push ecx
push edx
push eax
call fcn.0041f6b0
add esp, 0xc
mov ebx, eax
jmp case.default.0x43040a
mov ecx, dword [0x7e2708]
mov eax, dword [edi + 4]
mov edx, dword [0x7e270c]
push ebx
push ecx
mov ecx, dword [eax]
push edx
push ecx
call fcn.004304e0
add esp, 0x10
mov edi, dword [edi + 8]
test edi, edi
jne 0x430402
pop edi
pop ebp
pop ebx
pop esi
add esp, 0xe4
jmp 0x40e680
pop esi
add esp, 0xe4
ret