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

Disassembly:
mov eax, dword [0x5d5758]
test eax, eax
je 0x40e5ae
jmp 0x41b070
ret
mov eax, dword [0x5d5764]
test eax, eax
je 0x41b094
mov eax, dword [eax + 0x6f8]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0x80]
mov dword [0x7e2a28], 0
ret
mov eax, dword [0x5d5764]
sub esp, 0xe4
test eax, eax
push esi
je 0x4303bf
mov esi, dword [esp + 0xec]
test esi, esi
je 0x4303bf
mov eax, dword [esi + 0x9c]
test eax, eax
je 0x4303bf
call fcn.0040e580
mov eax, dword [esi + 0x44]
cmp eax, 2
je 0x42f04b
cmp eax, 3
je 0x42f04b
cmp eax, 0xa
je 0x42f04b
cmp eax, 7
jne 0x42f035
mov eax, dword [esi + 0x80]
jmp 0x42f071
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 0x42f082
mov eax, dword [esi + 0x84]
test eax, eax
je 0x42f06e
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 0x42f082
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.0041f820
add esp, 0x14
push ebx
push ebp
push edi
push 0x5a
push 0x5a
push 0x5a
call fcn.0041f5d0
push 0xff
push 0xff
push 0xff
mov edi, eax
call fcn.0041f5d0
mov ebx, eax
mov eax, dword [esi + 0x64]
add esp, 0x18
test eax, eax
je 0x42f0c4
mov eax, dword [esi + 0x98]
test eax, eax
jne 0x42f0e5
mov eax, dword [esi + 0x84]
test eax, eax
jne 0x42f0e5
cmp dword [esi + 0x44], 0xa
je 0x42f321
test dword [esi + 0x5c], 0xff000000
jne 0x42f321
mov eax, dword [esi + 0x5c]
and eax, 0xffffff
jne 0x42f164
mov edx, dword [esi + 0x50]
mov eax, dword [esi + 0x4c]
push edx
push eax
call fcn.0041f8e0
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.0041f900
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.0041f900
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.0041f900
mov eax, dword [esi + 0x60]
push eax
mov ecx, dword [esi + 0x50]
mov edx, dword [esi + 0x4c]
push ecx
push edx
call fcn.0041f900
add esp, 0x38
jmp 0x42f321
cmp eax, 1
jne 0x42f208
mov eax, dword [esi + 0x44]
cmp eax, 2
je 0x42f17f
cmp eax, 3
je 0x42f17f
cmp eax, 0xa
jne 0x42f1af
mov eax, dword [esi + 0x84]
test eax, eax
je 0x42f1af
push 0x5a
push 0x5a
push 0x5a
call fcn.0041f5d0
push 0xff
push 0xff
push 0xff
mov ebx, eax
call fcn.0041f5d0
add esp, 0x18
mov edi, eax
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x4c]
push eax
push ecx
call fcn.0041f8e0
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.0041f900
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.0041f900
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.0041f900
push ebx
jmp 0x42f14f
cmp eax, 2
jne 0x42f321
mov eax, dword [esi + 0x44]
cmp eax, 2
je 0x42f223
cmp eax, 3
je 0x42f223
cmp eax, 0xa
jne 0x42f253
mov eax, dword [esi + 0x84]
test eax, eax
je 0x42f253
push 0x5a
push 0x5a
push 0x5a
call fcn.0041f5d0
push 0xff
push 0xff
push 0xff
mov edi, eax
call fcn.0041f5d0
add esp, 0x18
mov ebx, eax
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x4c]
push eax
push ecx
call fcn.0041f8e0
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.0041f900
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.0041f900
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.0041f900
mov ecx, dword [esi + 0x50]
mov edx, dword [esi + 0x4c]
push ebx
push ecx
push edx
call fcn.0041f900
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x4c]
inc eax
inc ecx
push eax
push ecx
call fcn.0041f8e0
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.0041f900
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.0041f900
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.0041f900
mov ecx, dword [esi + 0x50]
mov edx, dword [esi + 0x4c]
inc ecx
push edi
inc edx
push ecx
push edx
call fcn.0041f900
add esp, 0x30
push 0x82
push 0x82
push 0x82
call fcn.0041f5d0
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 0x42f354
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.00430400
mov eax, dword [esi + 0x98]
add esp, 0x10
test eax, eax
je 0x42f397
mov eax, dword [esi + 0x88]
test eax, eax
je 0x42f3c2
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 0x42f3ba
mov eax, dword [esi + 0x8c]
test eax, eax
je 0x42f3c2
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.004208e0
add esp, 0xc
push 0x5a
push 0x5a
push 0x5a
call fcn.0041f5d0
push 0xff
push 0xff
push 0xff
mov ebp, eax
call fcn.0041f5d0
mov ebx, eax
mov eax, dword [esi + 0x44]
add eax, 0xfffffffc
add esp, 0x18
cmp eax, 6
mov dword [esp + 0x20], ebx
ja case.0x42f3fb.6
jmp dword [eax*4 + 0x4303c8]
mov eax, dword [esi + 0x84]
mov edi, dword [esi + 0xc0]
test eax, eax
je 0x42f438
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.0041f820
add esp, 0x14
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x42f4d9
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.0041f8e0
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.0041f900
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.0041f900
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.0041f900
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.0041f900
add esp, 0x38
jmp case.0x42f3fb.6
cmp eax, 2
jne 0x42f5e7
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.0041f8e0
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.0041f900
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.0041f900
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.0041f900
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.0041f900
mov eax, dword [esi + 0x84]
add esp, 0x38
test eax, eax
je case.0x42f3fb.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.0041f900
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.0041f8e0
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.0041f900
add esp, 0x20
jmp case.0x42f3fb.6
cmp eax, 1
jne case.0x42f3fb.6
mov eax, dword [esi + 0x84]
test eax, eax
je 0x42f620
push 0x5a
push 0x5a
push 0x5a
call fcn.0041f5d0
push 0xff
push 0xff
push 0xff
mov ebx, eax
call fcn.0041f5d0
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.0041f8e0
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.0041f900
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.0041f900
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.0041f900
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.0041f900
add esp, 0x38
jmp case.0x42f3fb.6
mov eax, dword [esi + 0x84]
test eax, eax
je case.0x42f3fb.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.0041f820
mov eax, dword [esi + 0x5c]
add esp, 0x14
and eax, 0xffffff
jne 0x42f75b
push ebx
push edi
call fcn.0041f8e0
mov ecx, dword [esp + 0x18]
mov edx, dword [esi + 0x60]
push edx
push ebx
lea eax, [ecx + edi - 1]
push eax
call fcn.0041f900
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.0041f900
mov eax, dword [esi + 0x60]
mov ecx, dword [esp + 0x3c]
push eax
push ecx
push edi
call fcn.0041f900
mov edx, dword [esi + 0x60]
push edx
push ebx
push edi
call fcn.0041f900
add esp, 0x38
jmp 0x42f876
cmp eax, 1
jne 0x42f7b7
push ebx
push edi
call fcn.0041f8e0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
push ecx
push ebx
lea eax, [eax + edi - 1]
push eax
call fcn.0041f900
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.0041f900
mov ecx, dword [esp + 0x3c]
push ebp
push ecx
push edi
call fcn.0041f900
mov edx, dword [esp + 0x4c]
push edx
push ebx
push edi
call fcn.0041f900
add esp, 0x38
jmp 0x42f876
cmp eax, 2
jne 0x42f876
push ebx
push edi
call fcn.0041f8e0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
push ecx
push ebx
lea eax, [eax + edi - 1]
push eax
call fcn.0041f900
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.0041f900
mov ecx, dword [esp + 0x34]
push ebp
lea eax, [ecx + ebx - 1]
push eax
push edi
call fcn.0041f900
mov edx, dword [esp + 0x4c]
push edx
push ebx
push edi
call fcn.0041f900
lea eax, [ebx + 1]
lea ecx, [edi + 1]
push eax
push ecx
call fcn.0041f8e0
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.0041f900
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.0041f900
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x4c]
push ecx
lea eax, [edi + 1]
push edx
push eax
call fcn.0041f900
lea eax, [ebx + 1]
push ebp
push eax
lea eax, [edi + 1]
push eax
call fcn.0041f900
add esp, 0x30
mov eax, dword [esp + 0x24]
mov ecx, dword [0x5c71f4]
add eax, 0x1c
mov dword [esp + 0x2c], 0
mov dword [esp + 0x1c], eax
mov eax, dword [0x5c71f8]
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.0x42f3fb.6
mov ecx, dword [esp + 0x1c]
add ecx, 8
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x1c]
cmp dword [edx], 3
jne 0x42f944
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.0041f8e0
mov eax, dword [0x5c71f8]
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.0041f900
mov eax, dword [0x5c71f8]
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.0041f8e0
mov eax, dword [0x5c71f8]
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.0041f900
add esp, 0x28
jmp 0x42fa3a
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
cmp edx, dword [ecx + 0x14]
jne 0x42f98f
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.0041f820
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.00430400
add esp, 0x24
jmp 0x42f9b3
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x14]
test eax, eax
mov eax, dword [esp + 0x18]
je 0x42f9a3
mov edx, dword [esi + 0x70]
jmp 0x42f9a7
mov edx, dword [esp + 0x30]
push edx
push ebx
push eax
push ecx
call fcn.00430400
add esp, 0x10
mov edx, dword [esp + 0x1c]
cmp dword [edx], 2
jne 0x42fa3a
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x42fa3a
mov ecx, dword [esp + 0x24]
mov eax, dword [0x5c71f4]
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 0x42f9fc
or eax, 0xffffffff
sub eax, ecx
mov dword [esp + 0x38], eax
jmp 0x42fa00
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0x34]
push edi
push edx
call fcn.0041f8e0
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.0041f900
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
add edi, 0xfffffffd
push eax
add ecx, 7
push edi
push ecx
call fcn.0041f900
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 [0x5c71f8]
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 0x42f8b6
jmp case.0x42f3fb.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.0041f820
mov eax, dword [ebx + 0x14]
lea edx, [esp + 0x68]
lea ecx, [ebx + eax + 0x20]
push ecx
push edx
call fcn.005099e1
mov eax, dword [0x5c71f4]
mov ecx, dword [0x5c71fc]
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 0x42fb12
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 0x42fae7
mov eax, dword [ebx + 0x1c]
test eax, eax
jne 0x42fbe4
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.0041f820
mov eax, dword [esi + 0x98]
add esp, 0x14
test eax, eax
je 0x42fb78
mov ecx, dword [esi + 0x70]
mov edx, dword [0x5c71f8]
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 0x42fb97
mov eax, dword [esp + 0x30]
mov ecx, dword [0x5c71f8]
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.00430400
add esp, 0x10
xor eax, eax
mov cl, byte [esp + eax + 0x54]
mov byte [esp + eax + 0xa4], cl
inc eax
test cl, cl
jne 0x42fba1
mov edx, dword [ebx + 0x74]
or eax, 0xffffffff
mov byte [esp + edx + 0xa4], cl
mov edx, dword [esi + 0x70]
mov ecx, dword [0x5c71f8]
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 0x42fc31
mov eax, dword [esi + 0x98]
test eax, eax
je 0x42fc13
mov ecx, dword [0x5c71f8]
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.00430400
jmp 0x42fc3a
mov edx, dword [esp + 0x30]
mov eax, dword [0x5c71f8]
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.00430400
mov edi, dword [esp + 0x28]
mov eax, dword [ebx + 0x1c]
add esp, 0x10
cmp eax, 1
je 0x42fcf1
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x14]
cmp edx, eax
jl 0x42fcf1
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 0x42fced
mov ecx, dword [0x5c71f4]
sub edx, eax
mov eax, dword [0x5c71fc]
push 0
add eax, ecx
mov ecx, dword [esp + 0x1c]
imul edx, eax
push 0xc8
push 0
lea edi, [edx + ecx + 1]
call fcn.0041f5d0
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x34], eax
lea eax, [edx + 2]
push eax
push edi
call fcn.0041f8e0
mov eax, dword [esp + 0x3c]
mov ecx, dword [0x5c71f8]
mov edx, dword [esp + 0x24]
push eax
lea eax, [ecx + edx + 3]
push eax
push edi
call fcn.0041f900
mov ecx, dword [esp + 0x30]
inc edi
lea eax, [ecx + 2]
push eax
push edi
call fcn.0041f8e0
mov edx, dword [esp + 0x50]
mov eax, dword [0x5c71f8]
mov ecx, dword [esp + 0x38]
push edx
lea edx, [eax + ecx + 3]
push edx
push edi
call fcn.0041f900
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.0041f8e0
mov eax, dword [esp + 0x18]
push ebp
push eax
push edi
call fcn.0041f900
mov ecx, dword [ebx + 0xc]
push ebp
mov ebp, dword [esp + 0x28]
lea edx, [ecx + ebp - 1]
push edx
push edi
call fcn.0041f900
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.0041f900
mov eax, dword [ebx + 8]
mov edx, dword [esp + 0x4c]
push edx
push ebp
lea ecx, [eax + edi - 1]
push ecx
call fcn.0041f900
add esp, 0x38
jmp case.0x42f3fb.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.0041f820
mov eax, dword [esp + 0x30]
mov ecx, dword [0x5c71f8]
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 0x42fde0
mov edx, dword [edi + 0x4c]
add edx, ecx
cmp eax, edx
jge 0x42fde0
mov edx, dword [0x5c71f8]
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.0041f820
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 0x42fe00
test ecx, ecx
je 0x42fdfc
mov ecx, dword [ecx + 0x40]
inc eax
cmp eax, edx
jl 0x42fdf0
mov dword [esp + 0x14], ecx
mov eax, dword [edi + 0x4c]
mov dword [esp + 0x2c], 0
test eax, eax
jle 0x42fe8e
test ecx, ecx
je 0x42fe8e
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 0x42fe1c
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 0x42fe4b
mov ecx, dword [esi + 0x70]
or edx, 0xffffffff
sub edx, ecx
jmp 0x42fe4e
mov edx, dword [esi + 0x70]
push edx
push eax
lea eax, [ebx + 3]
lea ecx, [esp + 0x5c]
push eax
push ecx
call fcn.00430400
mov edx, dword [0x5c71f8]
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 0x42fe0f
mov ecx, dword [edi + 0x50]
mov eax, dword [esp + 0x1c]
push eax
lea edx, [ebx + ecx - 1]
push edx
call fcn.0041f8e0
mov eax, dword [esp + 0x24]
push ebp
push eax
push ebx
call fcn.0041f900
mov ecx, dword [edi + 0x54]
push ebp
mov ebp, dword [esp + 0x34]
lea edx, [ecx + ebp - 1]
push edx
push ebx
call fcn.0041f900
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.0041f900
mov eax, dword [edi + 0x50]
mov edx, dword [esp + 0x4c]
push edx
push ebp
lea ecx, [ebx + eax - 1]
push ecx
call fcn.0041f900
add esp, 0x38
jmp case.0x42f3fb.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.0041f820
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.0041f8e0
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x2c]
push edx
push ebx
push eax
call fcn.0041f900
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.0041f900
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
push ebp
lea eax, [ecx + ebx - 1]
push eax
push edx
call fcn.0041f900
mov eax, dword [esp + 0x5c]
add esp, 0x40
push ebp
push ebx
push eax
call fcn.0041f900
mov eax, dword [edi]
add esp, 0xc
cmp eax, 1
jne 0x42ff9e
mov ebx, dword [edi + 4]
mov ecx, dword [edi + 0x18]
mov eax, dword [esi + 0x50]
sub ebx, ecx
add ebx, eax
jmp 0x42ffaf
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.0041f820
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.0041f8e0
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x2c]
push ecx
push ebx
push edx
call fcn.0041f900
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.0041f900
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x50]
push ebp
push eax
push ecx
call fcn.0041f900
mov edx, dword [esp + 0x5c]
add esp, 0x40
push ebp
push ebx
push edx
call fcn.0041f900
mov eax, dword [edi]
mov ebx, dword [esi + 0x50]
mov ecx, dword [esi + 0x4c]
add esp, 0xc
cmp eax, 1
jne 0x43012e
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.004202a0
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 0x430219
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.004202a0
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.004202a0
mov eax, dword [edi]
add esp, 0x30
fld dword [edi + 8]
cmp eax, 1
jne 0x430265
mov edx, dword [esi + 0x4c]
mov dword [esp + 0x10], edx
call fcn.0050a970
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.0050a970
mov dword [esp + 0x18], eax
jmp 0x43028e
call fcn.0050a970
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.0050a970
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.0041f820
mov edx, dword [esp + 0x28]
push ebx
lea edi, [edx + edi - 1]
push edi
call fcn.0041f8e0
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x2c]
push eax
push ebx
push ecx
call fcn.0041f900
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.0041f900
mov eax, dword [esp + 0x64]
push ebp
push eax
push edi
call fcn.0041f900
add esp, 0x40
push ebp
push ebx
push edi
call fcn.0041f900
add esp, 0xc
mov eax, dword [esi + 0x78]
test eax, eax
je 0x4303b0
push 0
push 0
push 0
call fcn.0041f5d0
mov edi, dword [esi + 0x78]
add esp, 0xc
test edi, edi
mov ebx, eax
je 0x4303b0
mov eax, dword [edi]
dec eax
cmp eax, 3
ja case.default.0x43032a
jmp dword [eax*4 + 0x4303e4]
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.0041f8e0
add esp, 8
jmp case.default.0x43032a
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.0041f900
add esp, 0xc
jmp case.default.0x43032a
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.0041f5d0
add esp, 0xc
mov ebx, eax
jmp case.default.0x43032a
mov ecx, dword [0x7e24a8]
mov eax, dword [edi + 4]
mov edx, dword [0x7e24ac]
push ebx
push ecx
mov ecx, dword [eax]
push edx
push ecx
call fcn.00430400
add esp, 0x10
mov edi, dword [edi + 8]
test edi, edi
jne 0x430322
pop edi
pop ebp
pop ebx
pop esi
add esp, 0xe4
jmp 0x40e5a0
pop esi
add esp, 0xe4
ret