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

Disassembly:
sub esp, 0x58
xor ecx, ecx
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x6c]
mov ebp, 0x28
mov edx, edi
mov esi, ebp
mov ax, word [edx]
test ax, ax
jge 0x43dd4d
cmp ax, 0x8000
jne 0x43dd4b
mov eax, 0x7fff
jmp 0x43dd4d
neg eax
cmp ax, cx
jle 0x43dd54
mov ecx, eax
add edx, 2
dec esi
jne 0x43dd36
xor eax, eax
test cx, cx
je 0x43dd7a
movsx eax, cx
shl eax, 0x10
push eax
call fcn.0043d9e0
add esp, 4
cmp ax, 6
jle 0x43dd7a
xor ebx, ebx
jmp 0x43dd81
mov ebx, 6
sub ebx, eax
lea esi, [esp + 0x18]
mov edx, edi
sub esi, edi
mov dword [esp + 0x14], ebx
mov edi, ebp
mov ax, word [edx]
test ax, ax
jl 0x43dda0
movsx eax, ax
mov cl, bl
sar eax, cl
jmp 0x43ddae
movsx ecx, ax
or eax, 0xffffffff
sub eax, ecx
mov cl, bl
sar eax, cl
not eax
mov word [esi + edx], ax
add edx, 2
dec edi
jne 0x43dd8f
mov ecx, dword [esp + 0x70]
xor esi, esi
movsx edi, word [esp + 0x1a]
lea edx, [ecx - 0x50]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x6c], ebp
add ecx, 0xfffffffc
movsx eax, word [ecx - 0x14]
movsx ebx, word [esp + 0x50]
movsx ebp, word [ecx - 0x12]
imul eax, ebx
movsx ebx, word [esp + 0x52]
imul ebp, ebx
movsx ebx, word [esp + 0x54]
add eax, ebp
movsx ebp, word [ecx - 0x10]
imul ebp, ebx
movsx ebx, word [esp + 0x56]
add eax, ebp
movsx ebp, word [ecx - 0xe]
imul ebp, ebx
movsx ebx, word [esp + 0x58]
add eax, ebp
movsx ebp, word [ecx - 0xc]
imul ebp, ebx
movsx ebx, word [esp + 0x5a]
add eax, ebp
movsx ebp, word [ecx - 0xa]
imul ebp, ebx
movsx ebx, word [esp + 0x5c]
add eax, ebp
movsx ebp, word [ecx - 8]
imul ebp, ebx
movsx ebx, word [esp + 0x5e]
add eax, ebp
movsx ebp, word [ecx - 6]
imul ebp, ebx
movsx ebx, word [esp + 0x60]
add eax, ebp
movsx ebp, word [ecx - 4]
imul ebp, ebx
movsx ebx, word [esp + 0x62]
add eax, ebp
movsx ebp, word [ecx - 2]
imul ebp, ebx
movsx ebx, word [esp + 0x66]
add eax, ebp
movsx ebp, word [ecx + 2]
imul ebp, ebx
movsx ebx, word [esp + 0x1c]
add eax, ebp
movsx ebp, word [ecx - 0x48]
imul ebp, ebx
movsx ebx, word [esp + 0x1e]
add eax, ebp
movsx ebp, word [ecx - 0x46]
imul ebp, ebx
movsx ebx, word [esp + 0x20]
add eax, ebp
movsx ebp, word [ecx - 0x44]
imul ebp, ebx
movsx ebx, word [esp + 0x22]
add eax, ebp
movsx ebp, word [ecx - 0x42]
imul ebp, ebx
movsx ebx, word [esp + 0x24]
add eax, ebp
movsx ebp, word [ecx - 0x40]
imul ebp, ebx
movsx ebx, word [esp + 0x26]
add eax, ebp
movsx ebp, word [ecx - 0x3e]
imul ebp, ebx
movsx ebx, word [esp + 0x28]
add eax, ebp
movsx ebp, word [ecx - 0x3c]
imul ebp, ebx
movsx ebx, word [esp + 0x2a]
add eax, ebp
movsx ebp, word [ecx - 0x3a]
imul ebp, ebx
movsx ebx, word [esp + 0x2c]
add eax, ebp
movsx ebp, word [ecx - 0x38]
imul ebp, ebx
movsx ebx, word [esp + 0x2e]
add eax, ebp
movsx ebp, word [ecx - 0x36]
imul ebp, ebx
movsx ebx, word [esp + 0x30]
add eax, ebp
movsx ebp, word [ecx - 0x34]
imul ebp, ebx
movsx ebx, word [esp + 0x32]
add eax, ebp
movsx ebp, word [ecx - 0x32]
imul ebp, ebx
movsx ebx, word [esp + 0x34]
add eax, ebp
movsx ebp, word [ecx - 0x30]
imul ebp, ebx
movsx ebx, word [esp + 0x36]
add eax, ebp
movsx ebp, word [ecx - 0x2e]
imul ebp, ebx
movsx ebx, word [esp + 0x38]
add eax, ebp
movsx ebp, word [ecx - 0x2c]
imul ebp, ebx
movsx ebx, word [esp + 0x3a]
add eax, ebp
movsx ebp, word [ecx - 0x2a]
imul ebp, ebx
movsx ebx, word [esp + 0x3c]
add eax, ebp
movsx ebp, word [ecx - 0x28]
imul ebp, ebx
movsx ebx, word [esp + 0x3e]
add eax, ebp
movsx ebp, word [ecx - 0x26]
imul ebp, ebx
movsx ebx, word [esp + 0x40]
add eax, ebp
movsx ebp, word [ecx - 0x24]
imul ebp, ebx
movsx ebx, word [esp + 0x42]
add eax, ebp
movsx ebp, word [ecx - 0x22]
imul ebp, ebx
movsx ebx, word [edx + 2]
imul ebx, edi
add eax, ebp
movsx ebp, word [ecx - 0x20]
add eax, ebx
movsx ebx, word [esp + 0x44]
imul ebp, ebx
movsx ebx, word [esp + 0x46]
add eax, ebp
movsx ebp, word [ecx - 0x1e]
imul ebp, ebx
movsx ebx, word [esp + 0x48]
add eax, ebp
movsx ebp, word [ecx - 0x1c]
imul ebp, ebx
movsx ebx, word [esp + 0x4a]
add eax, ebp
movsx ebp, word [ecx - 0x1a]
imul ebp, ebx
movsx ebx, word [esp + 0x4c]
add eax, ebp
movsx ebp, word [ecx - 0x18]
imul ebp, ebx
movsx ebx, word [esp + 0x4e]
add eax, ebp
movsx ebp, word [ecx - 0x16]
imul ebp, ebx
movsx ebx, word [esp + 0x64]
add eax, ebp
movsx ebp, word [ecx]
imul ebp, ebx
movsx ebx, word [esp + 0x18]
add eax, ebp
movsx ebp, word [edx]
imul ebp, ebx
add eax, ebp
cmp eax, esi
jle 0x43e006
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x10], esi
mov esi, eax
mov eax, dword [esp + 0x6c]
sub edx, 2
inc eax
sub ecx, 2
cmp eax, 0x78
mov dword [esp + 0x6c], eax
jle 0x43ddd1
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov ecx, 6
mov word [edx], ax
sub ecx, edi
mov edi, dword [esp + 0x70]
add esi, esi
movsx edx, ax
sar esi, cl
xor ebp, ebp
xor ecx, ecx
shl edx, 1
mov eax, ecx
sub eax, edx
cmp word [eax + edi], 0
mov eax, ecx
jl 0x43e05d
sub eax, edx
movsx eax, word [eax + edi]
sar eax, 3
jmp 0x43e06d
sub eax, edx
movsx ebx, word [eax + edi]
or eax, 0xffffffff
sub eax, ebx
sar eax, 3
not eax
mov ebx, eax
add ecx, 2
imul ebx, eax
add ebp, ebx
cmp ecx, 0x4e
jle 0x43e045
shl ebp, 1
test esi, esi
jg 0x43e093
mov eax, dword [esp + 0x74]
pop edi
pop esi
pop ebp
mov word [eax], 0
pop ebx
add esp, 0x58
ret
cmp esi, ebp
jl 0x43e0a8
mov ecx, dword [esp + 0x74]
pop edi
pop esi
pop ebp
mov word [ecx], 3
pop ebx
add esp, 0x58
ret
push ebp
call fcn.0043d9e0
movsx ecx, ax
mov eax, esi
add esp, 4
shl eax, cl
test eax, eax
jl 0x43e0c3
sar eax, 0x10
mov ebx, eax
jmp 0x43e0cd
or ebx, 0xffffffff
sub ebx, eax
sar ebx, 0x10
not ebx
mov eax, ebp
shl eax, cl
test eax, eax
jl 0x43e0dc
sar eax, 0x10
mov esi, eax
jmp 0x43e0e6
or esi, 0xffffffff
sub esi, eax
sar esi, 0x10
not esi
xor edi, edi
movsx edx, di
mov ax, word [edx*2 + 0x4d0d78]
push eax
push esi
call fcn.0043d9a0
add esp, 8
cmp bx, ax
jle 0x43e109
inc edi
cmp di, 2
jle 0x43e0e8
mov ecx, dword [esp + 0x74]
mov word [ecx], di
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret