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

Disassembly:
sub esp, 0x70
mov eax, dword [0x4b000c]
xor eax, esp
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x7c]
push ebx
mov ebx, dword [esp + 0x7c]
push ebp
push esi
mov esi, ecx
mov dword [esp + 0x48], eax
push edi
mov dword [esp + 0x20], esi
mov dword [esp + 0x30], ebx
mov ecx, dword [esi]
cmp byte [ecx + 0x20], 0
je 0x433811
mov edi, dword [esp + 0x84]
movzx eax, byte [ecx + 0x1c]
movzx ebp, byte [edi]
movzx edx, byte [edi + 1]
sub ebp, eax
movzx eax, byte [ecx + 0x1d]
movzx edi, byte [edi + 2]
sub edx, eax
movzx eax, byte [ecx + 0x1e]
mov ecx, edx
sub edi, eax
cmp ebp, edx
mov eax, edi
cmovl ecx, ebp
cmp ecx, edi
cmovl eax, ecx
cmp eax, 0xfffffffc
jl 0x4337f6
cmp ebp, edx
cmovg edx, ebp
cmp edx, edi
cmovg edi, edx
cmp edi, 3
jle 0x433811
mov byte [ebx + 0x20], 0
xor al, al
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.0046ad4d
add esp, 0x70
ret 0xc
mov ecx, dword [esp + 0x84]
movzx edi, byte [ecx + 1]
movzx eax, byte [ecx]
mov edx, edi
movzx ebp, byte [ecx + 2]
cmp byte [ecx + 8], 0
mov ecx, eax
je 0x433840
shl ecx, 4
or ecx, eax
shl edx, 4
mov eax, ebp
or edx, edi
shl eax, 4
or eax, ebp
jmp 0x433868
shl eax, 3
shr ecx, 2
or ecx, eax
shr edx, 2
lea eax, [edi*8]
mov edi, ebp
or edx, eax
shr edi, 2
lea eax, [ebp*8]
or edi, eax
mov dword [esp + 0x2c], edi
mov eax, edi
test ecx, 0xffffff00
mov dword [ebx + 0x18], 0xffffffff
mov edi, 0xff
mov dword [ebx + 0x1c], 0xffffffff
cmovne ecx, edi
mov dword [esp + 0x28], 7
test edx, 0xffffff00
mov byte [esp + 0x27], 0
cmovne edx, edi
test eax, 0xffffff00
cmovne eax, edi
movzx ebx, al
movzx eax, dl
mov edx, 0x4a0560
mov dword [esp + 0x44], eax
movzx eax, cl
mov dword [esp + 0x48], eax
lea eax, [esp + 0x6c]
sub edx, eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x34], edx
jmp 0x4338d4
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x34]
xor edi, edi
nop word [eax + eax]
mov edx, dword [esp + 0x44]
lea ebp, [esp + 0x6c]
add ebp, edi
mov eax, dword [esi + ebp]
add edx, eax
lea ecx, [ebx + eax]
mov ebx, dword [esp + 0x48]
add ebx, eax
test ebx, 0xffffff00
je 0x433905
sar ebx, 0x1f
not ebx
mov byte [esp + 0x24], bl
test edx, 0xffffff00
je 0x433916
sar edx, 0x1f
not edx
mov byte [esp + 0x25], dl
test ecx, 0xffffff00
je 0x433927
sar ecx, 0x1f
not ecx
mov byte [esp + 0x26], cl
mov eax, dword [esp + 0x24]
mov dword [ebp], eax
movzx ecx, cl
movzx eax, dl
add ecx, eax
movzx eax, bl
mov ebx, dword [esp + 0x2c]
add ecx, eax
mov dword [esp + edi + 0x5c], ecx
add edi, 4
cmp edi, 0x10
jb 0x4338e0
mov eax, dword [esp + 0x60]
xorps xmm0, xmm0
mov edi, dword [esp + 0x5c]
mov esi, dword [esp + 0x20]
mov ebp, dword [esp + 0x68]
add ebp, dword [esp + 0x64]
lea edx, [edi + eax]
mov dword [esp + 0x58], ebp
add eax, dword [esp + 0x64]
mov dword [esp + 0x54], eax
mov eax, dword [esi]
mov dword [esp + 0x50], edx
movlpd qword [esp + 0x38], xmm0
mov ecx, dword [eax + 0xc]
mov eax, dword [esi + 0x78]
mov dword [esp + 0x1c], ecx
mov ebx, dword [eax + 0x1c]
lea eax, [ebx + ebx]
cmp eax, edx
jae 0x433bcd
cmp edi, ebx
jbe 0x4339d2
mov ebx, dword [esp + 0x30]
mov edx, dword [esi + 0x78]
mov eax, dword [ebx + 0x18]
sub edi, dword [edx + 0x1c]
mov ebp, dword [ebx + 0x1c]
mov dword [esp + 0x14], eax
mov eax, edi
cdq
mov edi, eax
xor eax, eax
xor edi, edx
sub edi, edx
cmp eax, ebp
ja 0x433ec6
jb 0x4339d2
mov eax, dword [esp + 0x14]
cmp edi, eax
jae 0x433ec9
movzx ebp, byte [esp + 0x6c]
movq qword [esi + 0xe0], xmm0
mov edx, ebp
movzx eax, byte [ecx]
movzx ebx, byte [esp + 0x6d]
sub edx, eax
movzx eax, byte [ecx + 1]
mov esi, ebx
sub esi, eax
movzx edi, byte [esp + 0x6e]
movzx eax, byte [ecx + 2]
mov ecx, edi
sub ecx, eax
imul esi, esi
imul ecx, ecx
imul edx, edx
add esi, edx
mov edx, ebp
add esi, ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x18], esi
mov esi, ebx
movzx eax, byte [ecx + 4]
sub edx, eax
movzx eax, byte [ecx + 5]
sub esi, eax
imul edx, edx
movzx eax, byte [ecx + 6]
mov ecx, edi
sub ecx, eax
imul esi, esi
imul ecx, ecx
mov eax, 0
add esi, edx
mov edx, ebp
add esi, ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x18], esi
mov esi, ebx
adc eax, eax
mov dword [esp + 0x14], eax
movzx eax, byte [ecx + 8]
sub edx, eax
movzx eax, byte [ecx + 9]
sub esi, eax
imul edx, edx
movzx eax, byte [ecx + 0xa]
mov ecx, edi
sub ecx, eax
imul esi, esi
imul ecx, ecx
add esi, edx
mov edx, ebp
add esi, ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x18], esi
mov esi, ebx
adc dword [esp + 0x14], 0
movzx eax, byte [ecx + 0xc]
sub edx, eax
movzx eax, byte [ecx + 0xd]
sub esi, eax
imul edx, edx
movzx eax, byte [ecx + 0xe]
mov ecx, edi
sub ecx, eax
imul esi, esi
imul ecx, ecx
add esi, edx
mov edx, ebp
add esi, ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x18], esi
mov esi, ebx
adc dword [esp + 0x14], 0
movzx eax, byte [ecx + 0x10]
sub edx, eax
movzx eax, byte [ecx + 0x11]
sub esi, eax
movzx eax, byte [ecx + 0x12]
mov ecx, edi
sub ecx, eax
imul esi, esi
imul ecx, ecx
imul edx, edx
add esi, edx
mov edx, ebp
add esi, ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x18], esi
mov esi, ebx
adc dword [esp + 0x14], 0
movzx eax, byte [ecx + 0x14]
sub edx, eax
movzx eax, byte [ecx + 0x15]
sub esi, eax
imul edx, edx
movzx eax, byte [ecx + 0x16]
mov ecx, edi
sub ecx, eax
imul esi, esi
imul ecx, ecx
add esi, edx
mov edx, ebp
add esi, ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x18], esi
mov esi, ebx
adc dword [esp + 0x14], 0
movzx eax, byte [ecx + 0x18]
sub edx, eax
movzx eax, byte [ecx + 0x19]
sub esi, eax
imul edx, edx
movzx eax, byte [ecx + 0x1a]
mov ecx, edi
sub ecx, eax
imul esi, esi
imul ecx, ecx
add esi, edx
add esi, ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x18], esi
adc dword [esp + 0x14], 0
movzx eax, byte [ecx + 0x1c]
sub ebp, eax
movzx eax, byte [ecx + 0x1d]
sub ebx, eax
imul ebp, ebp
movzx eax, byte [ecx + 0x1e]
imul ebx, ebx
sub edi, eax
imul edi, edi
add ebx, ebp
mov ebp, dword [esp + 0x18]
add ebx, edi
add ebp, ebx
mov edi, dword [esp + 0x14]
adc edi, 0
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x30]
mov ecx, dword [ebx + 0x1c]
mov eax, dword [ebx + 0x18]
cmp edi, ecx
ja 0x433ecb
jb 0x433b93
cmp ebp, eax
jae 0x433ecb
mov eax, dword [esp + 0x28]
mov dword [ebx + 4], eax
mov dword [ebx + 0x18], ebp
mov dword [ebx + 0x1c], edi
mov eax, dword [esi + 0xe0]
mov ecx, dword [esi + 0xe4]
mov dword [ebx + 0xc], eax
mov eax, ebp
or eax, edi
mov dword [ebx + 0x10], ecx
mov byte [ebx + 0x20], 1
mov ecx, edi
mov dword [esp + 0x14], ebp
je 0x433ee3
mov eax, ebp
jmp 0x433ecb
mov edx, dword [esi + 0x78]
mov edx, dword [edx]
lea eax, [edx + edx]
cmp eax, ebp
jb 0x433dc5
mov edi, dword [esp + 0x68]
cmp edx, edi
jbe 0x433c16
mov ebx, dword [esp + 0x30]
sub edx, edi
mov eax, dword [ebx + 0x18]
mov ebp, dword [ebx + 0x1c]
mov dword [esp + 0x14], eax
mov eax, edx
cdq
mov edi, eax
xor eax, eax
xor edi, edx
sub edi, edx
cmp eax, ebp
ja 0x433ec6
jb 0x433c16
mov eax, dword [esp + 0x14]
cmp edi, eax
jae 0x433ec9
movzx ebp, byte [esp + 0x78]
movzx ebx, byte [esp + 0x79]
mov edx, ebp
mov dword [esi + 0xe0], 0x3030303
mov dword [esi + 0xe4], 0x3030303
movzx eax, byte [ecx]
sub edx, eax
movzx edi, byte [esp + 0x7a]
movzx eax, byte [ecx + 1]
mov esi, edi
imul edx, edx
mov ecx, ebx
sub ecx, eax
mov eax, dword [esp + 0x1c]
imul ecx, ecx
movzx eax, byte [eax + 2]
sub esi, eax
imul esi, esi
add esi, ecx
mov ecx, ebx
add esi, edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x18], esi
mov esi, ebp
movzx eax, byte [edx + 4]
sub esi, eax
movzx eax, byte [edx + 5]
sub ecx, eax
imul esi, esi
movzx eax, byte [edx + 6]
mov edx, edi
sub edx, eax
imul ecx, ecx
imul edx, edx
mov eax, 0
add edx, ecx
mov ecx, ebx
add edx, esi
mov esi, ebp
add dword [esp + 0x18], edx
mov edx, dword [esp + 0x1c]
adc eax, eax
mov dword [esp + 0x14], eax
movzx eax, byte [edx + 8]
sub esi, eax
movzx eax, byte [edx + 9]
sub ecx, eax
imul esi, esi
movzx eax, byte [edx + 0xa]
mov edx, edi
sub edx, eax
imul ecx, ecx
imul edx, edx
add edx, ecx
mov ecx, ebx
add edx, esi
mov esi, ebp
add dword [esp + 0x18], edx
mov edx, dword [esp + 0x1c]
adc dword [esp + 0x14], 0
movzx eax, byte [edx + 0xc]
sub esi, eax
movzx eax, byte [edx + 0xd]
sub ecx, eax
imul esi, esi
movzx eax, byte [edx + 0xe]
mov edx, edi
sub edx, eax
imul ecx, ecx
imul edx, edx
add edx, ecx
mov ecx, ebx
add edx, esi
mov esi, ebp
add dword [esp + 0x18], edx
mov edx, dword [esp + 0x1c]
adc dword [esp + 0x14], 0
movzx eax, byte [edx + 0x10]
sub esi, eax
movzx eax, byte [edx + 0x11]
sub ecx, eax
movzx eax, byte [edx + 0x12]
mov edx, edi
sub edx, eax
imul ecx, ecx
imul edx, edx
imul esi, esi
add edx, ecx
mov ecx, ebx
add edx, esi
mov esi, ebp
add dword [esp + 0x18], edx
mov edx, dword [esp + 0x1c]
adc dword [esp + 0x14], 0
movzx eax, byte [edx + 0x14]
sub esi, eax
movzx eax, byte [edx + 0x15]
sub ecx, eax
imul esi, esi
movzx eax, byte [edx + 0x16]
mov edx, edi
sub edx, eax
imul ecx, ecx
imul edx, edx
add edx, ecx
mov ecx, ebx
add edx, esi
mov esi, ebp
add dword [esp + 0x18], edx
mov edx, dword [esp + 0x1c]
adc dword [esp + 0x14], 0
movzx eax, byte [edx + 0x18]
sub esi, eax
movzx eax, byte [edx + 0x19]
sub ecx, eax
imul esi, esi
movzx eax, byte [edx + 0x1a]
mov edx, edi
sub edx, eax
imul ecx, ecx
imul edx, edx
add edx, ecx
mov ecx, dword [esp + 0x1c]
add edx, esi
add dword [esp + 0x18], edx
adc dword [esp + 0x14], 0
movzx eax, byte [ecx + 0x1c]
sub ebp, eax
movzx eax, byte [ecx + 0x1d]
sub ebx, eax
imul ebp, ebp
movzx eax, byte [ecx + 0x1e]
sub edi, eax
imul ebx, ebx
imul edi, edi
add edi, ebx
add edi, ebp
mov ebp, dword [esp + 0x18]
add ebp, edi
jmp 0x433b6c
mov edi, dword [esp + 0x3c]
xor eax, eax
mov ebp, dword [esp + 0x38]
xor ebx, ebx
mov dword [esp + 0x14], edi
mov ecx, dword [esi + 0x78]
mov ecx, dword [ecx + ebx*4]
add ecx, ecx
cmp ecx, dword [esp + eax*4 + 0x50]
jb 0x433def
inc eax
cmp eax, 2
ja 0x433e4d
cmp ecx, dword [esp + eax*4 + 0x50]
jae 0x433de3
mov ecx, dword [esi + 0x74]
mov edx, dword [esp + 0x1c]
movzx edi, byte [esp + eax*4 + 0x6c]
mov ecx, dword [ecx + ebx*4]
mov byte [esi + ecx + 0xe0], al
lea esi, [edx + ecx*4]
movzx ecx, byte [esi]
movzx edx, byte [esp + eax*4 + 0x6d]
sub edi, ecx
movzx ecx, byte [esi + 1]
sub edx, ecx
imul edi, edi
movzx ecx, byte [esi + 2]
movzx esi, byte [esp + eax*4 + 0x6e]
sub esi, ecx
imul edx, edx
imul esi, esi
add esi, edx
add esi, edi
mov edi, dword [esp + 0x14]
add ebp, esi
adc edi, 0
inc ebx
mov dword [esp + 0x14], edi
cmp ebx, 8
jae 0x433b73
mov esi, dword [esp + 0x20]
jmp 0x433dd5
cmp ebx, 8
jae 0x433b77
movzx eax, byte [esp + 0x79]
movzx edx, byte [esp + 0x78]
mov dword [esp + 0x14], eax
movzx eax, byte [esp + 0x7a]
mov dword [esp + 0x38], edx
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x74]
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax + ebx*4]
lea ecx, [ecx + eax*4]
mov byte [esi + eax + 0xe0], 3
movzx eax, byte [ecx]
mov esi, edx
mov edx, dword [esp + 0x14]
sub esi, eax
movzx eax, byte [ecx + 1]
sub edx, eax
imul esi, esi
movzx eax, byte [ecx + 2]
mov ecx, dword [esp + 0x18]
sub ecx, eax
imul edx, edx
imul ecx, ecx
add ecx, edx
mov edx, dword [esp + 0x38]
add ecx, esi
mov esi, dword [esp + 0x20]
add ebp, ecx
adc edi, 0
inc ebx
cmp ebx, 8
jb 0x433e71
jmp 0x433b77
mov eax, dword [ebx + 0x18]
mov ecx, ebp
dec dword [esp + 0x28]
mov ebp, eax
sub dword [esp + 0x34], 0x10
mov edi, ecx
cmp dword [esp + 0x28], 0
jge 0x4338d0
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x4c]
mov ecx, dword [ecx]
mov dword [ebx], ecx
mov eax, dword [esi]
mov al, byte [eax + 0x10]
mov byte [ebx + 8], al
xor al, al
test edx, edx
je 0x433f68
cmp edi, dword [edx + 0x1c]
ja 0x433f68
jb 0x433f0c
cmp ebp, dword [edx + 0x18]
jae 0x433f68
mov dword [edx], ecx
mov eax, dword [ebx + 4]
mov dword [edx + 4], eax
movzx eax, byte [ebx + 8]
mov byte [edx + 8], al
movzx eax, byte [ebx + 0xc]
mov byte [edx + 0xc], al
movzx eax, byte [ebx + 0xd]
mov byte [edx + 0xd], al
movzx eax, byte [ebx + 0xe]
mov byte [edx + 0xe], al
movzx eax, byte [ebx + 0xf]
mov byte [edx + 0xf], al
movzx eax, byte [ebx + 0x10]
mov byte [edx + 0x10], al
movzx eax, byte [ebx + 0x11]
mov byte [edx + 0x11], al
movzx eax, byte [ebx + 0x12]
mov byte [edx + 0x12], al
movzx eax, byte [ebx + 0x13]
mov byte [edx + 0x13], al
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x1c]
mov dword [edx + 0x18], eax
mov dword [edx + 0x1c], ecx
movzx eax, byte [ebx + 0x20]
mov byte [edx + 0x20], al
mov al, 1
mov ecx, dword [esp + 0x7c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0046ad4d
add esp, 0x70
ret 0xc