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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x98
mov eax, dword [0x534090]
xor eax, esp
mov dword [esp + 0x94], eax
cmp byte [ebp + 0x18], 2
xorps xmm0, xmm0
movsd xmm1, qword [ebp + 8]
push esi
sete al
comisd xmm0, xmm1
push edi
mov edi, dword [ebp + 0x24]
mov dword [esp + 0x6c], edi
mov byte [esp + 0xb], al
jb 0x43c581
mov esi, dword [ebp + 0x10]
test esi, esi
jle 0x43c54c
test al, al
je 0x43c54c
cmp esi, dword [edi + 0xc]
jbe 0x43c523
mov eax, dword [edi]
mov ecx, edi
push esi
call dword [eax]
push esi
push 0x30
push dword [edi + 4]
mov dword [edi + 8], esi
call fcn.004cd810
add esp, 0xc
neg esi
mov eax, esi
pop edi
pop esi
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.004cb63e
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 8]
lea edx, [ecx + 1]
cmp edx, dword [edi + 0xc]
jbe 0x43c561
mov eax, dword [edi]
mov ecx, edi
push edx
call dword [eax]
mov ecx, dword [edi + 8]
mov eax, dword [edi + 4]
mov byte [ecx + eax], 0x30
inc dword [edi + 8]
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.004cb63e
mov esp, ebp
pop ebp
ret
mov al, byte [ebp + 0x20]
mov ecx, dword [ebp + 0x10]
test al, 8
jne 0x43c5b8
movups xmm0, xmmword [ebp + 0x14]
sub esp, 0x10
mov edx, edi
mov eax, esp
movaps xmm2, xmm1
movups xmmword [eax], xmm0
call fcn.0043cf70
add esp, 0x10
pop edi
pop esi
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.004cb63e
mov esp, ebp
pop ebp
ret
mov dword [esp + 0xc], 0
mov dword [esp + 0x44], 0
test ecx, ecx
jns 0x43c952
movlpd qword [esp + 0x10], xmm0
lea ecx, [esp + 0x10]
mov dword [esp + 0x18], 0
test al, 4
je 0x43c6b4
call fcn.0043fd50
mov esi, dword [esp + 0x18]
xor edx, edx
mov dword [esp + 0x4c], edx
mov ecx, 0x10000000
mov dword [esp + 0x48], ecx
cmp esi, 0xffffff4e
jge 0x43c62f
mov eax, 0xffffff4e
xor ecx, ecx
sub eax, esi
add eax, 0x1c
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
mov dword [esp + 0x48], ecx
cmovae edx, ecx
mov dword [esp + 0x4c], edx
mov esi, dword [esp + 0x10]
add ecx, esi
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
adc edx, edi
mov dword [esp + 0x28], eax
sub esp, 0x10
mov dword [esp + 0x30], ecx
mov eax, esp
mov dword [esp + 0x34], edx
lea ecx, [esp + 0x30]
movups xmm0, xmmword [esp + 0x30]
movups xmmword [eax], xmm0
call fcn.0043df40
mov eax, dword [esp + 0x28]
add esp, 0x10
test esi, esi
jne 0x43c680
cmp edi, 0x100000
jne 0x43c680
cmp eax, 0xffffff4e
jle 0x43c680
lea ecx, [esi + 1]
jmp 0x43c682
xor ecx, ecx
movq xmm1, qword [esp + 0x48]
sub eax, dword [esp + 0x28]
movq xmm2, qword [esp + 0x10]
movd xmm0, ecx
psrlq xmm1, xmm0
movd xmm0, eax
psubq xmm2, xmm1
psllq xmm2, xmm0
movq qword [esp + 0x88], xmm2
jmp 0x43c76c
call fcn.0043fd50
mov edx, dword [esp + 0x10]
test al, al
mov edi, dword [esp + 0x14]
mov ecx, edx
mov eax, edi
je 0x43c6e7
shld eax, ecx, 2
shl ecx, 2
add ecx, 0xffffffff
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x18]
adc eax, 0xffffffff
mov dword [esp + 0x24], eax
lea eax, [ecx - 2]
jmp 0x43c702
shld eax, ecx, 1
add ecx, ecx
add ecx, 0xffffffff
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x18]
adc eax, 0xffffffff
mov dword [esp + 0x24], eax
lea eax, [ecx - 1]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x20]
movups xmm1, xmmword [eax]
mov eax, edi
shld eax, edx, 1
movaps xmmword [esp + 0x70], xmm1
add edx, edx
add edx, 1
mov dword [esp + 0x20], edx
adc eax, 0
sub esp, 0x10
mov dword [esp + 0x34], eax
lea eax, [ecx - 1]
mov dword [esp + 0x38], eax
lea ecx, [esp + 0x30]
movups xmm0, xmmword [esp + 0x30]
mov eax, esp
movups xmmword [eax], xmm0
call fcn.0043fde0
psrldq xmm1, 8
add esp, 0x10
movd eax, xmm1
movq xmm1, qword [esp + 0x70]
sub eax, dword [esp + 0x28]
movd xmm0, eax
psllq xmm1, xmm0
movq qword [esp + 0x88], xmm1
mov eax, dword [esp + 0x20]
and edi, 0x100000
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x90], eax
lea eax, [esp + 0x88]
mov dword [esp + 0x94], ecx
movups xmm0, xmmword [eax]
xor eax, eax
or eax, edi
movups xmmword [esp + 0x20], xmm0
movaps xmm0, xmmword [esp + 0x10]
movaps xmmword [esp + 0x10], xmm0
mov esi, dword [esp + 0x18]
jne 0x43c7d8
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
shld ecx, eax, 1
dec esi
add eax, eax
mov dword [esp + 0x64], ecx
mov dword [esp + 0x50], eax
and ecx, 0x100000
xor eax, eax
or eax, ecx
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x50]
je 0x43c7b3
jmp 0x43c7e8
mov eax, dword [esp + 0x14]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x50], eax
lea eax, [esp + 0x44]
add esi, 0xfffffff5
mov edx, 0xffffff84
lea ecx, [esp + 0x88]
push eax
sub edx, esi
call fcn.0043b3f0
mov edi, dword [esp + 0x8c]
add esp, 4
mov eax, dword [esp + 0x90]
add eax, 0x40
add esi, eax
push dword [esp + 0x8c]
push edi
push dword [esp + 0x34]
push dword [esp + 0x34]
call fcn.0043b370
mov ecx, dword [esp + 0x7c]
add eax, 1
push dword [esp + 0x9c]
mov dword [esp + 0x7c], eax
adc edx, 0
mov eax, dword [esp + 0x64]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x78]
shld ecx, eax, 0xb
push edi
shl eax, 0xb
push ecx
push eax
mov dword [esp + 0x68], edx
mov dword [esp + 0x34], 0
call fcn.0043b370
mov ecx, dword [esp + 0x88]
sub ecx, eax
mov dword [esp + 0x98], esi
mov eax, dword [esp + 0x68]
sbb eax, edx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], eax
add esp, 0x10
mov eax, dword [esp + 0x78]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x84], eax
mov eax, esp
push dword [esp + 0x9c]
movups xmm0, xmmword [esp + 0x84]
push edi
push dword [esp + 0x3c]
movups xmmword [eax], xmm0
push dword [esp + 0x3c]
call fcn.0043b370
mov ecx, dword [esp + 0x88]
add esp, 0x10
sub ecx, eax
mov eax, dword [esp + 0x58]
sbb eax, edx
add ecx, 1
lea edx, [esp + 0x20]
adc eax, 0
push eax
push ecx
lea ecx, [esp + 0x24]
call fcn.0043e470
add esp, 0x18
cmp eax, 2
jne 0x43c932
mov eax, dword [esp + 0xc]
lea edx, [esp + 0xc]
mov ecx, dword [esp + 0x14]
dec eax
sub ecx, dword [esp + 0x44]
movsd xmm2, qword [ebp + 8]
add eax, ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0xc], eax
call fcn.0043e6a0
mov eax, dword [esp + 0xc]
pop edi
pop esi
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.004cb63e
mov esp, ebp
pop ebp
ret
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x14]
cmp edi, dword [esi + 0xc]
jbe 0x43c946
mov eax, dword [esi]
mov ecx, esi
push edi
call dword [eax]
mov dword [esi + 8], edi
mov esi, dword [esp + 0xc]
jmp 0x43ca80
cmp ecx, 0x11
jg 0x43c58b
lea ecx, [esp + 0x70]
call fcn.0043fd50
movups xmm0, xmmword [esp + 0x70]
sub esp, 0x10
lea ecx, [esp + 0x80]
mov eax, esp
movups xmmword [eax], xmm0
call fcn.0043df40
mov esi, dword [esp + 0x88]
lea eax, [esp + 0x54]
mov edx, 0xffffff84
lea ecx, [esp + 0x30]
push eax
sub edx, esi
call fcn.0043b3f0
add esp, 0x14
push dword [esp + 0x24]
push dword [esp + 0x24]
push dword [esp + 0x7c]
push dword [esp + 0x7c]
call fcn.0043b370
mov dword [esp + 0x80], eax
lea ecx, [esp + 0x1c]
mov eax, dword [esp + 0x38]
add esi, 0x40
add eax, esi
mov dword [esp + 0x84], edx
mov esi, dword [ebp + 0x10]
lea edx, [esp + 0x30]
mov dword [esp + 0x88], eax
mov eax, dword [edi + 4]
movups xmm0, xmmword [esp + 0x80]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x54]
neg eax
mov dword [esp + 0x34], 0
mov dword [esp + 0x3c], eax
mov al, byte [esp + 0x1b]
mov byte [esp + 0x40], al
mov eax, esp
sub esp, 8
mov dword [esp + 0x40], esi
movups xmmword [eax], xmm0
call fcn.0043ee80
add esp, 0x18
cmp eax, 2
jne 0x43ca4d
movups xmm0, xmmword [ebp + 0x14]
sub esp, 0x10
mov edx, edi
movsd xmm2, qword [ebp + 8]
mov eax, esp
mov ecx, esi
movups xmmword [eax], xmm0
call fcn.0043cf70
add esp, 0x10
pop edi
pop esi
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.004cb63e
mov esp, ebp
pop ebp
ret
cmp byte [esp + 0xb], 0
mov ecx, dword [esp + 0x24]
jne 0x43ca74
test ecx, ecx
jle 0x43ca74
mov eax, dword [edi + 4]
mov esi, dword [esp + 0xc]
dec eax
add eax, ecx
cmp byte [eax], 0x30
jne 0x43ca78
dec ecx
dec eax
inc esi
test ecx, ecx
jg 0x43ca66
jmp 0x43ca78
mov esi, dword [esp + 0xc]
push ecx
mov ecx, edi
call fcn.0043c370
sub esi, dword [esp + 0x44]
mov ecx, dword [esp + 0x9c]
mov eax, esi
pop edi
pop esi
xor ecx, esp
call fcn.004cb63e
mov esp, ebp
pop ebp
ret