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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov esi, dword [esp + 0x70]
mov ebp, dword [esp + 0x74]
mov ebx, dword [esp + 0x78]
mov eax, dword [esi + 0x74]
test al, 1
je 0x43cb4a
test al, 4
jne 0x43c900
test ebp, ebp
je 0x43c814
test byte [ebp + 9], 4
jne 0x43caa0
lea edx, [ebx + 1]
mov ecx, 2
mov eax, esi
call fcn.004398e0
mov edi, eax
test eax, eax
je 0x43cac8
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov dword [esp], esi
call fcn.00432ff0
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov dword [esp], esi
call fcn.00427190
mov dword [esp + 4], 0
mov dword [esp], esi
call fcn.0043a1a0
mov edx, eax
test eax, eax
jne 0x43c928
lea eax, [edi + ebx]
mov ebx, edi
mov byte [eax], 0
cmp byte [edi], 0
mov dword [esp + 0x34], eax
je 0x43c888
lea esi, cs:[esi]
add ebx, 1
cmp byte [ebx], 0
jne 0x43c880
mov eax, dword [esp + 0x34]
sub eax, ebx
cmp eax, 0xc
jle 0x43caf0
mov eax, dword [ebx + 1]
cmp byte [ebx + 1], 0
bswap eax
mov dword [esp + 0x3c], eax
js 0x43c960
mov eax, dword [ebx + 5]
cmp byte [ebx + 5], 0
bswap eax
mov dword [esp + 0x40], eax
js 0x43c930
movzx eax, byte [ebx + 9]
movzx ecx, byte [ebx + 0xa]
mov byte [esp + 0x3b], al
test al, al
jne 0x43c8ce
cmp cl, 2
jne 0x43c8e7
movzx eax, byte [esp + 0x3b]
sub eax, 1
cmp al, 1
ja 0x43c988
cmp cl, 3
je 0x43c988
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], str.invalid_parameter_count
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0042b9c0
mov dword [esp + 4], ebx
mov dword [esp], esi
call fcn.0043a1a0
mov dword [esp + 0x74], str.out_of_place
mov dword [esp + 0x70], esi
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0042b9c0
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
neg eax
movzx ecx, byte [ebx + 0xa]
and eax, 0x7fffffff
neg eax
mov dword [esp + 0x40], eax
movzx eax, byte [ebx + 9]
mov byte [esp + 0x3b], al
test al, al
je 0x43c8c9
jmp 0x43c8ce
neg eax
and eax, 0x7fffffff
neg eax
cmp byte [ebx + 5], 0
mov dword [esp + 0x3c], eax
mov eax, dword [ebx + 5]
bswap eax
mov dword [esp + 0x40], eax
jns 0x43c8b9
jmp 0x43c930
cmp byte [esp + 0x3b], 3
jne 0x43c998
cmp cl, 4
jne 0x43c8e7
cmp byte [esp + 0x3b], 3
ja 0x43cafd
lea eax, [ebx + 0xb]
cmp byte [ebx + 0xb], 0
mov dword [esp + 0x4c], eax
je 0x43cb41
mov ebx, eax
lea esi, cs:[esi]
nop
add ebx, 1
cmp byte [ebx], 0
jne 0x43c9c0
movzx eax, cl
mov dword [esp], esi
mov dword [esp + 0x44], eax
shl eax, 2
mov dword [esp + 4], eax
mov dword [esp + 0x48], edx
call fcn.0042d950
mov edx, dword [esp + 0x48]
test eax, eax
mov ecx, eax
je 0x43cb5a
mov eax, dword [esp + 0x34]
add eax, 1
cmp dword [esp + 0x44], 0
je 0x43ca3f
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x34]
mov dword [esp + 0x34], ebp
mov ebp, dword [esp + 0x44]
nop
add ebx, 1
mov dword [ecx + edx*4], ebx
cmp edi, ebx
jae 0x43ca2b
jmp 0x43cb28
add ebx, 1
cmp eax, ebx
je 0x43cb28
cmp byte [ebx], 0
jne 0x43ca20
add edx, 1
cmp ebp, edx
jne 0x43ca10
mov edi, dword [esp + 0x48]
mov ebp, dword [esp + 0x34]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x20], ecx
mov dword [esp + 8], edi
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], ebp
mov dword [esp + 0x18], eax
movzx eax, byte [esp + 0x3b]
mov dword [esp], esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xc], eax
call fcn.004405c0
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], ecx
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0042d9b0
mov dword [esp + 4], ebx
mov dword [esp], esi
call fcn.0043a1a0
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], str.duplicate
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0042b9c0
mov dword [esp + 4], ebx
mov dword [esp], esi
call fcn.0043a1a0
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], str.out_of_memory
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0042b9c0
mov dword [esp + 0x74], str.invalid
jmp 0x43c914
mov dword [esp + 4], str.unrecognized_equation_type
mov dword [esp], esi
mov dword [esp + 0x48], edx
mov byte [esp + 0x44], cl
call fcn.0042b9c0
mov edx, dword [esp + 0x48]
movzx ecx, byte [esp + 0x44]
jmp 0x43c9a3
mov dword [esp + 4], ecx
mov dword [esp], esi
call fcn.0042d9b0
mov dword [esp + 0x74], str.invalid_data
jmp 0x43c914
mov ebx, dword [esp + 0x4c]
jmp 0x43c9c8
mov dword [esp + 4], str.missing_IHDR
mov dword [esp], esi
call fcn.0042b970
mov dword [esp + 0x74], str.out_of_memory
jmp 0x43c914