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

Disassembly:
sub esp, 0x6c
mov eax, dword [esp + 0x7c]
shr dword [esp + 0x78], 1
push ebx
push ebp
mov ecx, dword [eax + 0x10]
push esi
mov esi, dword [esp + 0x7c]
mov edx, esi
mov dword [esp + 0x34], ecx
mov ecx, dword [eax + 0x14]
mov eax, dword [eax]
mov dword [esp + 0x38], ecx
lea ebx, [esi + 0x40]
mov ecx, dword [esi + 4]
cmp ecx, dword [esi + 0x24]
push edi
lea edi, [esi + 0x20]
mov dword [esp + 0x40], eax
mov eax, dword [esi + 0x44]
cmovle edx, edi
cmovle edi, esi
mov esi, ebx
mov ebp, edi
mov dword [esp + 0x80], ebp
cmp dword [edx + 4], eax
mov eax, dword [edi + 4]
cmovle ebx, edx
cmovg esi, edx
mov dword [esp + 0x28], esi
mov dword [esp + 0x18], ebx
cmp eax, dword [ebx + 4]
jle 0x42cd31
mov ebp, ebx
mov dword [esp + 0x80], ebx
mov ebx, edi
mov dword [esp + 0x18], edi
mov edx, dword [esp + 0x28]
mov esi, dword [ebp + 4]
mov dword [esp + 0x64], esi
mov edx, dword [edx + 4]
lea ecx, [esi + 0xffff]
sar ecx, 0x10
mov dword [esp + 0x60], ecx
lea eax, [edx + 0xffff]
sar eax, 0x10
mov dword [esp + 0x20], eax
cmp ecx, eax
je 0x42d852
mov ebx, dword [ebx + 4]
sub edx, esi
lea eax, [ebx + 0xffff]
sar eax, 0x10
mov dword [esp + 0x58], eax
mov eax, edx
cdq
push edx
push eax
push 0x10000
push 0
call fcn.0059bbf0
mov ecx, dword [ebp]
mov edi, eax
mov eax, dword [esp + 0x28]
mov esi, edx
push esi
push edi
mov dword [esp + 0x5c], ecx
mov eax, dword [eax]
sub eax, ecx
cdq
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x80]
mov ebp, edx
push esi
push edi
mov dword [esp + 0x4c], ebp
mov ecx, dword [eax + 0x18]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x94], ecx
mov eax, dword [eax + 0x18]
sub eax, ecx
cdq
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x80]
push esi
mov dword [esp + 0x34], edx
push edi
mov ecx, dword [eax + 0x1c]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x34], ecx
mov eax, dword [eax + 0x1c]
sub eax, ecx
cdq
push edx
push eax
call fcn.0059bca0
mov esi, dword [esp + 0x64]
sub ebx, esi
mov dword [esp + 0x34], edx
mov eax, ebx
cdq
mov ecx, eax
mov ebx, edx
push ebx
mov eax, ebp
mov dword [esp + 0x50], ecx
cdq
push ecx
mov edi, edx
mov dword [esp + 0x50], ebx
push edi
push eax
mov dword [esp + 0x90], eax
call fcn.0059bca0
mov ebp, dword [esp + 0x54]
mov ecx, eax
mov eax, dword [esp + 0x18]
shrd ecx, edx, 0x10
add ecx, ebp
mov ebx, dword [eax]
mov dword [esp + 0x5c], ecx
cmp ebx, ecx
je 0x42d852
mov eax, dword [esp + 0x60]
shl eax, 0x10
sub eax, esi
cdq
mov ecx, edx
mov dword [esp + 0x64], eax
push ecx
push eax
push edi
push dword [esp + 0x8c]
mov dword [esp + 0x60], ecx
call fcn.0059bca0
push dword [esp + 0x50]
shrd eax, edx, 0x10
add eax, ebp
mov ebp, dword [esp + 0x68]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x34]
cdq
push ebp
mov esi, edx
mov edi, eax
push esi
push edi
call fcn.0059bca0
push dword [esp + 0x50]
shrd eax, edx, 0x10
push ebp
add eax, dword [esp + 0x94]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x3c]
cdq
mov ecx, eax
mov eax, edx
push eax
push ecx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x78], eax
call fcn.0059bca0
shrd eax, edx, 0x10
add eax, dword [esp + 0x2c]
mov dword [esp + 0x14], eax
mov eax, ebx
sub eax, dword [esp + 0x5c]
cdq
push edx
push eax
push 0x10000
push 0
call fcn.0059bbf0
push dword [esp + 0x48]
mov dword [esp + 0x28], eax
mov ebp, edx
push dword [esp + 0x50]
push esi
push edi
call fcn.0059bca0
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x18]
shrd ecx, esi, 0x10
push ebp
push dword [esp + 0x28]
mov eax, dword [eax + 0x18]
cdq
mov ebx, eax
sar esi, 0x10
mov eax, dword [esp + 0x94]
sub ebx, ecx
mov edi, edx
cdq
sbb edi, esi
sub ebx, eax
sbb edi, edx
push edi
push ebx
call fcn.0059bca0
push dword [esp + 0x48]
mov dword [esp + 0x20], edx
push dword [esp + 0x50]
push dword [esp + 0x70]
push dword [esp + 0x78]
call fcn.0059bca0
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x18]
shrd ecx, esi, 0x10
push ebp
push dword [esp + 0x28]
mov eax, dword [eax + 0x1c]
cdq
mov ebx, eax
sar esi, 0x10
mov eax, dword [esp + 0x34]
sub ebx, ecx
mov edi, edx
cdq
sbb edi, esi
sub ebx, eax
sbb edi, edx
push edi
push ebx
call fcn.0059bca0
mov ecx, dword [esp + 0x60]
mov ebp, edx
imul ecx, dword [esp + 0x88]
mov eax, dword [esp + 0x84]
mov esi, dword [esp + 0x90]
mov dword [esp + 0x2c], ebp
lea eax, [eax + ecx*2]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x58]
sub eax, dword [esp + 0x60]
mov dword [esp + 0x24], eax
je 0x42d403
push dword [esp + 0x48]
mov eax, dword [esp + 0x1c]
push dword [esp + 0x50]
push 0x10000
mov eax, dword [eax]
sub eax, dword [esp + 0x60]
cdq
push 0
mov ebx, eax
mov edi, edx
call fcn.0059bbf0
push edx
push eax
push edi
push ebx
call fcn.0059bca0
push dword [esp + 0x50]
mov eax, edx
push dword [esp + 0x68]
mov dword [esp + 0x50], eax
cdq
push edx
push eax
call fcn.0059bca0
mov ecx, dword [esp + 0x18]
mov edi, eax
shrd edi, edx, 0x10
add edi, dword [esp + 0x54]
mov eax, dword [ecx]
cmp dword [esp + 0x5c], eax
jge 0x42d1f9
mov ebx, dword [esp + 0x24]
test ebx, ebx
jle 0x42d407
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x80]
cdq
mov dword [esp + 0x68], eax
mov eax, ebp
mov dword [esp + 0x6c], edx
cdq
mov dword [esp + 0x74], eax
lea eax, [edi + 0xffff]
mov dword [esp + 0x70], edx
lea edx, [ecx + 0xffff]
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], edx
nop word [eax + eax]
mov ebp, edx
dec ebx
and ebp, 0xffff0000
mov dword [esp + 0x24], ebx
mov eax, ebp
sub eax, ecx
cdq
mov edi, edx
mov ebx, eax
push edi
push ebx
push dword [esp + 0x74]
push dword [esp + 0x74]
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0x78]
shrd eax, edx, 0x10
push dword [esp + 0x80]
add eax, dword [esp + 0x20]
mov dword [esp + 0x64], eax
call fcn.0059bca0
mov ecx, eax
mov eax, ebp
shrd ecx, edx, 0x10
mov edx, dword [esp + 0x8c]
add ecx, dword [esp + 0x14]
sar eax, 0x10
mov dword [esp + 0x60], ecx
lea edi, [edx + eax*2]
mov eax, dword [esp + 0x50]
sub eax, ebp
mov dword [esp + 0x64], edi
sar eax, 0x10
test eax, eax
jle 0x42d19d
dec eax
shr ecx, 0x10
imul ecx, dword [esp + 0x38]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x54]
shr eax, 0x10
add ecx, eax
cmp ecx, dword [esp + 0x3c]
jae 0x42d0da
mov eax, dword [esp + 0x40]
mov ebx, dword [eax + ecx*4]
jmp 0x42d0dc
xor ebx, ebx
imul edx, dword [esi], 0xff
mov eax, ebx
movzx edi, word [edi]
and eax, 0xff00
movzx ecx, bl
and ebx, 0xff0000
imul ecx, dword [esi + 0xc]
imul ebx, dword [esi + 4]
shr edx, 8
and ecx, 0xff00
or ecx, ebx
mov ebx, dword [esi + 8]
imul ebx, eax
mov eax, edi
shr ecx, 8
and eax, 0x1f
mov ebp, ecx
movzx ecx, cl
imul ecx, edx
and ebp, 0xff0000
imul ebp, edx
and ebx, 0xff0000
bswap ebx
imul ebx, edx
mov edx, edi
shr ecx, 0xb
and edx, 0x7e0
and ecx, 0x1f
shr ebp, 0x10
add eax, ecx
and edi, 0xf800
mov ecx, dword [esp + 0x60]
and ebp, 0xf800
shr ebx, 0xd
add edi, ebp
mov ebp, dword [esp + 0x2c]
and ebx, 0x7e0
add edx, ebx
shr eax, 5
shr edx, 5
add ecx, ebp
or edx, eax
shr edi, 5
mov eax, dword [esp + 0x1c]
or edx, edi
mov edi, dword [esp + 0x64]
add dword [esp + 0x54], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x60], ecx
mov word [edi], dx
add edi, 2
mov dword [esp + 0x64], edi
test eax, eax
jg 0x42d0b5
jmp 0x42d1a1
mov ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x88]
mov eax, dword [esp + 0x48]
add dword [esp + 0x50], eax
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x4c]
lea eax, [ebx + ebx]
add dword [esp + 0x8c], eax
mov eax, dword [esp + 0x30]
add dword [esp + 0x10], eax
add ecx, dword [esp + 0x44]
add edx, dword [esp + 0x44]
mov eax, dword [esp + 0x34]
add dword [esp + 0x14], eax
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x4c], edx
test ebx, ebx
jg 0x42d040
jmp 0x42d403
jle 0x42d407
mov ebx, dword [esp + 0x24]
test ebx, ebx
jle 0x42d407
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x80]
cdq
mov dword [esp + 0x74], eax
mov eax, ebp
mov dword [esp + 0x78], edx
cdq
mov dword [esp + 0x6c], eax
lea eax, [ecx + 0xffff]
mov dword [esp + 0x50], eax
lea eax, [edi + 0xffff]
mov dword [esp + 0x70], edx
mov dword [esp + 0x4c], eax
nop
mov ebp, eax
dec ebx
and ebp, 0xffff0000
mov dword [esp + 0x24], ebx
mov eax, ebp
sub eax, ecx
cdq
mov edi, edx
mov ebx, eax
push edi
push ebx
push dword [esp + 0x80]
push dword [esp + 0x80]
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0x78]
shrd eax, edx, 0x10
push dword [esp + 0x78]
add eax, dword [esp + 0x20]
mov dword [esp + 0x64], eax
call fcn.0059bca0
mov ecx, eax
mov eax, ebp
shrd ecx, edx, 0x10
mov edx, dword [esp + 0x8c]
add ecx, dword [esp + 0x14]
sar eax, 0x10
mov dword [esp + 0x60], ecx
lea edi, [edx + eax*2]
mov edx, dword [esp + 0x50]
mov eax, edx
mov dword [esp + 0x64], edi
sub eax, ebp
sar eax, 0x10
test eax, eax
jle 0x42d3ac
nop word [eax + eax]
dec eax
shr ecx, 0x10
imul ecx, dword [esp + 0x38]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x54]
shr eax, 0x10
add ecx, eax
cmp ecx, dword [esp + 0x3c]
jae 0x42d2e5
mov eax, dword [esp + 0x40]
mov ebx, dword [eax + ecx*4]
jmp 0x42d2e7
xor ebx, ebx
imul edx, dword [esi], 0xff
mov eax, ebx
movzx edi, word [edi]
and eax, 0xff00
movzx ecx, bl
and ebx, 0xff0000
imul ecx, dword [esi + 0xc]
imul ebx, dword [esi + 4]
shr edx, 8
and ecx, 0xff00
or ecx, ebx
mov ebx, dword [esi + 8]
imul ebx, eax
mov eax, edi
shr ecx, 8
and eax, 0x1f
mov ebp, ecx
movzx ecx, cl
imul ecx, edx
and ebp, 0xff0000
imul ebp, edx
and ebx, 0xff0000
bswap ebx
imul ebx, edx
mov edx, edi
shr ecx, 0xb
and edx, 0x7e0
and ecx, 0x1f
shr ebp, 0x10
add eax, ecx
and edi, 0xf800
mov ecx, dword [esp + 0x60]
and ebp, 0xf800
shr ebx, 0xd
add edi, ebp
mov ebp, dword [esp + 0x2c]
and ebx, 0x7e0
add edx, ebx
shr eax, 5
shr edx, 5
add ecx, ebp
or edx, eax
shr edi, 5
mov eax, dword [esp + 0x1c]
or edx, edi
mov edi, dword [esp + 0x64]
add dword [esp + 0x54], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x60], ecx
mov word [edi], dx
add edi, 2
mov dword [esp + 0x64], edi
test eax, eax
jg 0x42d2c0
mov edx, dword [esp + 0x50]
jmp 0x42d3b0
mov ebp, dword [esp + 0x2c]
add edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x88]
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x4c]
add ecx, dword [esp + 0x44]
add eax, dword [esp + 0x48]
mov dword [esp + 0x50], edx
lea edx, [ebx + ebx]
add dword [esp + 0x8c], edx
mov edx, dword [esp + 0x30]
add dword [esp + 0x10], edx
mov edx, dword [esp + 0x34]
add dword [esp + 0x14], edx
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x4c], eax
test ebx, ebx
jg 0x42d240
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x58]
sub dword [esp + 0x20], eax
je 0x42d852
mov eax, dword [esp + 0x28]
mov ebx, dword [ecx + 4]
mov eax, dword [eax + 4]
sub eax, ebx
cdq
push edx
push eax
push 0x10000
push 0
call fcn.0059bbf0
mov edi, eax
mov ecx, edx
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov eax, dword [eax]
sub eax, dword [edx]
cdq
push edx
push eax
push ecx
push edi
call fcn.0059bca0
mov eax, dword [esp + 0x58]
mov ecx, edx
shl eax, 0x10
sub eax, ebx
mov dword [esp + 0x54], ecx
imul ecx
mov ecx, dword [esp + 0x18]
mov edi, eax
shrd edi, edx, 0x10
mov eax, dword [ecx]
add edi, eax
cmp dword [esp + 0x5c], eax
jge 0x42d665
mov ebx, dword [esp + 0x20]
test ebx, ebx
jle 0x42d852
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x80]
cdq
mov dword [esp + 0x74], eax
mov eax, ebp
mov dword [esp + 0x78], edx
cdq
mov dword [esp + 0x6c], eax
lea eax, [edi + 0xffff]
mov dword [esp + 0x70], edx
mov dword [esp + 0x58], eax
nop dword [eax + eax]
lea ebp, [ecx + 0xffff]
dec ebx
and ebp, 0xffff0000
mov dword [esp + 0x20], ebx
mov eax, ebp
sub eax, ecx
cdq
mov edi, edx
mov ebx, eax
push edi
push ebx
push dword [esp + 0x80]
push dword [esp + 0x80]
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0x78]
shrd eax, edx, 0x10
push dword [esp + 0x78]
add eax, dword [esp + 0x20]
mov dword [esp + 0x6c], eax
call fcn.0059bca0
mov ebx, eax
mov ecx, ebp
mov eax, dword [esp + 0x58]
shrd ebx, edx, 0x10
mov edx, dword [esp + 0x8c]
sub eax, ebp
add ebx, dword [esp + 0x14]
sar ecx, 0x10
sar eax, 0x10
mov dword [esp + 0x60], ebx
lea edi, [edx + ecx*2]
mov dword [esp + 0x64], edi
test eax, eax
jle 0x42d616
nop dword [eax]
dec eax
mov ecx, ebx
shr ecx, 0x10
imul ecx, dword [esp + 0x38]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x5c]
shr eax, 0x10
add ecx, eax
cmp ecx, dword [esp + 0x3c]
jae 0x42d557
mov eax, dword [esp + 0x40]
mov ebx, dword [eax + ecx*4]
jmp 0x42d559
xor ebx, ebx
imul edx, dword [esi], 0xff
mov eax, ebx
movzx edi, word [edi]
and eax, 0xff00
movzx ecx, bl
and ebx, 0xff0000
imul ebx, dword [esi + 4]
imul ecx, dword [esi + 0xc]
shr edx, 8
and ecx, 0xff00
or ecx, ebx
mov ebx, dword [esi + 8]
imul ebx, eax
mov eax, edi
shr ecx, 8
and eax, 0x1f
mov ebp, ecx
movzx ecx, cl
imul ecx, edx
and ebp, 0xff0000
imul ebp, edx
and ebx, 0xff0000
bswap ebx
imul ebx, edx
mov edx, edi
and edx, 0x7e0
shr ecx, 0xb
and edi, 0xf800
shr ebp, 0x10
and ecx, 0x1f
and ebp, 0xf800
add eax, ecx
add edi, ebp
shr ebx, 0xd
and ebx, 0x7e0
shr eax, 5
add edx, ebx
shr edi, 5
mov ebx, dword [esp + 0x60]
add ebx, dword [esp + 0x2c]
shr edx, 5
or edx, eax
mov dword [esp + 0x60], ebx
mov eax, dword [esp + 0x1c]
or edx, edi
mov edi, dword [esp + 0x64]
add dword [esp + 0x5c], eax
mov eax, dword [esp + 0x68]
mov word [edi], dx
add edi, 2
mov dword [esp + 0x64], edi
test eax, eax
jg 0x42d530
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x54]
add dword [esp + 0x58], eax
mov ecx, dword [esp + 0x80]
add ecx, dword [esp + 0x44]
lea eax, [edx + edx]
add dword [esp + 0x8c], eax
mov eax, dword [esp + 0x30]
add dword [esp + 0x10], eax
mov eax, dword [esp + 0x34]
add dword [esp + 0x14], eax
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x80], ecx
test ebx, ebx
jg 0x42d4b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
jle 0x42d852
mov ecx, dword [esp + 0x20]
test ecx, ecx
jle 0x42d852
mov eax, dword [esp + 0x1c]
cdq
mov dword [esp + 0x74], eax
mov eax, ebp
mov dword [esp + 0x78], edx
cdq
mov dword [esp + 0x6c], eax
lea eax, [edi + 0xffff]
mov dword [esp + 0x70], edx
mov dword [esp + 0x60], eax
nop dword [eax]
mov ebp, eax
dec ecx
and ebp, 0xffff0000
mov dword [esp + 0x20], ecx
mov eax, ebp
sub eax, dword [esp + 0x80]
cdq
mov edi, edx
mov ebx, eax
push edi
push ebx
push dword [esp + 0x80]
push dword [esp + 0x80]
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0x78]
shrd eax, edx, 0x10
push dword [esp + 0x78]
add eax, dword [esp + 0x20]
mov dword [esp + 0x68], eax
call fcn.0059bca0
mov ebx, eax
mov ecx, ebp
shrd ebx, edx, 0x10
mov edx, dword [esp + 0x8c]
add ebx, dword [esp + 0x14]
sar ecx, 0x10
mov dword [esp + 0x64], ebx
lea eax, [edx + ecx*2]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x80]
sub eax, ebp
add eax, 0xffff
sar eax, 0x10
test eax, eax
jle 0x42d80e
dec eax
mov ecx, ebx
shr ecx, 0x10
imul ecx, dword [esp + 0x38]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x58]
shr eax, 0x10
add ecx, eax
cmp ecx, dword [esp + 0x3c]
jae 0x42d74c
mov eax, dword [esp + 0x40]
mov ebx, dword [eax + ecx*4]
jmp 0x42d74e
xor ebx, ebx
imul edx, dword [esi], 0xff
mov eax, ebx
movzx ecx, bl
and eax, 0xff00
imul ecx, dword [esi + 0xc]
and ebx, 0xff0000
imul ebx, dword [esi + 4]
shr edx, 8
and ecx, 0xff00
or ecx, ebx
mov ebx, dword [esi + 8]
imul ebx, eax
mov eax, dword [esp + 0x5c]
shr ecx, 8
mov ebp, ecx
movzx edi, cl
imul edi, edx
and ebp, 0xff0000
and ebx, 0xff0000
imul ebp, edx
bswap ebx
imul ebx, edx
movzx edx, word [eax]
mov ecx, edx
shr edi, 0xb
mov eax, edx
shr ebp, 0x10
and ecx, 0xf800
and eax, 0x7e0
shr ebx, 0xd
and edx, 0x1f
and ebx, 0x7e0
and ebp, 0xf800
add eax, ebx
add ecx, ebp
mov ebx, dword [esp + 0x64]
and edi, 0x1f
add ebx, dword [esp + 0x2c]
add edx, edi
shr eax, 5
shr ecx, 5
or ecx, eax
shr edx, 5
mov eax, dword [esp + 0x1c]
or ecx, edx
mov edx, dword [esp + 0x5c]
add dword [esp + 0x58], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x64], ebx
mov word [edx], cx
add edx, 2
mov dword [esp + 0x5c], edx
test eax, eax
jg 0x42d725
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x44]
add dword [esp + 0x80], eax
mov eax, dword [esp + 0x60]
add eax, dword [esp + 0x54]
lea ecx, [edx + edx]
add dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0x30]
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x34]
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x60], eax
test ecx, ecx
jg 0x42d6a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret