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

Disassembly:
sub esp, 0x30
cmp dword [esp + 0x68], 0x100
push ebx
push ebp
push esi
push edi
jne 0x42ef15
cmp dword [esp + 0x50], 0
je 0x42f0a2
mov eax, dword [esp + 0x68]
mov edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x74]
dec eax
inc edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], edi
jmp 0x42e9e0
mov eax, dword [esp + 0x58]
mov ebp, dword [esp + 0x20]
dec dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x4c]
mov edx, eax
and eax, 0xffff
sar edx, 0x10
mov dword [esp + 0x18], eax
mov eax, edx
imul eax, dword [esp + 0x6c]
add eax, dword [esp + 0x48]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x78], eax
mov dword [esp + 0x14], esi
cmp edx, ebp
jae 0x42ecc2
test esi, esi
je 0x42eef2
mov ebp, dword [esp + 0x64]
dec ebp
mov dword [esp + 0x24], ebp
inc edi
jmp 0x42ea39
mov ebp, dword [esp + 0x24]
dec dword [esp + 0x14]
mov edx, ecx
sar edx, 0x10
lea esi, [eax + edx*4]
cmp edx, ebp
jae 0x42eb59
mov edx, dword [esp + 0x6c]
and ecx, 0xffff
push ecx
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x34]
push ecx
lea eax, [esp + 0x3c]
push eax
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x44]
add edx, esi
push ecx
call fcn.0042c240
mov eax, dword [esp + 0x3c]
imul eax, ebx
cdq
and edx, 0xff
add eax, edx
movzx edx, byte [edi + 1]
sar eax, 8
add eax, edx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x40]
imul eax, ebx
cdq
and edx, 0xff
lea ecx, [edx + eax]
movzx eax, byte [edi - 2]
sar ecx, 8
add ecx, eax
mov eax, dword [esp + 0x44]
imul eax, ebx
cdq
and edx, 0xff
lea esi, [edx + eax]
mov eax, dword [esp + 0x48]
movzx edx, byte [edi - 1]
imul eax, ebx
sar esi, 8
add esi, edx
cdq
and edx, 0xff
lea ebp, [edx + eax]
movzx eax, byte [edi]
sar ebp, 8
add esp, 0x14
add ebp, eax
test ecx, 0xffffff00
je 0x42eafb
xor eax, eax
test ecx, ecx
sets al
dec eax
and eax, 0xff
jmp 0x42eafd
mov eax, ecx
mov byte [edi - 2], al
test esi, 0xffffff00
je 0x42eb17
xor eax, eax
test esi, esi
sets al
dec eax
and eax, 0xff
jmp 0x42eb19
mov eax, esi
mov byte [edi - 1], al
test ebp, 0xffffff00
je 0x42eb33
xor eax, eax
test ebp, ebp
sets al
dec eax
and eax, 0xff
jmp 0x42eb35
mov eax, ebp
mov ecx, dword [esp + 0x38]
mov byte [edi], al
test ecx, 0xffffff00
je 0x42ec9a
xor eax, eax
test ecx, ecx
sets al
dec eax
and eax, 0xff
jmp 0x42ec9c
jne 0x42eca7
mov ebp, dword [esp + 0x6c]
movzx eax, byte [esi + ebp + 3]
mov edx, dword [esp + 0x18]
imul eax, edx
mov ecx, 0x10000
sub ecx, edx
movzx edx, byte [esi + 3]
imul edx, ecx
add eax, edx
shr eax, 0x10
imul eax, ebx
cdq
and edx, 0xff
add eax, edx
movzx edx, byte [edi + 1]
sar eax, 8
add eax, edx
movzx edx, byte [esi + ebp]
imul edx, dword [esp + 0x18]
mov dword [esp + 0x3c], eax
movzx eax, byte [esi]
imul eax, ecx
add eax, edx
shr eax, 0x10
imul eax, ebx
cdq
and edx, 0xff
lea ebp, [edx + eax]
movzx eax, byte [edi - 2]
mov edx, dword [esp + 0x6c]
sar ebp, 8
add ebp, eax
movzx eax, byte [esi + edx + 1]
imul eax, dword [esp + 0x18]
movzx edx, byte [esi + 1]
imul edx, ecx
add eax, edx
shr eax, 0x10
imul eax, ebx
cdq
and edx, 0xff
add eax, edx
movzx edx, byte [edi - 1]
sar eax, 8
add eax, edx
movzx edx, byte [esi + 2]
mov dword [esp + 0x38], eax
imul edx, ecx
mov eax, dword [esp + 0x6c]
movzx eax, byte [esi + eax + 2]
imul eax, dword [esp + 0x18]
movzx ecx, byte [edi]
add eax, edx
shr eax, 0x10
imul eax, ebx
cdq
and edx, 0xff
add eax, edx
sar eax, 8
add eax, ecx
test ebp, 0xffffff00
je 0x42ec3e
xor ecx, ecx
test ebp, ebp
sets cl
dec ecx
and ecx, 0xff
jmp 0x42ec40
mov ecx, ebp
mov edx, dword [esp + 0x38]
mov byte [edi - 2], cl
test edx, 0xffffff00
je 0x42ec5f
xor ecx, ecx
test edx, edx
sets cl
dec ecx
and ecx, 0xff
jmp 0x42ec61
mov ecx, edx
mov byte [edi - 1], cl
test eax, 0xffffff00
je 0x42ec7b
xor ecx, ecx
test eax, eax
sets cl
dec ecx
and ecx, 0xff
jmp 0x42ec7d
mov ecx, eax
mov byte [edi], cl
mov ecx, dword [esp + 0x3c]
test ecx, 0xffffff00
je 0x42ec9a
xor eax, eax
test ecx, ecx
sets al
dec eax
and eax, 0xff
jmp 0x42ec9c
mov eax, ecx
mov ecx, dword [esp + 0x10]
mov byte [edi + 1], al
mov eax, dword [esp + 0x78]
add ecx, dword [esp + 0x5c]
add edi, 4
cmp dword [esp + 0x14], 0
mov dword [esp + 0x10], ecx
jne 0x42ea35
jmp 0x42eeee
jne 0x42eef2
test esi, esi
je 0x42eef2
mov ebp, edi
mov edx, dword [esp + 0x64]
dec dword [esp + 0x14]
mov edi, ecx
sar edi, 0x10
dec edx
cmp edi, edx
jae 0x42ee4c
lea edx, [eax + edi*4 + 4]
movzx eax, byte [eax + edi*4 + 3]
mov dword [esp + 0x18], edx
movzx edx, byte [edx + 3]
and ecx, 0xffff
imul edx, ecx
mov esi, 0x10000
sub esi, ecx
imul eax, esi
add eax, edx
shr eax, 0x10
imul eax, ebx
cdq
and edx, 0xff
add eax, edx
movzx edx, byte [ebp + 2]
sar eax, 8
add eax, edx
mov edx, dword [esp + 0x78]
movzx edx, byte [edx + edi*4]
mov dword [esp + 0x24], eax
imul edx, esi
mov eax, dword [esp + 0x18]
movzx eax, byte [eax]
imul eax, ecx
add eax, edx
shr eax, 0x10
imul eax, ebx
cdq
and edx, 0xff
add eax, edx
movzx edx, byte [ebp - 1]
sar eax, 8
add eax, edx
mov edx, dword [esp + 0x18]
movzx edx, byte [edx + 1]
mov dword [esp + 0x3c], eax
imul edx, ecx
mov eax, dword [esp + 0x78]
movzx eax, byte [eax + edi*4 + 1]
imul eax, esi
add eax, edx
shr eax, 0x10
imul eax, ebx
cdq
and edx, 0xff
add eax, edx
movzx edx, byte [ebp]
sar eax, 8
add eax, edx
mov edx, dword [esp + 0x18]
movzx edx, byte [edx + 2]
mov dword [esp + 0x38], eax
imul edx, ecx
mov eax, dword [esp + 0x78]
movzx eax, byte [eax + edi*4 + 2]
imul eax, esi
movzx ecx, byte [ebp + 1]
add eax, edx
shr eax, 0x10
imul eax, ebx
cdq
and edx, 0xff
add eax, edx
mov edx, dword [esp + 0x3c]
sar eax, 8
add eax, ecx
test edx, 0xffffff00
je 0x42eddf
xor ecx, ecx
test edx, edx
sets cl
dec ecx
and ecx, 0xff
jmp 0x42ede1
mov ecx, edx
mov edx, dword [esp + 0x38]
mov byte [ebp - 1], cl
test edx, 0xffffff00
je 0x42ee00
xor ecx, ecx
test edx, edx
sets cl
dec ecx
and ecx, 0xff
jmp 0x42ee02
mov ecx, edx
mov byte [ebp], cl
test eax, 0xffffff00
je 0x42ee1c
xor ecx, ecx
test eax, eax
sets cl
dec ecx
and ecx, 0xff
jmp 0x42ee1e
mov ecx, eax
mov byte [ebp + 1], cl
mov ecx, dword [esp + 0x24]
test ecx, 0xffffff00
je 0x42ee42
xor eax, eax
test ecx, ecx
sets al
dec eax
and eax, 0xff
mov byte [ebp + 2], al
jmp 0x42eed0
mov eax, ecx
mov byte [ebp + 2], al
jmp 0x42eed0
jne 0x42eed8
movzx eax, byte [eax + edi*4 + 3]
imul eax, ebx
mov esi, dword [esp + 0x78]
cdq
and edx, 0xff
add eax, edx
movzx edx, byte [ebp + 2]
sar eax, 8
add eax, edx
push eax
movzx eax, byte [esi + edi*4]
imul eax, ebx
cdq
and edx, 0xff
lea ecx, [edx + eax]
movzx eax, byte [ebp - 1]
sar ecx, 8
add ecx, eax
movzx eax, byte [esi + edi*4 + 1]
imul eax, ebx
cdq
and edx, 0xff
lea esi, [edx + eax]
mov eax, dword [esp + 0x7c]
movzx eax, byte [eax + edi*4 + 2]
movzx edx, byte [ebp]
imul eax, ebx
sar esi, 8
add esi, edx
cdq
and edx, 0xff
lea edi, [edx + eax]
movzx edx, byte [ebp + 1]
sar edi, 8
add edi, edx
lea edx, [ebp - 1]
call fcn.004384b0
add esp, 4
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x78]
add ecx, dword [esp + 0x5c]
add ebp, 4
cmp dword [esp + 0x14], 0
mov dword [esp + 0x10], ecx
jne 0x42ecd2
mov edi, dword [esp + 0x1c]
add edi, dword [esp + 0x70]
mov eax, dword [esp + 0x60]
add dword [esp + 0x58], eax
cmp dword [esp + 0x50], 0
mov dword [esp + 0x1c], edi
jne 0x42e9e0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret
cmp dword [esp + 0x50], 0
je 0x42f0a2
mov ebx, dword [esp + 0x44]
add ebx, 2
mov dword [esp + 0x18], ebx
jmp 0x42ef30
mov eax, dword [esp + 0x58]
dec dword [esp + 0x50]
sar eax, 0x10
cmp eax, dword [esp + 0x68]
jae 0x42f087
imul eax, dword [esp + 0x6c]
add eax, dword [esp + 0x48]
mov edx, dword [esp + 0x54]
mov esi, eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x78], esi
test eax, eax
je 0x42f087
mov ecx, edx
dec eax
sar ecx, 0x10
mov dword [esp + 0x3c], eax
cmp ecx, dword [esp + 0x64]
jae 0x42f070
movzx eax, byte [esi + ecx*4 + 3]
mov edi, dword [esp + 0x74]
imul eax, edi
cdq
and edx, 0xff
lea ebp, [edx + eax]
movzx eax, byte [esi + ecx*4]
movzx edx, byte [ebx + 1]
imul eax, edi
sar ebp, 8
add ebp, edx
cdq
and edx, 0xff
lea esi, [edx + eax]
movzx eax, byte [ebx - 2]
mov edx, dword [esp + 0x78]
sar esi, 8
add esi, eax
movzx eax, byte [edx + ecx*4 + 1]
imul eax, edi
cdq
and edx, 0xff
lea edi, [edx + eax]
movzx eax, byte [ebx - 1]
mov edx, dword [esp + 0x78]
sar edi, 8
add edi, eax
movzx eax, byte [edx + ecx*4 + 2]
imul eax, dword [esp + 0x74]
movzx ecx, byte [ebx]
cdq
and edx, 0xff
add eax, edx
sar eax, 8
add eax, ecx
test esi, 0xffffff00
je 0x42f00b
xor ecx, ecx
test esi, esi
sets cl
dec ecx
and ecx, 0xff
jmp 0x42f00d
mov ecx, esi
mov byte [ebx - 2], cl
test edi, 0xffffff00
je 0x42f028
xor ecx, ecx
test edi, edi
sets cl
dec ecx
and ecx, 0xff
jmp 0x42f02a
mov ecx, edi
mov byte [ebx - 1], cl
test eax, 0xffffff00
je 0x42f044
xor ecx, ecx
test eax, eax
sets cl
dec ecx
and ecx, 0xff
jmp 0x42f046
mov ecx, eax
mov byte [ebx], cl
test ebp, 0xffffff00
je 0x42f05f
xor eax, eax
test ebp, ebp
sets al
dec eax
and eax, 0xff
jmp 0x42f061
mov eax, ebp
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x78]
mov byte [ebx + 1], al
mov eax, dword [esp + 0x3c]
add edx, dword [esp + 0x5c]
add ebx, 4
mov dword [esp + 0x1c], edx
test eax, eax
jne 0x42ef68
mov ebx, dword [esp + 0x18]
add ebx, dword [esp + 0x70]
mov edx, dword [esp + 0x60]
add dword [esp + 0x58], edx
cmp dword [esp + 0x50], 0
mov dword [esp + 0x18], ebx
jne 0x42ef30
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret