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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x88
mov edi, dword [esp + 0xa4]
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
test edi, edi
mov dword [esp + 0x50], 0
lea ecx, [eax + edi*2]
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
je 0x43e210
nop
movzx edx, word [eax]
add eax, 2
add word [esp + edx*2 + 0x48], 1
cmp eax, ecx
jne 0x43e200
movzx ebx, word [esp + 0x66]
mov edx, dword [esp + 0xac]
test bx, bx
mov eax, dword [edx]
jne 0x43e900
cmp word [esp + 0x64], 0
jne 0x43e8af
cmp word [esp + 0x62], 0
jne 0x43e914
cmp word [esp + 0x60], 0
jne 0x43e90a
cmp word [esp + 0x5e], 0
jne 0x43e952
cmp word [esp + 0x5c], 0
jne 0x43e945
cmp word [esp + 0x5a], 0
jne 0x43e96c
cmp word [esp + 0x58], 0
jne 0x43e95f
cmp word [esp + 0x56], 0
jne 0x43e979
cmp word [esp + 0x54], 0
jne 0x43e986
cmp word [esp + 0x52], 0
jne 0x43e9a0
cmp word [esp + 0x50], 0
jne 0x43e993
cmp word [esp + 0x4e], 0
jne 0x43e9ba
cmp word [esp + 0x4c], 0
jne 0x43e9ad
cmp word [esp + 0x4a], 0
jne 0x43e30f
mov ebx, dword [esp + 0xa8]
mov ebp, dword [esp + 0xac]
mov eax, dword [ebx]
mov byte [eax], 0x40
mov byte [eax + 1], 1
mov word [eax + 2], 0
mov byte [eax + 4], 0x40
mov byte [eax + 5], 1
mov word [eax + 6], 0
add eax, 8
mov dword [ebx], eax
xor eax, eax
mov dword [ebp], 1
add esp, 0x88
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebp, 1
test eax, eax
cmove ebp, eax
mov dword [esp + 0x28], 1
movzx ecx, word [esp + 0x4a]
mov edx, 2
mov eax, 0xffffffff
sub edx, ecx
js 0x43e304
mov eax, 1
lea esi, [esi]
movzx ecx, word [esp + 0x4c]
add edx, edx
sub edx, ecx
js 0x43e7e3
lea ecx, [edx + edx]
movzx edx, word [esp + 0x4e]
sub ecx, edx
js 0x43e7e3
movzx edx, word [esp + 0x50]
add ecx, ecx
sub ecx, edx
js 0x43e7e3
movzx edx, word [esp + 0x52]
add ecx, ecx
sub ecx, edx
js 0x43e7e3
movzx edx, word [esp + 0x54]
add ecx, ecx
sub ecx, edx
js 0x43e7e3
movzx edx, word [esp + 0x56]
add ecx, ecx
sub ecx, edx
js 0x43e7e3
movzx edx, word [esp + 0x58]
add ecx, ecx
sub ecx, edx
js 0x43e7e3
movzx edx, word [esp + 0x5a]
add ecx, ecx
sub ecx, edx
js 0x43e7e3
movzx edx, word [esp + 0x5c]
add ecx, ecx
sub ecx, edx
js 0x43e7e3
movzx edx, word [esp + 0x5e]
add ecx, ecx
sub ecx, edx
js 0x43e7e3
movzx edx, word [esp + 0x60]
add ecx, ecx
sub ecx, edx
js 0x43e7e3
movzx edx, word [esp + 0x62]
add ecx, ecx
sub ecx, edx
js 0x43e7e3
movzx edx, word [esp + 0x64]
add ecx, ecx
sub ecx, edx
js 0x43e7e3
lea edx, [ecx + ecx]
sub edx, ebx
cmp edx, 0
jl 0x43e7e3
je 0x43e42e
cmp dword [esp + 0x28], 1
jne 0x43e7e3
mov ecx, dword [esp + 0x9c]
test ecx, ecx
je 0x43e7e3
movzx edx, word [esp + 0x4a]
mov word [esp + 0x6a], 0
mov word [esp + 0x6c], dx
add dx, word [esp + 0x4c]
mov word [esp + 0x6e], dx
add dx, word [esp + 0x4e]
mov word [esp + 0x70], dx
add dx, word [esp + 0x50]
mov word [esp + 0x72], dx
add dx, word [esp + 0x52]
mov word [esp + 0x74], dx
add dx, word [esp + 0x54]
mov word [esp + 0x76], dx
add dx, word [esp + 0x56]
mov word [esp + 0x78], dx
add dx, word [esp + 0x58]
mov word [esp + 0x7a], dx
add dx, word [esp + 0x5a]
mov word [esp + 0x7c], dx
add dx, word [esp + 0x5c]
mov word [esp + 0x7e], dx
add dx, word [esp + 0x5e]
mov word [esp + 0x80], dx
add dx, word [esp + 0x60]
mov word [esp + 0x82], dx
add dx, word [esp + 0x62]
mov word [esp + 0x84], dx
add dx, word [esp + 0x64]
mov word [esp + 0x86], dx
xor edx, edx
test edi, edi
je 0x43e51d
mov dword [esp + 0x10], ebp
mov esi, dword [esp + 0xa0]
mov ebp, dword [esp + 0xb0]
mov dword [esp + 8], eax
lea esi, [esi]
movzx eax, word [esi + edx*2]
test ax, ax
je 0x43e50e
movzx ecx, word [esp + eax*2 + 0x68]
movzx ebx, cx
add ecx, 1
mov word [ebp + ebx*2], dx
mov word [esp + eax*2 + 0x68], cx
add edx, 1
cmp edx, edi
jne 0x43e4f0
mov eax, dword [esp + 8]
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0x9c]
test edx, edx
jne 0x43e7f3
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x30], 0x13
mov dword [esp + 0x40], edx
mov dword [esp + 0x3c], edx
mov ebx, dword [esp + 0xa8]
cmp eax, ebp
mov edx, 1
cmovae ebp, eax
mov ecx, ebp
shl edx, cl
mov ebx, dword [ebx]
cmp dword [esp + 0x9c], 1
mov dword [esp + 0x24], ebp
sete byte [esp + 0x46]
cmp edx, 0x354
mov dword [esp + 0x1c], ebx
ja 0x43e842
cmp dword [esp + 0x9c], 2
sete byte [esp + 0x47]
cmp edx, 0x250
ja 0x43e85d
mov ebx, dword [esp + 0xb0]
xor esi, esi
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x2c], edx
sub edx, 1
mov dword [esp + 0x38], edx
mov dword [esp + 0x14], ebx
mov edx, ebx
mov dword [esp + 8], eax
mov edi, ebp
mov dword [esp + 0x34], 0xffffffff
mov dword [esp + 0x10], 0
movzx ebx, word [edx]
xor edx, edx
movzx eax, byte [esp + 8]
sub al, byte [esp + 0x10]
mov byte [esp + 4], al
movzx eax, bx
cmp dword [esp + 0x30], eax
jg 0x43e5fa
jge 0x43e7d7
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x3c]
movzx edx, byte [ebx + eax*2]
movzx ebx, word [ebp + eax*2]
mov ecx, dword [esp + 8]
mov eax, 1
sub ecx, dword [esp + 0x10]
mov ebp, eax
mov dword [esp + 0x20], esi
mov word [esp + 2], bx
shl ebp, cl
mov ecx, edi
shl eax, cl
movzx ecx, byte [esp + 0x10]
mov dword [esp + 0x18], eax
mov eax, esi
mov dword [esp + 0xc], ebp
mov esi, dword [esp + 0xc]
neg ebp
shl ebp, 2
shr eax, cl
mov ecx, dword [esp + 0x1c]
add eax, dword [esp + 0x18]
sub eax, dword [esp + 0xc]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x18]
movzx ebx, byte [esp + 4]
mov byte [eax], dl
mov byte [eax + 1], bl
movzx ebx, word [esp + 2]
mov word [eax + 2], bx
add eax, ebp
sub ecx, esi
jne 0x43e645
mov ecx, dword [esp + 8]
mov eax, 1
mov esi, dword [esp + 0x20]
sub ecx, 1
shl eax, cl
test eax, esi
je 0x43e67a
shr eax, 1
test esi, eax
jne 0x43e674
test eax, eax
je 0x43e7d0
lea edx, [eax - 1]
and edx, esi
lea esi, [edx + eax]
mov ebp, dword [esp + 8]
mov edx, dword [esp + 8]
movzx ebp, word [esp + ebp*2 + 0x48]
mov eax, ebp
sub eax, 1
test ax, ax
mov word [esp + edx*2 + 0x48], ax
jne 0x43e6c9
mov ebx, dword [esp + 0x28]
cmp edx, ebx
je 0x43e86a
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0xa0]
movzx eax, word [ebp + 2]
movzx eax, word [edx + eax*2]
mov dword [esp + 8], eax
mov ebx, dword [esp + 8]
cmp dword [esp + 0x24], ebx
jae 0x43e7bf
mov ebx, dword [esp + 0x38]
and ebx, esi
cmp ebx, dword [esp + 0x34]
je 0x43e7bf
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 8]
test eax, eax
mov eax, dword [esp + 0x1c]
cmovne ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
lea eax, [eax + ebp*4]
sub edi, ecx
mov dword [esp + 0x10], ecx
mov ecx, edi
mov dword [esp + 0x1c], eax
mov eax, 1
shl eax, cl
cmp dword [esp + 8], edx
jae 0x43e75f
mov ebp, dword [esp + 8]
movzx edx, word [esp + ebp*2 + 0x48]
sub eax, edx
test eax, eax
jle 0x43e75f
mov edx, dword [esp + 0x10]
mov dword [esp + 4], esi
mov ebp, dword [esp + 0x28]
lea ecx, [esp + edx*2 + 0x48]
mov esi, edx
jmp 0x43e74f
movzx edx, word [ecx + edi*2]
sub eax, edx
test eax, eax
jle 0x43e75b
add edi, 1
add eax, eax
lea edx, [esi + edi]
cmp ebp, edx
ja 0x43e745
mov esi, dword [esp + 4]
mov eax, 1
mov ecx, edi
shl eax, cl
add dword [esp + 0x2c], eax
cmp dword [esp + 0x2c], 0x354
ja 0x43e91e
cmp dword [esp + 0x2c], 0x250
ja 0x43e930
mov ebp, dword [esp + 0xa8]
mov ecx, edi
lea edx, [ebx*4]
mov dword [esp + 0x34], ebx
mov eax, dword [ebp]
mov byte [eax + ebx*4], cl
movzx ecx, byte [esp + 0x24]
mov eax, dword [ebp]
mov byte [eax + edx + 1], cl
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebp]
sub eax, ecx
sar eax, 2
mov word [ecx + edx + 2], ax
add dword [esp + 0x14], 2
mov edx, dword [esp + 0x14]
jmp 0x43e5c8
xor esi, esi
jmp 0x43e68a
xor ebx, ebx
mov edx, 0x60
jmp 0x43e5fa
add esp, 0x88
mov eax, 0xffffffff
pop ebx
pop esi
pop edi
pop ebp
ret
cmp dword [esp + 0x9c], 1
mov edx, 0x100
mov dword [esp + 0x30], 0xffffffff
cmovne edx, dword [esp + 0x30]
mov dword [esp + 0x40], 0x46e940
mov dword [esp + 0x3c], 0x46e8c0
mov dword [esp + 0x30], edx
mov edx, 0x46e6fe
cmovne edx, dword [esp + 0x40]
mov dword [esp + 0x40], edx
mov edx, 0x46e67e
cmovne edx, dword [esp + 0x3c]
mov dword [esp + 0x3c], edx
jmp 0x43e543
cmp byte [esp + 0x46], 0
je 0x43e57b
add esp, 0x88
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
ret
cmp byte [esp + 0x47], 0
je 0x43e594
jmp 0x43e84d
test esi, esi
lea esi, [esi]
je 0x43e88a
mov ebx, dword [esp + 0x1c]
movzx edx, byte [esp + 4]
lea eax, [ebx + esi*4]
mov byte [eax], 0x40
mov byte [eax + 1], dl
mov word [eax + 2], 0
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0xa8]
mov ecx, dword [esp + 0x24]
mov ebp, dword [esp + 0xac]
shl eax, 2
add dword [ebx], eax
xor eax, eax
mov dword [ebp], ecx
jmp 0x43e304
mov dword [esp + 0x28], 0xe
mov ebp, dword [esp + 0x28]
cmp dword [esp + 0x28], eax
cmova ebp, eax
cmp word [esp + 0x4a], 0
jne 0x43e321
mov eax, 1
mov edx, dword [esp + 0x28]
jmp 0x43e8e8
cmp word [esp + eax*2 + 0x48], 0
jne 0x43e8ef
add eax, 1
cmp eax, edx
jne 0x43e8e0
movzx ecx, word [esp + 0x4a]
mov edx, 2
sub edx, ecx
jmp 0x43e340
mov dword [esp + 0x28], 0xf
jmp 0x43e8b7
mov dword [esp + 0x28], 0xc
jmp 0x43e8b7
mov dword [esp + 0x28], 0xd
jmp 0x43e8b7
cmp byte [esp + 0x46], 0
je 0x43e77a
jmp 0x43e84d
cmp byte [esp + 0x47], 0
je 0x43e788
nop
lea esi, [esi]
jmp 0x43e84d
mov dword [esp + 0x28], 0xa
jmp 0x43e8b7
mov dword [esp + 0x28], 0xb
jmp 0x43e8b7
mov dword [esp + 0x28], 8
jmp 0x43e8b7
mov dword [esp + 0x28], 9
jmp 0x43e8b7
mov dword [esp + 0x28], 7
jmp 0x43e8b7
mov dword [esp + 0x28], 6
jmp 0x43e8b7
mov dword [esp + 0x28], 4
jmp 0x43e8b7
mov dword [esp + 0x28], 5
jmp 0x43e8b7
mov dword [esp + 0x28], 2
jmp 0x43e8b7
mov dword [esp + 0x28], 3
jmp 0x43e8b7