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

Disassembly:
sub esp, 0x168
push ebx
push ebp
mov ebp, dword [esp + 0x17c]
mov eax, dword [ebp + 0x510]
mov ebx, dword [ebp + 0x504]
push esi
mov esi, dword [esp + 0x17c]
mov ecx, dword [esi + 0x40]
mov edx, dword [ecx + 4]
mov dword [esp + 0xc], eax
mov eax, dword [edx + 0x1c]
mov edx, dword [esp + 0x184]
test edx, edx
mov dword [esp + 0x2c], eax
mov eax, dword [eax + 0xb20]
mov dword [esp + 0x28], eax
je 0x42aeae
push edi
xor edi, edi
test ebx, ebx
jle 0x42aa1c
jmp 0x42a9c0
mov eax, dword [esp + 0x10]
mov esi, dword [edx + edi*4]
mov eax, dword [eax + 0x340]
mov ecx, esi
add eax, 0xffffffff
and ecx, 0x7fff
cmp eax, 3
ja case.default.0x42a9dd
jmp dword [eax*4 + 0x42aef4]
sar ecx, 2
jmp case.default.0x42a9dd
sar ecx, 3
jmp case.default.0x42a9dd
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [esp + 0x188]
jmp case.default.0x42a9dd
sar ecx, 4
and esi, 0x8000
or esi, ecx
mov dword [edx + edi*4], esi
add edi, 1
cmp edi, ebx
jl 0x42a9c0
cmp ebx, 2
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], ecx
jle 0x42ab68
mov ecx, dword [esp + 0x10]
add ecx, 0x34c
mov dword [esp + 0x14], ecx
lea eax, [edx + 8]
lea ecx, [esp + 0x74]
sub ecx, edx
mov dword [esp + 0x24], eax
lea eax, [ebp + 0x30c]
add ebx, 0xfffffffe
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], ebx
jmp 0x42aa68
mov eax, dword [esp + 0x18]
mov ebp, dword [eax + 0xfc]
mov ebx, dword [eax]
mov eax, dword [esp + 0x188]
mov esi, dword [eax + ebp*4]
mov ecx, dword [eax + ebx*4]
mov edx, dword [esp + 0x10]
mov edi, dword [edx + ebp*4 + 0x344]
and esi, 0x7fff
and ecx, 0x7fff
sub ecx, esi
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x14]
mov edx, dword [edx]
sub edx, edi
imul eax, edx
mov edx, dword [esp + 0x10]
mov edx, dword [edx + ebx*4 + 0x344]
sub edx, edi
mov edi, edx
cdq
idiv edi
test ecx, ecx
jge 0x42aac4
mov ecx, esi
sub ecx, eax
jmp 0x42aac7
lea ecx, [eax + esi]
mov edi, dword [esp + 0x24]
mov eax, dword [edi]
test eax, 0x8000
jne 0x42ab30
cmp ecx, eax
je 0x42ab30
mov edx, dword [esp + 0x184]
mov edx, dword [edx + 0x50c]
sub edx, ecx
cmp edx, ecx
jl 0x42aaed
mov edx, ecx
sub eax, ecx
jns 0x42ab0c
mov ecx, edx
neg ecx
cmp eax, ecx
jge 0x42ab02
sub edx, eax
sub edx, 1
mov eax, edx
jmp 0x42ab16
lea edx, [eax + eax]
or eax, 0xffffffff
sub eax, edx
jmp 0x42ab16
cmp eax, edx
jl 0x42ab14
add eax, edx
jmp 0x42ab16
add eax, eax
mov ecx, dword [esp + 0x20]
mov dword [ecx + edi], eax
mov eax, dword [esp + 0x188]
mov dword [eax + ebp*4], esi
and dword [eax + ebx*4], 0x7fff
jmp 0x42ab43
mov edx, dword [esp + 0x20]
or ecx, 0x8000
mov dword [edi], ecx
mov dword [edx + edi], 0
mov eax, 4
add dword [esp + 0x18], eax
add dword [esp + 0x14], eax
add edi, eax
sub dword [esp + 0x1c], 1
mov dword [esp + 0x24], edi
jne 0x42aa64
mov ebp, dword [esp + 0x184]
mov esi, dword [esp + 0x17c]
push 1
push 1
push esi
call fcn.0042f7e0
mov edx, dword [ebp + 0x50c]
add dword [ebp + 0x51c], 1
add edx, 0xffffffff
mov eax, edx
add esp, 0xc
xor ecx, ecx
test eax, eax
je 0x42ab9b
add ecx, 1
shr eax, 1
jne 0x42ab94
lea eax, [ecx + ecx]
add dword [ebp + 0x518], eax
xor eax, eax
test edx, edx
je 0x42abb7
lea ebx, [ebx]
add eax, 1
shr edx, 1
jne 0x42abb0
mov ecx, dword [esp + 0x74]
push eax
push ecx
push esi
call fcn.0042f7e0
mov eax, dword [ebp + 0x50c]
add esp, 0xc
sub eax, 1
mov ecx, 0
je 0x42abdd
add ecx, 1
shr eax, 1
jne 0x42abd6
mov edx, dword [esp + 0x78]
push ecx
push edx
push esi
call fcn.0042f7e0
mov eax, dword [esp + 0x1c]
add esp, 0xc
cmp dword [eax], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x14], 2
jle 0x42adcc
add eax, 4
mov dword [esp + 0x28], eax
mov ebp, dword [eax]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + ebp*4 + 0x80]
mov ebx, dword [eax + ebp*4 + 0xc0]
xor edx, edx
mov dword [esp + 0x18], ecx
mov ecx, ebx
mov esi, 1
shl esi, cl
xor ecx, ecx
cmp ebx, edx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], edx
mov dword [esp + 0x20], edx
je 0x42ad28
xor eax, eax
cmp esi, edx
jle 0x42aca7
lea edx, [ebp + 0xa]
shl edx, 5
add edx, dword [esp + 0x10]
mov edi, dword [edx]
test edi, edi
jge 0x42ac85
mov dword [esp + eax*4 + 0x54], 1
jmp 0x42ac9b
mov ebp, dword [esp + 0x30]
mov edi, dword [ebp + edi*4 + 0x720]
mov edi, dword [edi + 4]
mov ebp, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x54], edi
add eax, 1
add edx, 4
cmp eax, esi
jl 0x42ac75
xor edx, edx
cmp dword [esp + 0x18], 0
jle 0x42acef
mov edi, dword [esp + 0x14]
lea edi, [esp + edi*4 + 0x74]
xor eax, eax
test esi, esi
jle 0x42acd3
mov ebp, dword [edi]
mov edi, edi
cmp ebp, dword [esp + eax*4 + 0x54]
jl 0x42accf
add eax, 1
cmp eax, esi
jl 0x42acc0
jmp 0x42acd3
mov dword [esp + edx*4 + 0x34], eax
mov eax, dword [esp + edx*4 + 0x34]
shl eax, cl
add edx, 1
add ecx, ebx
add edi, 4
or dword [esp + 0x20], eax
cmp edx, dword [esp + 0x18]
jl 0x42acb6
mov ebp, dword [esp + 0x1c]
mov ecx, dword [esp + 0x17c]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
push ecx
mov ecx, dword [eax + ebp*4 + 0x100]
imul ecx, ecx, 0x2c
add ecx, dword [esp + 0x30]
push edx
push ecx
call fcn.00421140
mov ebx, dword [esp + 0x190]
add dword [ebx + 0x514], eax
add esp, 0xc
xor edx, edx
jmp 0x42ad2f
mov ebx, dword [esp + 0x184]
xor esi, esi
cmp dword [esp + 0x18], edx
jle 0x42ad99
mov edi, dword [esp + 0x14]
lea eax, [ebp*8 + 0x50]
mov dword [esp + 0x1c], eax
lea edi, [esp + edi*4 + 0x74]
lea ebx, [ebx]
mov ecx, dword [esp + esi*4 + 0x34]
add ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + ecx*4]
cmp eax, edx
jl 0x42ad8d
mov ebp, dword [esp + 0x2c]
imul eax, eax, 0x2c
mov ecx, dword [edi]
add eax, ebp
cmp ecx, dword [eax + 4]
jge 0x42ad8d
mov edx, dword [esp + 0x17c]
push edx
push ecx
push eax
call fcn.00421140
add dword [ebx + 0x518], eax
add esp, 0xc
xor edx, edx
add esi, 1
add edi, 4
cmp esi, dword [esp + 0x18]
jl 0x42ad50
mov eax, dword [esp + 0x18]
add dword [esp + 0x14], eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
add ecx, 1
add eax, 4
cmp ecx, dword [edx]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], eax
jl 0x42ac10
mov ebp, dword [esp + 0x184]
mov eax, edx
mov ecx, dword [eax + 0x340]
mov eax, dword [esp + 0x188]
imul ecx, dword [eax]
mov eax, 1
xor edi, edi
xor ebx, ebx
cmp dword [ebp + 0x504], eax
mov dword [esp + 0x14], eax
jle 0x42ae61
add ebp, 0x108
jmp 0x42ae00
mov eax, dword [esp + 0x188]
mov edx, dword [ebp]
mov esi, dword [eax + edx*4]
mov eax, esi
and eax, 0x7fff
cmp eax, esi
jne 0x42ae44
mov edi, dword [esp + 0x10]
mov esi, dword [edi + 0x340]
mov edi, dword [edi + edx*4 + 0x344]
imul esi, eax
mov edx, dword [esp + 0x18c]
push edx
push edi
push ebx
mov eax, esi
call fcn.00429d30
add esp, 0xc
mov ebx, edi
mov ecx, esi
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x184]
add eax, 1
add ebp, 4
cmp eax, dword [edx + 0x504]
mov dword [esp + 0x14], eax
jl 0x42ae00
mov ebx, dword [esp + 0x180]
mov eax, dword [ebx + 0x24]
cdq
sub eax, edx
sar eax, 1
mov esi, edi
cmp edi, eax
pop edi
jge 0x42ae99
jmp 0x42ae80
mov eax, dword [esp + 0x188]
mov dword [eax + esi*4], ecx
mov eax, dword [ebx + 0x24]
cdq
sub eax, edx
add esi, 1
sar eax, 1
cmp esi, eax
jl 0x42ae80
pop esi
mov eax, 1
add dword [0x4a3f14], eax
pop ebp
pop ebx
add esp, 0x168
ret
mov ecx, dword [esp + 0x178]
push 1
push 0
push ecx
call fcn.0042f7e0
mov eax, dword [esi + 0x24]
cdq
sub eax, edx
mov edx, dword [esp + 0x194]
sar eax, 1
add eax, eax
add eax, eax
push eax
push 0
push edx
call sub.MSVCRT.dll_memset
add dword [0x4a3f14], 1
add esp, 0x18
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x168
ret