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

Disassembly:
sub esp, 0x54
push ebx
mov ebx, ecx
mov eax, dword [ebx + 0x228]
test eax, eax
jne 0x43f2b1
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x6c]
push eax
mov eax, dword [esp + 0x6c]
push ecx
mov ecx, dword [esp + 0x6c]
push edx
mov edx, dword [esp + 0x6c]
push eax
mov eax, dword [esp + 0x6c]
push ecx
push edx
push eax
mov ecx, ebx
call fcn.0044a680
pop ebx
add esp, 0x54
ret 0x1c
push ebp
push esi
push edi
mov ecx, ebx
call fcn.0043c970
mov ebp, dword [esp + 0x78]
mov ecx, ebp
mov esi, eax
call fcn.0043c970
test esi, esi
mov edi, eax
jne 0x43f2dd
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x54
ret 0x1c
test edi, edi
jne 0x43f2f0
pop edi
pop esi
pop ebp
mov eax, 2
pop ebx
add esp, 0x54
ret 0x1c
mov eax, dword [ebx + 0x228]
test eax, eax
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x78], eax
jne 0x43f321
mov ecx, dword [ebx + 0x188]
test ecx, ecx
jne 0x43f31c
xor ecx, ecx
jmp 0x43f327
mov ecx, dword [ebx + 0x78]
jmp 0x43f327
mov ecx, dword [ebx + 0x1c0]
test eax, eax
mov dword [esp + 0x1c], ecx
jne 0x43f342
mov eax, dword [ebx + 0x188]
test eax, eax
jne 0x43f33d
xor eax, eax
jmp 0x43f348
mov eax, dword [ebx + 0x7c]
jmp 0x43f348
mov eax, dword [ebx + 0x1bc]
mov ecx, dword [ebp + 0x228]
test ecx, ecx
mov dword [esp + 0x20], eax
jne 0x43f369
mov eax, dword [ebp + 0x188]
test eax, eax
jne 0x43f364
xor eax, eax
jmp 0x43f36f
mov eax, dword [ebp + 0x78]
jmp 0x43f36f
mov eax, dword [ebp + 0x1c0]
test ecx, ecx
mov dword [esp + 0x24], eax
jne 0x43f38a
mov eax, dword [ebp + 0x188]
test eax, eax
jne 0x43f385
xor eax, eax
jmp 0x43f390
mov eax, dword [ebp + 0x7c]
jmp 0x43f390
mov eax, dword [ebp + 0x1bc]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x80]
lea eax, [esp + 0x14]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x60], ecx
push eax
mov ecx, ebx
mov dword [esp + 0x5c], edx
call fcn.00449330
test eax, eax
jne 0x43f3ea
pop edi
pop esi
pop ebp
mov eax, 3
pop ebx
add esp, 0x54
ret 0x1c
mov ecx, ebx
call fcn.00401350
mov ebx, eax
mov ecx, ebp
mov dword [esp + 0x74], ebx
call fcn.00401350
mov ebp, eax
mov eax, dword [esp + 0x78]
cmp eax, 0x378
mov dword [esp + 0x7c], ebp
ja 0x43f7cd
je 0x43f6b0
sub eax, 0x22b
je 0x43f571
sub eax, 0xa
jne 0x43f91c
mov edx, dword [esp + 0x2c]
mov ecx, ebx
imul ecx, dword [esp + 0x30]
add ecx, esi
lea eax, [ecx + edx*2]
mov dword [esp + 0x6c], eax
mov eax, ebx
cdq
sub eax, edx
lea esi, [ebp + 2]
imul esi, dword [esp + 0x38]
mov ecx, eax
mov eax, ebp
cdq
sub eax, edx
mov edx, dword [esp + 0x40]
add esi, edi
sar ecx, 1
sar eax, 1
test edx, edx
mov dword [esp + 0x68], esi
jle 0x43f91c
add ecx, ecx
add eax, eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x70], edx
test eax, eax
jle 0x43f53b
mov edi, dword [esp + 0x6c]
mov ecx, esi
sub ecx, edi
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x78], eax
lea ebx, [ebx]
cmp word [ecx + edi], 0x7e0
je 0x43f525
movzx eax, word [edi]
mov esi, eax
mov edx, eax
and eax, 0x1f
mov dword [esp + 0x74], eax
mov ax, word [ecx + edi]
movzx ecx, ax
shr edx, 5
mov ebx, ecx
and edx, 0x3f
shr ebx, 5
and ebx, 0x3f
mov ebp, 0x3f
sub ebp, edx
imul ebx, ebp
shr ax, 0xb
shr ebx, 1
shl edx, 5
and ebx, 0xffe0
add ebx, edx
shr esi, 0xb
mov edx, 0x1f
sub edx, esi
imul eax, edx
and eax, 0xffe0
shl esi, 5
add eax, esi
mov esi, dword [esp + 0x68]
shl eax, 6
or ebx, eax
mov eax, dword [esp + 0x74]
and ecx, 0x1f
mov edx, 0x1f
sub edx, eax
imul ecx, edx
shr ecx, 5
add ecx, eax
or ebx, ecx
mov ecx, dword [esp + 0x7c]
mov word [edi], bx
mov eax, dword [esp + 0x78]
add edi, 2
dec eax
mov dword [esp + 0x78], eax
jne 0x43f4a0
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x80]
mov edi, dword [esp + 0x6c]
mov edx, dword [esp + 0x10]
add edi, ecx
mov ecx, dword [esp + 0x70]
add esi, edx
dec ecx
mov dword [esp + 0x6c], edi
mov dword [esp + 0x68], esi
mov dword [esp + 0x70], ecx
jne 0x43f482
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x54
ret 0x1c
mov eax, dword [esp + 0x2c]
mov edx, ebx
imul edx, dword [esp + 0x30]
add edx, esi
lea ecx, [edx + eax*2]
mov dword [esp + 0x6c], ecx
mov eax, ebx
cdq
sub eax, edx
lea ecx, [ebp + 2]
imul ecx, dword [esp + 0x38]
mov esi, eax
mov eax, ebp
cdq
sub eax, edx
mov edx, dword [esp + 0x40]
add ecx, edi
sar esi, 1
sar eax, 1
test edx, edx
mov dword [esp + 0x68], ecx
jle 0x43f91c
add esi, esi
add eax, eax
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x7c], esi
mov dword [esp + 0x70], edx
test eax, eax
jle 0x43f67a
mov esi, dword [esp + 0x6c]
mov ebx, ecx
sub ebx, esi
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], eax
mov edi, edi
cmp word [ebx + esi], 0x3e0
je 0x43f664
movzx eax, word [esi]
mov ecx, eax
mov edx, eax
and eax, 0x1f
mov edi, eax
xor eax, eax
mov ax, word [ebx + esi]
shr ecx, 0xa
and ecx, 0x1f
mov ebp, 0x1f
sub ebp, ecx
shl ecx, 5
shr edx, 5
mov ebx, eax
shr ebx, 0xa
and ebx, 0x1f
imul ebx, ebp
and ebx, 0xffe0
add ebx, ecx
mov ecx, eax
shr ecx, 5
and edx, 0x1f
and ecx, 0x1f
mov ebp, 0x1f
sub ebp, edx
imul ecx, ebp
shl edx, 5
and ecx, 0xffe0
add ecx, edx
and eax, 0x1f
mov edx, 0x1f
sub edx, edi
imul eax, edx
shl ebx, 5
shr eax, 5
or ebx, ecx
mov ecx, dword [esp + 0x68]
add eax, edi
or ebx, eax
mov word [esi], bx
mov ebx, dword [esp + 0x74]
mov eax, dword [esp + 0x78]
add esi, 2
dec eax
mov dword [esp + 0x78], eax
jne 0x43f5e0
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x7c]
mov edi, dword [esp + 0x6c]
mov esi, dword [esp + 0x80]
add edi, edx
mov edx, dword [esp + 0x70]
add ecx, esi
dec edx
mov dword [esp + 0x6c], edi
mov dword [esp + 0x68], ecx
mov dword [esp + 0x70], edx
jne 0x43f5c6
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x54
ret 0x1c
mov eax, dword [esp + 0x2c]
lea edx, [esi + eax*2]
add edx, eax
lea eax, [ebp + 3]
imul eax, dword [esp + 0x38]
mov ecx, ebx
imul ecx, dword [esp + 0x30]
add edi, eax
mov eax, dword [esp + 0x3c]
lea esi, [edx + ecx]
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x40]
test eax, eax
mov dword [esp + 0x78], ecx
jle 0x43f91c
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x78]
xor ecx, ecx
test eax, eax
jle 0x43f7ae
mov edx, edi
sub edx, esi
mov dword [esp + 0x68], edx
mov edi, edi
lea ebp, [ecx + esi]
mov al, byte [edx + ebp]
test al, al
mov byte [esp + 0x6c], al
jne 0x43f71d
cmp byte [edi + ecx + 1], 0xff
jne 0x43f71d
mov al, byte [edi + ecx + 2]
test al, al
je 0x43f79b
mov bl, byte [ebp]
movzx edx, bl
mov eax, 0xff
sub eax, edx
movzx edx, byte [esp + 0x6c]
imul eax, edx
cdq
and edx, 0xff
add eax, edx
sar eax, 8
add al, bl
mov bl, byte [ecx + esi + 1]
mov byte [ebp], al
movzx eax, byte [edi + ecx + 1]
movzx edx, bl
mov ebp, 0xff
sub ebp, edx
imul eax, ebp
cdq
and edx, 0xff
add eax, edx
sar eax, 8
add al, bl
mov bl, byte [ecx + esi + 2]
mov byte [ecx + esi + 1], al
movzx eax, byte [edi + ecx + 2]
movzx edx, bl
mov ebp, 0xff
sub ebp, edx
imul eax, ebp
cdq
and edx, 0xff
add eax, edx
mov edx, dword [esp + 0x68]
sar eax, 8
add al, bl
mov ebx, dword [esp + 0x74]
mov byte [ecx + esi + 2], al
mov eax, dword [esp + 0x78]
add ecx, 3
cmp ecx, eax
jl 0x43f700
mov ebp, dword [esp + 0x7c]
mov eax, dword [esp + 0x70]
add esi, ebx
add edi, ebp
dec eax
mov dword [esp + 0x70], eax
jne 0x43f6e8
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x54
ret 0x1c
cmp eax, 0x22b8
jne 0x43f91c
mov ecx, dword [esp + 0x2c]
mov eax, ebx
imul eax, dword [esp + 0x30]
lea edx, [ebp + 4]
imul edx, dword [esp + 0x38]
add eax, esi
lea esi, [eax + ecx*4]
mov eax, dword [esp + 0x3c]
lea ecx, [eax*4]
mov eax, dword [esp + 0x40]
add edi, edx
test eax, eax
mov dword [esp + 0x78], ecx
jle 0x43f91c
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x78]
xor ecx, ecx
test eax, eax
jle 0x43f909
mov edx, edi
sub edx, esi
mov dword [esp + 0x68], edx
lea ebp, [ecx + esi]
mov al, byte [edx + ebp]
test al, al
mov byte [esp + 0x6c], al
jne 0x43f850
mov al, byte [edi + ecx + 1]
test al, al
jne 0x43f850
cmp byte [edi + ecx + 2], 0xff
jne 0x43f850
mov al, byte [edi + ecx + 3]
test al, al
je 0x43f8f6
mov bl, byte [ebp]
movzx edx, bl
mov eax, 0xff
sub eax, edx
movzx edx, byte [esp + 0x6c]
imul eax, edx
cdq
and edx, 0xff
add eax, edx
sar eax, 8
add al, bl
mov bl, byte [ecx + esi + 1]
mov byte [ebp], al
movzx eax, byte [edi + ecx + 1]
movzx edx, bl
mov ebp, 0xff
sub ebp, edx
imul eax, ebp
cdq
and edx, 0xff
add eax, edx
sar eax, 8
add al, bl
mov bl, byte [ecx + esi + 2]
mov byte [ecx + esi + 1], al
movzx eax, byte [edi + ecx + 2]
movzx edx, bl
mov ebp, 0xff
sub ebp, edx
imul eax, ebp
cdq
and edx, 0xff
add eax, edx
sar eax, 8
add al, bl
mov bl, byte [ecx + esi + 3]
mov byte [ecx + esi + 2], al
movzx eax, byte [edi + ecx + 3]
movzx edx, bl
mov ebp, 0xff
sub ebp, edx
imul eax, ebp
cdq
and edx, 0xff
add eax, edx
mov edx, dword [esp + 0x68]
sar eax, 8
add al, bl
mov ebx, dword [esp + 0x74]
mov byte [ecx + esi + 3], al
mov eax, dword [esp + 0x78]
add ecx, 4
cmp ecx, eax
jl 0x43f827
mov ebp, dword [esp + 0x7c]
mov eax, dword [esp + 0x70]
add esi, ebx
add edi, ebp
dec eax
mov dword [esp + 0x70], eax
jne 0x43f811
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x54
ret 0x1c