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

Disassembly:
push 0xffffffffffffffff
push 0x56b5d8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x50
push ebx
mov ebx, dword [esp + 0x68]
push ebp
mov ebp, dword [esp + 0x70]
push esi
mov esi, ebx
imul esi, ebp
push edi
push 2
lea eax, [esp + 0x44]
push esi
push eax
lea ecx, [esp + 0x64]
mov dword [esp + 0x54], esi
call fcn.0043a160
mov edi, dword [esp + 0x40]
mov dword [esp + 0x68], 0
test ebp, ebp
jle 0x43b24f
mov esi, dword [esp + 0x80]
mov dword [esp + 0x38], ebp
xor eax, eax
test ebx, ebx
jle 0x43b234
mov ecx, edi
mov dl, byte [eax + esi]
neg dl
sbb edx, edx
add ecx, 2
and edx, 0xfffff000
add edx, 0x1000
inc eax
mov word [ecx - 2], dx
cmp eax, ebx
jl 0x43b211
mov ebp, dword [esp + 0x78]
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x38]
add esi, ecx
dec eax
lea edi, [edi + ebx*2]
mov dword [esp + 0x38], eax
jne 0x43b209
mov esi, dword [esp + 0x48]
push 2
lea eax, [esp + 0x40]
push esi
push eax
lea ecx, [esp + 0x5c]
call fcn.0043a160
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x70]
test ebp, ebp
jle 0x43b2ab
mov dword [esp + 0x80], ebp
test ebx, ebx
jle 0x43b290
mov edx, esi
mov eax, ecx
sub edx, ecx
mov edi, ebx
mov bp, word [edx + eax]
mov word [eax], bp
add eax, 2
dec edi
jne 0x43b27f
mov ebp, dword [esp + 0x78]
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x7c]
dec eax
lea ecx, [ecx + ebx*2]
lea esi, [esi + edx*2]
mov dword [esp + 0x80], eax
jne 0x43b273
mov edi, 2
mov dword [esp + 0x24], 1
mov dword [esp + 0x84], edi
jmp 0x43b2c8
mov edi, dword [esp + 0x84]
cmp edi, ebx
jge 0x43b5ac
cmp edi, ebp
jge 0x43b5ac
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x40]
xor edx, edx
cmp ebp, edx
mov dword [esp + 0x48], edx
mov dword [esp + 0x38], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], esi
mov dword [esp + 0x1c], edx
jle 0x43b592
xor eax, eax
xor ebp, ebp
cmp ebx, eax
mov dword [esp + 0x34], ebp
jle 0x43b555
mov ecx, dword [esp + 0x24]
add ecx, edx
mov dword [esp + 0x4c], ecx
lea ecx, [edi + edx]
mov dword [esp + 0x2c], ecx
jmp 0x43b32f
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
xor eax, eax
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x44], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov ebx, esi
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x78]
cmp ecx, eax
jle 0x43b36b
mov ecx, edi
mov eax, dword [esp + 0x20]
imul ecx, dword [esp + 0x74]
neg ecx
shl ecx, 1
sub edx, edi
lea ebx, [ecx + esi]
add ecx, eax
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x74]
add ecx, ebp
mov eax, ebp
cmp ecx, esi
mov dword [esp + 0x30], eax
jle 0x43b385
sub eax, edi
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x80], edx
cmp edx, ecx
jge 0x43b463
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x78]
cmp edx, ecx
jge 0x43b45b
lea ecx, [edi + ebp]
mov esi, eax
cmp eax, ecx
jge 0x43b428
mov edi, dword [esp + 0x28]
lea edx, [ebx + eax*2]
sub edi, ebx
jmp 0x43b3c3
mov eax, dword [esp + 0x30]
cmp esi, dword [esp + 0x74]
jge 0x43b47a
mov cx, word [edx]
test cx, cx
jle 0x43b3ef
mov eax, dword [esp + 0x18]
movsx ecx, cx
add eax, ecx
mov dword [esp + 0x18], eax
movsx eax, word [edi + edx]
imul eax, ecx
add dword [esp + 0x10], eax
jmp 0x43b40a
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x1c]
cmp ecx, eax
jl 0x43b40a
cmp esi, ebp
jl 0x43b40a
mov dword [esp + 0x44], 1
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x84]
add esi, ecx
add ecx, ecx
add edx, ecx
lea ecx, [eax + ebp]
cmp esi, ecx
jl 0x43b3bf
mov edi, eax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x80]
add edx, ecx
imul ecx, dword [esp + 0x74]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x80], edx
shl ecx, 1
add ebx, ecx
add esi, ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x28], esi
cmp edx, ecx
jl 0x43b398
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x43b483
mov edx, dword [esp + 0x14]
mov dword [esp + 0x48], 1
mov word [edx + ebp*2], 0
jmp 0x43b539
mov edi, dword [esp + 0x84]
jmp 0x43b428
mov eax, dword [esp + 0x10]
cdq
idiv ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x44]
test eax, eax
je 0x43b521
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
cmp eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x38]
mov edx, eax
mov dword [esp + 0x80], edx
jge 0x43b521
cmp edx, dword [esp + 0x78]
jge 0x43b521
lea eax, [edi + ebp]
mov edx, ebp
cmp ebp, eax
jge 0x43b4f8
mov edi, ebx
lea ecx, [esi + ebp*2]
sub edi, esi
cmp edx, dword [esp + 0x74]
jge 0x43b4ed
cmp word [ecx], 0
jne 0x43b4e5
mov bp, word [esp + 0x10]
mov word [ecx + edi], bp
mov word [ecx], 1
inc edx
add ecx, 2
cmp edx, eax
jl 0x43b4cb
mov ebp, dword [esp + 0x34]
mov edi, dword [esp + 0x84]
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x7c]
inc edx
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x2c]
lea ebx, [ebx + ecx*2]
mov ecx, dword [esp + 0x18]
cmp edx, eax
mov dword [esp + 0x80], edx
jl 0x43b4b5
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
sar ecx, 2
mov word [edx + ebp*2], cx
mov cx, word [esp + 0x10]
mov word [eax + ebp*2], cx
mov eax, dword [esp + 0x74]
add ebp, edi
cmp ebp, eax
mov dword [esp + 0x34], ebp
jl 0x43b325
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
mov ebx, eax
mov eax, edi
mov ecx, dword [esp + 0x20]
imul eax, ebx
shl eax, 1
add esi, eax
add ecx, eax
mov eax, edi
mov dword [esp + 0x20], ecx
imul eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x38]
add edx, edi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], esi
lea eax, [ecx + eax*2]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x78]
cmp edx, eax
jl 0x43b302
mov ebp, eax
mov eax, dword [esp + 0x48]
lea ecx, [edi + edi]
test eax, eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x84], ecx
jne 0x43b2c1
lea ecx, [esp + 0x50]
call fcn.0043a1a0
lea ecx, [esp + 0x58]
mov dword [esp + 0x68], 0xffffffff
call fcn.0043a1a0
mov ecx, dword [esp + 0x60]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x5c
ret