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

Disassembly:
sub esp, 0x170
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x180]
push ebp
push esi
mov esi, dword [esp + 0x180]
mov eax, dword [ecx + 0x510]
mov ebp, dword [ecx + 0x504]
mov dword [esp + 8], eax
mov eax, dword [esi + 0x40]
push edi
xor edi, edi
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x34], eax
mov eax, dword [eax + 0xb20]
mov dword [esp + 0x30], eax
test edx, edx
je 0x42f010
push ebx
mov ebx, edi
test ebp, ebp
jle 0x42ebc5
mov edi, dword [esp + 0x10]
mov esi, dword [edx + ebx*4]
mov eax, esi
mov ecx, dword [edi + 0x340]
and eax, 0x7fff
dec ecx
je 0x42eba9
dec ecx
je 0x42eba4
dec ecx
je 0x42eb95
dec ecx
jne 0x42ebac
sar eax, 4
jmp 0x42ebac
push 0xc
cdq
pop ecx
idiv ecx
mov edx, dword [esp + 0x190]
jmp 0x42ebac
sar eax, 3
jmp 0x42ebac
sar eax, 2
and esi, 0x8000
or esi, eax
mov dword [edx + ebx*4], esi
inc ebx
cmp ebx, ebp
jl 0x42eb74
mov ecx, dword [esp + 0x18c]
xor edi, edi
mov esi, dword [edx]
mov ebx, dword [edx + 4]
push 2
pop eax
mov dword [esp + 0x7c], esi
mov dword [esp + 0x80], ebx
mov dword [esp + 0x2c], eax
cmp ebp, eax
jle 0x42ecf1
mov eax, dword [esp + 0x10]
lea esi, [edx + 8]
mov ebx, dword [esp + 0x18c]
add eax, 0x34c
mov dword [esp + 0x14], eax
add ecx, 0x30c
lea eax, [esp + 0x7c]
mov dword [esp + 0x24], ecx
sub eax, edx
mov dword [esp + 0x1c], eax
lea eax, [ebp - 2]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
mov ebp, dword [ecx + 0xfc]
mov ecx, dword [ecx]
push dword [eax]
mov eax, ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x2c], ecx
push dword [edx + ecx*4]
push dword [edx + eax*4]
mov edx, dword [esp + 0x1c]
push dword [edx + ecx*4 + 0x344]
push dword [edx + eax*4 + 0x344]
call fcn.0042f989
mov ecx, dword [esi]
mov edx, 0x8000
mov ebp, dword [esp + 0x30]
add esp, 0x14
test edx, ecx
jne 0x42ecb5
cmp eax, ecx
je 0x42ecb5
mov edx, dword [ebx + 0x50c]
sub edx, eax
cmp edx, eax
jl 0x42ec6f
mov edx, eax
sub ecx, eax
jns 0x42ec8c
mov eax, edx
neg eax
cmp ecx, eax
jge 0x42ec82
sub edx, ecx
lea ecx, [edx - 1]
jmp 0x42ec96
lea eax, [ecx + ecx]
or ecx, 0xffffffff
sub ecx, eax
jmp 0x42ec96
cmp ecx, edx
jl 0x42ec94
add ecx, edx
jmp 0x42ec96
add ecx, ecx
mov edx, dword [esp + 0x190]
mov eax, dword [esp + 0x20]
mov dword [esi + ebp], ecx
mov ecx, 0x7fff
and dword [edx + eax*4], ecx
mov eax, dword [esp + 0x28]
and dword [edx + eax*4], ecx
jmp 0x42ecc3
or eax, edx
mov dword [esi + ebp], edi
mov edx, dword [esp + 0x190]
mov dword [esi], eax
mov ecx, dword [esp + 0x24]
add esi, 4
mov eax, dword [esp + 0x14]
add ecx, 4
add eax, 4
mov dword [esp + 0x24], ecx
dec dword [esp + 0x18]
mov dword [esp + 0x14], eax
jne 0x42ec1a
mov ebx, dword [esp + 0x80]
mov esi, dword [esp + 0x7c]
push 1
push 1
push dword [esp + 0x18c]
call fcn.004335e0
mov ebp, dword [esp + 0x198]
mov eax, dword [ebp + 0x50c]
inc dword [ebp + 0x51c]
dec eax
push eax
call fcn.004254ef
add eax, eax
add dword [ebp + 0x518], eax
mov eax, dword [ebp + 0x50c]
dec eax
push eax
call fcn.004254ef
push eax
push esi
push dword [esp + 0x1a0]
call fcn.004335e0
mov eax, dword [ebp + 0x50c]
dec eax
push eax
call fcn.004254ef
push eax
push ebx
push dword [esp + 0x1b0]
call fcn.004335e0
mov edx, dword [esp + 0x40]
add esp, 0x30
mov dword [esp + 0x28], edi
cmp dword [edx], edi
jle 0x42ef47
lea eax, [edx + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [eax]
xor esi, esi
inc esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], edi
mov ecx, dword [edx + eax*4 + 0xc0]
mov ebx, dword [edx + eax*4 + 0x80]
shl esi, cl
mov dword [esp + 0x14], ebx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
test ecx, ecx
je 0x42eebf
mov dword [esp + 0x3c], edi
mov edx, edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
test esi, esi
jle 0x42ee25
mov ebp, dword [esp + 0x38]
lea ecx, [eax + 0xa]
shl ecx, 5
add ecx, dword [esp + 0x10]
mov eax, dword [ecx]
test eax, eax
jns 0x42ee08
mov dword [esp + edx*4 + 0x3c], 1
jmp 0x42ee16
mov eax, dword [ebp + eax*4 + 0x720]
mov eax, dword [eax + 4]
mov dword [esp + edx*4 + 0x3c], eax
inc edx
add ecx, 4
cmp edx, esi
jl 0x42edf8
mov ebp, dword [esp + 0x18c]
mov edx, edi
test ebx, ebx
jle 0x42ee88
mov eax, dword [esp + 0x2c]
lea ebx, [esp + 0x7c]
mov ebp, dword [esp + 0x14]
lea ebx, [ebx + eax*4]
mov eax, edi
test esi, esi
jle 0x42ee53
mov ecx, dword [ebx]
cmp ecx, dword [esp + eax*4 + 0x3c]
jl 0x42ee4f
inc eax
cmp eax, esi
jl 0x42ee42
jmp 0x42ee53
mov dword [esp + edx*4 + 0x5c], eax
mov eax, dword [esp + edx*4 + 0x5c]
add ebx, 4
mov ecx, dword [esp + 0x24]
shl eax, cl
mov ecx, dword [esp + 0x20]
or ecx, eax
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x30]
inc edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
cmp edx, ebp
jl 0x42ee3a
mov ebp, dword [esp + 0x18c]
mov ebx, dword [esp + 0x14]
jmp 0x42ee8c
mov ecx, dword [esp + 0x20]
push dword [esp + 0x184]
mov eax, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x20]
imul eax, dword [eax + ecx*4 + 0x100], 0x38
add eax, dword [esp + 0x3c]
push eax
call fcn.0042d2c9
mov edx, dword [esp + 0x1c]
add esp, 0xc
add dword [ebp + 0x514], eax
mov eax, dword [esp + 0x18]
mov esi, edi
test ebx, ebx
jle 0x42ef27
mov edi, dword [esp + 0x14]
lea ecx, [eax*8 + 0x50]
mov eax, dword [esp + 0x2c]
lea ebx, [esp + 0x7c]
mov dword [esp + 0x18], ecx
lea ebx, [ebx + eax*4]
mov eax, dword [esp + esi*4 + 0x5c]
add eax, ecx
mov eax, dword [edx + eax*4]
test eax, eax
js 0x42ef19
mov ecx, dword [ebx]
imul eax, eax, 0x38
add eax, dword [esp + 0x34]
cmp ecx, dword [eax + 4]
jge 0x42ef15
push dword [esp + 0x184]
push ecx
push eax
call fcn.0042d2c9
mov edx, dword [esp + 0x1c]
add esp, 0xc
add dword [ebp + 0x518], eax
mov ecx, dword [esp + 0x18]
inc esi
add ebx, 4
cmp esi, edi
jl 0x42eedf
mov ebx, dword [esp + 0x14]
xor edi, edi
mov ecx, dword [esp + 0x28]
add dword [esp + 0x2c], ebx
inc ecx
mov eax, dword [esp + 0x1c]
add eax, 4
mov dword [esp + 0x28], ecx
mov dword [esp + 0x1c], eax
cmp ecx, dword [edx]
jl 0x42ed73
mov ebx, dword [esp + 0x188]
xor ebp, ebp
mov ecx, dword [edx + 0x340]
inc ebp
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x190]
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x1c], edi
imul ecx, dword [esi]
mov eax, dword [edx + eax*4]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x18c]
cmp dword [eax + 0x504], ebp
jle 0x42effe
lea ebx, [eax + 0x108]
mov edx, dword [ebx]
mov eax, dword [esi + edx*4]
and eax, 0x7fff
cmp eax, dword [esi + edx*4]
jne 0x42efd7
mov edi, dword [esp + 0x10]
push dword [esp + 0x194]
mov esi, dword [edi + 0x340]
mov edi, dword [edi + edx*4 + 0x344]
imul esi, eax
push esi
push ecx
push edi
push dword [esp + 0x2c]
push dword [esp + 0x44]
call fcn.0042f906
mov ecx, esi
mov dword [esp + 0x34], edi
mov esi, dword [esp + 0x1a8]
add esp, 0x18
mov eax, dword [esp + 0x18c]
inc ebp
add ebx, 4
cmp ebp, dword [eax + 0x504]
jl 0x42ef8d
mov ebx, dword [esp + 0x188]
jmp 0x42effe
mov eax, dword [esp + 0x194]
mov dword [eax + edi*4], ecx
inc edi
mov eax, dword [ebx + 0x24]
cdq
sub eax, edx
sar eax, 1
cmp edi, eax
jl 0x42eff3
xor eax, eax
inc eax
pop ebx
jmp 0x42f03d
push 1
push edi
push dword [esp + 0x188]
call fcn.004335e0
mov eax, dword [esi + 0x24]
cdq
sub eax, edx
sar eax, 1
shl eax, 2
push eax
push edi
push dword [esp + 0x1a4]
call sub.MSVCRT.dll_memset
add esp, 0x18
xor eax, eax
pop edi
pop esi
pop ebp
add esp, 0x170
ret