Function at 0x428300
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 0x4287f6
push ebx
mov ebx, edi
test ebp, ebp
jle 0x4283ab
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 0x42838f
dec ecx
je 0x42838a
dec ecx
je 0x42837b
dec ecx
jne 0x428392
sar eax, 4
jmp 0x428392
push 0xc
cdq
pop ecx
idiv ecx
mov edx, dword [esp + 0x190]
jmp 0x428392
sar eax, 3
jmp 0x428392
sar eax, 2
and esi, 0x8000
or esi, eax
mov dword [edx + ebx*4], esi
inc ebx
cmp ebx, ebp
jl 0x42835a
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 0x4284d7
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.0042916f
mov ecx, dword [esi]
mov edx, 0x8000
mov ebp, dword [esp + 0x30]
add esp, 0x14
test edx, ecx
jne 0x42849b
cmp eax, ecx
je 0x42849b
mov edx, dword [ebx + 0x50c]
sub edx, eax
cmp edx, eax
jl 0x428455
mov edx, eax
sub ecx, eax
jns 0x428472
mov eax, edx
neg eax
cmp ecx, eax
jge 0x428468
sub edx, ecx
lea ecx, [edx - 1]
jmp 0x42847c
lea eax, [ecx + ecx]
or ecx, 0xffffffff
sub ecx, eax
jmp 0x42847c
cmp ecx, edx
jl 0x42847a
add ecx, edx
jmp 0x42847c
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 0x4284a9
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 0x428400
mov ebx, dword [esp + 0x80]
mov esi, dword [esp + 0x7c]
push 1
push 1
push dword [esp + 0x18c]
call fcn.0042cc50
mov ebp, dword [esp + 0x198]
mov eax, dword [ebp + 0x50c]
inc dword [ebp + 0x51c]
dec eax
push eax
call fcn.0041ecd5
add eax, eax
add dword [ebp + 0x518], eax
mov eax, dword [ebp + 0x50c]
dec eax
push eax
call fcn.0041ecd5
push eax
push esi
push dword [esp + 0x1a0]
call fcn.0042cc50
mov eax, dword [ebp + 0x50c]
dec eax
push eax
call fcn.0041ecd5
push eax
push ebx
push dword [esp + 0x1b0]
call fcn.0042cc50
mov edx, dword [esp + 0x40]
add esp, 0x30
mov dword [esp + 0x28], edi
cmp dword [edx], edi
jle 0x42872d
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 0x4286a5
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 0x42860b
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 0x4285ee
mov dword [esp + edx*4 + 0x3c], 1
jmp 0x4285fc
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 0x4285de
mov ebp, dword [esp + 0x18c]
mov edx, edi
test ebx, ebx
jle 0x42866e
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 0x428639
mov ecx, dword [ebx]
cmp ecx, dword [esp + eax*4 + 0x3c]
jl 0x428635
inc eax
cmp eax, esi
jl 0x428628
jmp 0x428639
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 0x428620
mov ebp, dword [esp + 0x18c]
mov ebx, dword [esp + 0x14]
jmp 0x428672
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.00426aaf
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 0x42870d
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 0x4286ff
mov ecx, dword [ebx]
imul eax, eax, 0x38
add eax, dword [esp + 0x34]
cmp ecx, dword [eax + 4]
jge 0x4286fb
push dword [esp + 0x184]
push ecx
push eax
call fcn.00426aaf
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 0x4286c5
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 0x428559
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 0x4287e4
lea ebx, [eax + 0x108]
mov edx, dword [ebx]
mov eax, dword [esi + edx*4]
and eax, 0x7fff
cmp eax, dword [esi + edx*4]
jne 0x4287bd
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.004290ec
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 0x428773
mov ebx, dword [esp + 0x188]
jmp 0x4287e4
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 0x4287d9
xor eax, eax
inc eax
pop ebx
jmp 0x428823
push 1
push edi
push dword [esp + 0x188]
call fcn.0042cc50
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