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

Disassembly:
sub esp, 0x40
push ebx
push ebp
mov ebp, dword [esp + 0x5c]
push esi
mov esi, dword [esp + 0x50]
cmp byte [esi + 0x16], 0x20
push edi
jne 0x43d15f
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x6c]
push eax
mov eax, dword [esp + 0x5c]
push ecx
mov ecx, dword [esp + 0x68]
push ebp
push ecx
mov ecx, dword [esp + 0x78]
push edx
push eax
call fcn.0043d4b0
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret
mov edi, dword [esp + 0x68]
mov ebx, dword [esp + 0x60]
test edi, edi
jl 0x43d189
mov edx, 0x320
sub edx, ebx
sub edx, edi
js 0x43d17c
mov dword [esp + 0x1c], ebx
jmp 0x43d1a3
mov edx, 0x320
sub edx, edi
mov dword [esp + 0x1c], edx
jmp 0x43d1a3
mov eax, dword [esp + 0x60]
lea edx, [eax + edi]
mov eax, edx
neg eax
mov eax, 0
setns al
dec eax
and eax, edx
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x6c]
test edx, edx
jl 0x43d1c3
mov eax, 0x258
sub eax, ebp
sub eax, edx
js 0x43d1ba
mov eax, ebp
jmp 0x43d1d4
mov eax, 0x258
sub eax, edx
jmp 0x43d1d4
add ebp, edx
mov eax, ebp
neg eax
mov eax, 0
setns al
dec eax
and eax, ebp
test eax, eax
jle 0x43d4a6
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x34], ebp
mov ebp, ebx
mov ebx, dword [0x4b59e4]
imul ebp, edx
imul edx, edx, 0xc80
neg ebp
add edx, ecx
mov dword [esp + 0x30], 0
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x40], eax
jmp 0x43d21b
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x68]
cmp dword [esp + 0x6c], 0
mov eax, dword [esi + 0x24]
jge 0x43d244
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x14], ecx
test edi, edi
jge 0x43d23b
sub eax, edi
mov edx, ebp
add eax, ebp
sub edx, edi
jmp 0x43d26d
mov edx, dword [esi + 0x20]
add eax, ebp
add edx, ebp
jmp 0x43d270
mov ecx, edx
mov dword [esp + 0x14], ecx
test edi, edi
jge 0x43d25a
mov edx, dword [esp + 0x30]
sub eax, edi
add eax, edx
sub edx, edi
jmp 0x43d26d
movsx edx, word [esi + 0xc]
imul edx, dword [esp + 0x34]
mov edi, dword [esp + 0x58]
add eax, edx
add eax, edi
add edx, edi
add edx, dword [esi + 0x20]
xor edi, edi
cmp dword [esp + 0x1c], edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], edi
jle 0x43d478
mov eax, dword [esp + 0x68]
lea ebp, [ecx + eax*4]
mov eax, dword [esp + 0x18]
sub eax, edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x44], eax
jmp 0x43d2a4
mov eax, dword [esp + 0x44]
cmp byte [esi + 0x16], 8
jne 0x43d2f4
cmp byte [edx], 0
je 0x43d459
movzx ecx, byte [edx]
mov eax, dword [esi + 0x1c]
lea ecx, [eax + ecx*4]
movzx eax, byte [ecx + 2]
mov dword [esp + 0x38], ecx
movzx ecx, byte [ecx + 1]
shl eax, 8
or eax, ecx
mov ecx, dword [esp + 0x38]
movzx ecx, byte [ecx]
shl eax, 8
or eax, ecx
cmp dword [esp + 0x68], 0
jge 0x43d2ec
mov ecx, dword [esp + 0x14]
mov dword [ecx + edi*4], eax
jmp 0x43d459
mov dword [ebp], eax
jmp 0x43d459
mov al, byte [edx + eax]
test al, al
je 0x43d459
cmp al, 0xff
jne 0x43d323
movzx eax, byte [edx]
mov ecx, dword [esi + 0x1c]
lea ecx, [ecx + eax*4]
movzx eax, byte [ecx + 2]
mov dword [esp + 0x38], ecx
movzx ecx, byte [ecx + 1]
shl eax, 8
or eax, ecx
mov ecx, dword [esp + 0x38]
jmp 0x43d2d1
movzx eax, al
mov ecx, 0xff
sub ecx, eax
cmp dword [esp + 0x68], 0
mov dword [esp + 0x18], eax
mov dword [esp + 0x48], ecx
jge 0x43d3c4
mov esi, dword [esi + 0x1c]
mov ebp, dword [ebx + ecx*4]
movzx edx, byte [edx]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + edi*4]
lea edx, [esi + edx*4]
mov esi, dword [esp + 0x18]
mov edi, dword [ebx + esi*4]
movzx esi, byte [edx + 1]
movzx esi, byte [esi + edi]
movzx ebx, byte [edx + 2]
movzx edx, byte [edx]
movzx ebx, byte [ebx + edi]
movzx edx, byte [edx + edi]
mov edi, dword [esp + 0x20]
mov ecx, eax
shr ecx, 8
and ecx, 0xff
movzx ecx, byte [ecx + ebp]
add ecx, esi
mov esi, eax
shr esi, 0x10
and esi, 0xff
movzx esi, byte [esi + ebp]
and eax, 0xff
movzx eax, byte [eax + ebp]
mov ebp, dword [esp + 0x24]
add esi, ebx
shl esi, 0x10
shl ecx, 8
add edx, eax
or ecx, esi
mov esi, dword [esp + 0x54]
or ecx, edx
mov edx, dword [esp + 0x14]
mov dword [edx + edi*4], ecx
mov edx, dword [esp + 0x38]
jmp 0x43d453
mov eax, dword [ebp]
movzx ecx, byte [edx]
mov edi, dword [esi + 0x1c]
mov ebp, dword [esp + 0x48]
lea ecx, [edi + ecx*4]
mov edi, dword [esp + 0x18]
mov edi, dword [ebx + edi*4]
mov ebx, dword [ebx + ebp*4]
mov ebp, eax
shr ebp, 8
and ebp, 0xff
mov dword [esp + 0x38], edi
mov dword [esp + 0x18], ebx
movzx ebx, byte [ebx + ebp]
movzx ebp, byte [ecx + 1]
movzx edi, byte [edi + ebp]
mov ebp, dword [esp + 0x18]
add ebx, edi
mov edi, eax
shr edi, 0x10
and edi, 0xff
movzx edi, byte [edi + ebp]
movzx ebp, byte [ecx + 2]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x38]
movzx ebp, byte [ecx + ebp]
add edi, ebp
mov ebp, dword [esp + 0x24]
shl edi, 0x10
shl ebx, 8
or ebx, edi
mov edi, dword [esp + 0x4c]
movzx edi, byte [edi]
movzx ecx, byte [edi + ecx]
mov edi, dword [esp + 0x18]
and eax, 0xff
movzx eax, byte [eax + edi]
mov edi, dword [esp + 0x20]
add ecx, eax
or ebx, ecx
mov dword [ebp], ebx
mov ebx, dword [0x4b59e4]
inc edi
add ebp, 4
inc edx
cmp edi, dword [esp + 0x1c]
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], ebp
mov dword [esp + 0x38], edx
jl 0x43d2a0
mov ebp, dword [esp + 0x3c]
mov eax, 0xc80
add dword [esp + 0x28], eax
add dword [esp + 0x2c], eax
mov eax, dword [esp + 0x60]
add dword [esp + 0x30], eax
add ebp, eax
mov eax, 1
add dword [esp + 0x34], eax
sub dword [esp + 0x40], eax
mov dword [esp + 0x3c], ebp
jne 0x43d213
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret