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

Disassembly:
sub esp, 0x88
mov eax, dword [0x4b000c]
xor eax, esp
mov dword [esp + 0x84], eax
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x94]
push ebx
mov dword [esp + 8], ecx
mov byte [edx + 0x20], 0
mov ecx, dword [ecx]
push ebp
mov ebp, dword [esp + 0x94]
push esi
cmp byte [ecx + 0x20], 0
push edi
mov dword [esp + 0x80], eax
mov dword [esp + 0x74], edx
je 0x43339f
movzx eax, byte [ecx + 0x1c]
movzx ebx, byte [ebp]
movzx esi, byte [ebp + 1]
sub ebx, eax
movzx eax, byte [ecx + 0x1d]
movzx edi, byte [ebp + 2]
sub esi, eax
movzx eax, byte [ecx + 0x1e]
mov ecx, esi
sub edi, eax
cmp ebx, esi
mov eax, edi
cmovl ecx, ebx
cmp ecx, edi
cmovl eax, ecx
cmp eax, 0xfffffffc
jl 0x433398
cmp ebx, esi
cmovg esi, ebx
cmp esi, edi
cmovg edi, esi
cmp edi, 3
jle 0x43339f
xor al, al
jmp 0x433762
cmp byte [ebp + 8], 0
movzx eax, byte [ebp]
movzx esi, byte [ebp + 1]
mov ecx, eax
movzx edi, byte [ebp + 2]
mov ebx, esi
je 0x4333c8
shl ecx, 4
or ecx, eax
shl ebx, 4
mov eax, edi
or ebx, esi
shl eax, 4
or eax, edi
jmp 0x4333f0
shl eax, 3
shr ecx, 2
or ecx, eax
shr ebx, 2
lea eax, [esi*8]
mov esi, edi
or ebx, eax
shr esi, 2
lea eax, [edi*8]
or esi, eax
mov dword [esp + 0x18], esi
mov eax, esi
test ecx, 0xffffff00
mov dword [edx + 0x18], 0xffffffff
mov esi, 0xff
mov dword [edx + 0x1c], 0xffffffff
cmovne ecx, esi
mov dword [esp + 0x1c], 0
test ebx, 0xffffff00
movzx ebp, cl
lea ecx, [esp + 0x86]
mov dword [esp + 0x7c], ebp
cmovne ebx, esi
test eax, 0xffffff00
movzx ebx, bl
cmovne eax, esi
mov dword [esp + 0x78], ebx
movzx edx, al
mov eax, 0x4a04f0
sub eax, ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], eax
jmp 0x433454
mov edx, dword [esp + 0x24]
lea esi, [esp + 0x86]
mov edi, 4
mov ecx, dword [eax + esi]
lea eax, [edx + ecx]
lea edx, [ebx + ecx]
add ecx, ebp
test ecx, 0xffffff00
je 0x43347b
sar ecx, 0x1f
not ecx
movzx ecx, cl
mov byte [esi - 2], cl
test edx, 0xffffff00
je 0x43348e
sar edx, 0x1f
not edx
movzx edx, dl
mov byte [esi - 1], dl
test eax, 0xffffff00
je 0x4334a0
sar eax, 0x1f
not eax
movzx eax, al
mov edx, dword [esp + 0x24]
mov byte [esi], al
mov eax, dword [esp + 0x20]
mov byte [esi + 1], 0
add esi, 4
sub edi, 1
jne 0x433460
mov eax, dword [esp + 0x14]
xorps xmm0, xmm0
movlpd qword [esp + 0x38], xmm0
mov dword [esp + 0x18], 0
mov eax, dword [eax]
mov ebx, dword [eax + 0xc]
movzx eax, byte [esp + 0x84]
mov dword [esp + 0x44], eax
movzx eax, byte [esp + 0x85]
mov dword [esp + 0x48], eax
movzx eax, byte [esp + 0x86]
mov dword [esp + 0x4c], eax
movzx eax, byte [esp + 0x88]
mov dword [esp + 0x50], eax
movzx eax, byte [esp + 0x89]
mov dword [esp + 0x54], eax
movzx eax, byte [esp + 0x8a]
mov dword [esp + 0x58], eax
movzx eax, byte [esp + 0x8c]
mov dword [esp + 0x5c], eax
movzx eax, byte [esp + 0x8d]
mov dword [esp + 0x60], eax
movzx eax, byte [esp + 0x8e]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x90]
movzx ecx, al
movzx eax, ah
mov dword [esp + 0x6c], eax
movzx eax, byte [esp + 0x92]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x30], eax
nop dword [eax]
mov eax, ebx
add ebx, 4
mov dword [esp + 0x38], ebx
movzx esi, byte [eax + 1]
movzx ebp, byte [eax + 2]
mov ecx, esi
movzx edi, byte [eax]
mov eax, ebp
sub ecx, dword [esp + 0x48]
mov edx, edi
sub eax, dword [esp + 0x4c]
sub edx, dword [esp + 0x44]
imul ecx, ecx
imul eax, eax
mov dword [esp + 0x2c], esi
sub esi, dword [esp + 0x54]
imul edx, edx
imul esi, esi
mov dword [esp + 0x28], edi
sub edi, dword [esp + 0x50]
imul edi, edi
lea ebx, [ecx + eax]
mov eax, dword [esp + 0x2c]
add ebx, edx
mov ecx, ebp
sub ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x28]
imul ecx, ecx
add esi, ecx
mov ecx, ebp
add esi, edi
cmp esi, ebx
mov edi, esi
cmovae edi, ebx
sub eax, dword [esp + 0x60]
sub ecx, dword [esp + 0x64]
sub edx, dword [esp + 0x5c]
imul eax, eax
imul ecx, ecx
imul edx, edx
add ecx, eax
mov eax, 2
add edx, ecx
cmp esi, ebx
mov ebx, dword [esp + 0x28]
sbb ecx, ecx
mov esi, dword [esp + 0x14]
neg ecx
cmp edx, edi
cmovb ecx, eax
cmovae edx, edi
sub ebp, dword [esp + 0x70]
sub ebx, dword [esp + 0x68]
mov eax, dword [esp + 0x2c]
sub eax, dword [esp + 0x6c]
imul eax, eax
imul ebp, ebp
imul ebx, ebx
add eax, ebp
mov ebp, dword [esp + 0x30]
add eax, ebx
mov ebx, 3
cmp eax, edx
cmovb ecx, ebx
cmovae eax, edx
mov ebx, dword [esp + 0x18]
add ebp, eax
mov edx, dword [esp + 0x74]
mov dword [esp + 0x30], ebp
mov byte [esi + ebx + 0xe0], cl
mov esi, dword [esp + 0x34]
mov edi, dword [edx + 0x1c]
adc esi, 0
mov ecx, dword [edx + 0x18]
mov dword [esp + 0x34], esi
cmp esi, edi
ja 0x4336b1
jb 0x43366a
cmp ebp, ecx
jae 0x43367c
inc ebx
mov dword [esp + 0x18], ebx
cmp ebx, 8
mov ebx, dword [esp + 0x38]
jb 0x433570
cmp esi, edi
ja 0x4336b1
jb 0x433686
cmp ebp, ecx
jae 0x4336b1
mov ecx, dword [esp + 0x14]
mov edi, esi
mov eax, dword [esp + 0x1c]
mov dword [edx + 0x18], ebp
mov dword [edx + 0x1c], esi
mov dword [edx + 4], eax
mov eax, dword [ecx + 0xe0]
mov ecx, dword [ecx + 0xe4]
mov dword [edx + 0x10], ecx
mov ecx, ebp
mov dword [edx + 0xc], eax
mov byte [edx + 0x20], 1
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
inc ebp
mov ebx, dword [esp + 0x78]
add eax, 0x10
mov dword [esp + 0x1c], ebp
cmp ebp, 8
mov ebp, dword [esp + 0x7c]
mov dword [esp + 0x20], eax
jb 0x433450
mov esi, dword [esp + 0x9c]
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x80]
mov esi, dword [esi]
mov dword [edx], esi
mov eax, dword [eax]
mov al, byte [eax + 0x10]
mov byte [edx + 8], al
xor al, al
test ebx, ebx
je 0x433762
cmp edi, dword [ebx + 0x1c]
ja 0x433762
jb 0x433706
cmp ecx, dword [ebx + 0x18]
jae 0x433762
mov dword [ebx], esi
mov eax, dword [edx + 4]
mov dword [ebx + 4], eax
movzx eax, byte [edx + 8]
mov byte [ebx + 8], al
movzx eax, byte [edx + 0xc]
mov byte [ebx + 0xc], al
movzx eax, byte [edx + 0xd]
mov byte [ebx + 0xd], al
movzx eax, byte [edx + 0xe]
mov byte [ebx + 0xe], al
movzx eax, byte [edx + 0xf]
mov byte [ebx + 0xf], al
movzx eax, byte [edx + 0x10]
mov byte [ebx + 0x10], al
movzx eax, byte [edx + 0x11]
mov byte [ebx + 0x11], al
movzx eax, byte [edx + 0x12]
mov byte [ebx + 0x12], al
movzx eax, byte [edx + 0x13]
mov byte [ebx + 0x13], al
mov eax, dword [edx + 0x18]
mov ecx, dword [edx + 0x1c]
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], ecx
movzx eax, byte [edx + 0x20]
mov byte [ebx + 0x20], al
mov al, 1
mov ecx, dword [esp + 0x94]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0046ad4d
add esp, 0x88
ret 0xc