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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x78
push esi
push edi
mov edi, dword [0x563448]
mov byte [esp + 0xc], dl
mov dword [esp + 0x18], ecx
mov dword [esp + 0x34], edi
mov eax, dword [edi + 0x3f04]
mov byte [eax + 0xc5], 1
mov esi, dword [edi + 0x3f04]
mov dword [esp + 0x1c], esi
cmp byte [esi + 0xc8], 0
jne 0x446462
mov ecx, dword [esi + 0xfc]
xor edx, edx
mov eax, dword [esi + 0x104]
push dword [eax + ecx*4 - 4]
mov ecx, dword [esp + 0x1c]
call fcn.00408e80
mov dword [esp + 0x18], eax
add esp, 4
mov eax, dword [esp + 0x18]
mov ecx, eax
cmp eax, 0xffffffff
jae 0x445b96
nop
mov dl, byte [ecx]
test dl, dl
je 0x445b96
cmp dl, 0x23
jne 0x445b90
cmp byte [ecx + 1], dl
je 0x445b96
inc ecx
cmp ecx, 0xffffffff
jb 0x445b80
movss xmm1, dword [edi + 0x3c98]
xorps xmm0, xmm0
cmp eax, ecx
jne 0x445baa
xorps xmm2, xmm2
jmp 0x445bf3
movss xmm3, dword [0x557a4c]
movaps xmm2, xmm1
push 0
push ecx
push eax
push ecx
mov ecx, dword [edi + 0x3c94]
lea eax, [esp + 0x48]
mov dword [esp], 0xbf800000
push eax
call fcn.00437510
movss xmm0, dword [esp + 0x38]
addss xmm0, dword [0x5578b8]
movss xmm1, dword [esp + 0x3c]
cvttss2si eax, xmm0
xorps xmm0, xmm0
movd xmm2, eax
cvtdq2ps xmm2, xmm2
mov ecx, dword [ebp + 0xc]
movss dword [esp + 0x44], xmm1
movss dword [esp + 0x40], xmm2
movss xmm3, dword [ecx + 4]
ucomiss xmm3, xmm0
movss dword [esp + 0x30], xmm3
lahf
test ah, 0x44
jp 0x445c1f
movaps xmm3, xmm1
movss dword [esp + 0x30], xmm1
movss xmm1, dword [ecx]
ucomiss xmm1, xmm0
movss dword [esp + 0x2c], xmm1
lahf
test ah, 0x44
jp 0x445c3b
movaps xmm1, xmm2
movss dword [esp + 0x2c], xmm1
movss dword [esp + 0x20], xmm1
lea ecx, [esp + 0x20]
movss xmm1, dword [esi + 0x108]
movss dword [esp + 0x28], xmm1
movss xmm1, dword [esi + 0x10c]
movss dword [esp + 0x6c], xmm1
addss xmm1, dword [esi + 0x140]
movss dword [esp + 0x24], xmm3
movss dword [esp + 0x38], xmm1
xorps xmm1, xmm1
call fcn.00417210
mov ecx, dword [ebp + 8]
mov edx, ecx
movss xmm2, dword [esp + 0x28]
shr edx, 1
and dl, 1
mov dword [esp + 0x10], ecx
mov dword [esp + 0x20], edx
je 0x445ca9
movss xmm7, dword [esi + 0x21c]
movss xmm1, dword [esi + 0x224]
jmp 0x445cb4
movss xmm1, dword [esi + 0x214]
movaps xmm7, xmm2
mov eax, dword [ebp + 0xc]
xorps xmm4, xmm4
movss xmm0, dword [eax]
ucomiss xmm0, xmm4
lahf
test ah, 0x44
jnp 0x445ccf
test ecx, 0x1000000
je 0x445cdf
movss xmm5, dword [esp + 0x40]
subss xmm1, xmm7
maxss xmm5, xmm1
jmp 0x445ce5
movss xmm5, dword [esp + 0x2c]
movss xmm6, dword [esp + 0x38]
addss xmm5, xmm7
movss dword [esp + 0x48], xmm2
movaps xmm0, xmm6
movss dword [esp + 0x4c], xmm6
movss dword [esp + 0x70], xmm7
movss dword [esp + 0x74], xmm6
movss dword [esp + 0x68], xmm5
movss dword [esp + 0x78], xmm5
addss xmm0, dword [esp + 0x30]
movss dword [esp + 0x38], xmm0
movss dword [esp + 0x6c], xmm0
movss dword [esp + 0x7c], xmm0
test ecx, 0x8000000
jne 0x445da8
test dl, dl
jne 0x445d42
movss xmm4, dword [edi + 0x38a0]
movss xmm3, dword [edi + 0x38a4]
movaps xmm0, xmm4
mulss xmm0, dword [0x557878]
cvttss2si eax, xmm0
movaps xmm0, xmm3
mulss xmm0, dword [0x557878]
movd xmm2, eax
cvttss2si eax, xmm0
cvtdq2ps xmm2, xmm2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm4, xmm2
subss xmm3, xmm0
subss xmm7, xmm2
subss xmm6, xmm0
addss xmm4, xmm5
addss xmm3, dword [esp + 0x38]
movss dword [esp + 0x70], xmm7
movss dword [esp + 0x74], xmm6
movss dword [esp + 0x78], xmm4
movss dword [esp + 0x7c], xmm3
movss xmm0, dword [esi + 0x22c]
movss dword [esp + 0x38], xmm0
movss xmm0, dword [esi + 0x234]
movss dword [esp + 0x30], xmm0
test dl, dl
je 0x445de0
mov eax, dword [esi + 0x21c]
mov dword [esi + 0x22c], eax
mov eax, dword [esi + 0x224]
mov dword [esi + 0x234], eax
mov edx, dword [esp + 0x14]
mov eax, ecx
shr eax, 3
lea ecx, [esp + 0x70]
and eax, 0xffffff01
mov dword [esp + 0x2c], eax
movzx eax, al
shl eax, 2
push eax
push 0
call fcn.00417370
mov cl, al
add esp, 8
mov eax, dword [esp + 0x20]
test al, al
je 0x445e2d
movss xmm0, dword [esp + 0x38]
movss dword [esi + 0x22c], xmm0
movss xmm0, dword [esp + 0x30]
movss dword [esi + 0x234], xmm0
test cl, cl
je 0x446462
mov ecx, dword [edi + 0x3f9c]
shr ecx, 2
and ecx, 0xffffff01
cmp byte [esp + 0x2c], 0
mov dword [esp + 0x28], ecx
je 0x445e5c
test cl, cl
jne 0x445e5c
call fcn.004166f0
mov eax, dword [esp + 0x20]
test al, al
je 0x445f38
cmp dword [esi + 0x1ac], 0
je 0x445e77
call fcn.004394a0
jmp 0x445f38
cmp dword [edi + 0x4334], 0
je 0x445f38
mov eax, dword [0x563448]
mov esi, dword [eax + 0x3f04]
mov ecx, dword [eax + 0x4334]
movups xmm0, xmmword [esi + 0x22c]
movups xmmword [ecx + 0x150], xmm0
mov eax, dword [esi + 0x288]
movups xmm0, xmmword [ecx + 0x130]
movss xmm4, dword [ecx + 0x130]
movss xmm3, dword [ecx + 0x134]
movss xmm2, dword [ecx + 0x138]
movss xmm1, dword [ecx + 0x13c]
movups xmmword [esi + 0x22c], xmm0
movss dword [esp + 0x50], xmm4
movss dword [esp + 0x54], xmm3
movss dword [esp + 0x58], xmm2
movss dword [esp + 0x5c], xmm1
movss dword [eax + 0x60], xmm4
movss dword [eax + 0x64], xmm3
movss dword [eax + 0x68], xmm2
movss dword [eax + 0x6c], xmm1
mov eax, dword [esi + 0x288]
movups xmm0, xmmword [esp + 0x50]
mov edx, dword [eax + 0x3c]
mov eax, dword [eax + 0x44]
add edx, edx
movups xmmword [eax + edx*8 - 0x10], xmm0
movzx eax, byte [ecx + 0x1c7]
mov ecx, dword [ecx + 0x174]
push eax
push dword [esi + 0x288]
call fcn.00434440
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
shr ecx, 3
and ecx, 0x20000
mov al, byte [esp + 0xc]
mov edx, ecx
mov byte [esp + 0xe], al
or edx, 0x10
test dword [esp + 0x10], 0x400000
cmove edx, ecx
mov ecx, edx
or ecx, 0x80
test dword [esp + 0x10], 0x800000
cmove ecx, edx
mov edx, ecx
or edx, 0x120
test byte [esp + 0x10], 4
cmove edx, ecx
mov ecx, dword [esp + 0x10]
and ecx, 0x10
mov eax, edx
or eax, 0x1000
mov dword [esp + 0x38], ecx
test ecx, ecx
lea ecx, [esp + 0x70]
cmove eax, edx
mov edx, dword [esp + 0x14]
push eax
lea eax, [esp + 0x13]
push eax
lea eax, [esp + 0x15]
push eax
call fcn.0043b1d0
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov dl, byte [esp + 0xd]
mov dh, al
mov byte [esp + 0xb], dh
mov byte [esp + 0xd], dl
test ecx, 0x200000
je 0x445ffb
cmp dword [edi + 0x4144], 0
je 0x445ffb
mov eax, dword [edi + 0x4148]
cmp eax, dword [esi + 0x168]
jne 0x445ffb
mov eax, dword [esp + 0x14]
cmp dword [edi + 0x4144], eax
jne 0x445ffb
mov dh, 1
mov byte [esp + 0xb], dh
mov byte [esp + 0xc], dh
jmp 0x446013
test dh, dh
jne 0x446013
test dl, dl
je 0x446111
test ecx, 0x4000000
je 0x446111
cmp byte [edi + 0x4163], 0
jne 0x4460f6
cmp dword [edi + 0x4124], esi
jne 0x4460f6
mov eax, dword [esi + 0x160]
mov dword [esp + 0x30], eax
cmp dword [edi + 0x415c], eax
jne 0x4460f6
movss xmm1, dword [esi + 0x118]
movss xmm2, dword [esi + 0x11c]
movss xmm0, dword [esp + 0x70]
mov eax, dword [esi + 0x168]
subss xmm0, xmm1
mov edx, dword [0x563448]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
movss dword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0x74]
subss xmm0, xmm2
mov dword [edx + 0x412c], eax
mov eax, dword [edx + 0x4124]
mov dword [edx + 0x4128], esi
mov esi, dword [esp + 0x30]
mov dword [edx + 0x415c], esi
movss dword [esp + 0x54], xmm0
movss xmm0, dword [esp + 0x78]
subss xmm0, xmm1
mov dword [eax + esi*4 + 0x348], ecx
mov ecx, dword [esp + 0x10]
mov eax, esi
mov esi, dword [esp + 0x1c]
add eax, 0x35
shl eax, 4
add eax, dword [edx + 0x4124]
mov dl, byte [esp + 0xd]
mov dh, byte [esp + 0xb]
movss dword [esp + 0x58], xmm0
movss xmm0, dword [esp + 0x7c]
subss xmm0, xmm2
movss dword [esp + 0x5c], xmm0
movups xmm0, xmmword [esp + 0x50]
movups xmmword [eax], xmm0
mov byte [edi + 0x4162], 1
mov eax, dword [0x563448]
test dh, dh
je 0x446116
or dword [eax + 0x3fbc], 4
mov word [eax + 0x3f50], 0x101
jmp 0x446116
mov eax, dword [0x563448]
cmp dword [esp + 0x38], 0
je 0x446145
mov esi, dword [eax + 0x3fb4]
cmp dword [eax + 0x3f2c], esi
jne 0x446132
mov byte [eax + 0x3f34], 1
cmp dword [eax + 0x3f40], esi
mov esi, dword [esp + 0x1c]
jne 0x446145
mov byte [eax + 0x3f4d], 1
mov ah, byte [esp + 0xc]
cmp ah, byte [esp + 0xe]
je 0x446156
or dword [edi + 0x3fbc], 8
mov al, byte [esp + 0xf]
test al, al
je 0x44616a
test ecx, 0x2000000
je 0x44616a
mov dl, 1
jmp 0x446176
test dl, dl
jne 0x446176
test ah, ah
je 0x4461f3
test al, al
je 0x446188
test dl, dl
je 0x446188
mov dword [esp + 0x30], 0x1a
jmp 0x446196
xor eax, eax
test dl, dl
setne al
add eax, 0x18
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x78]
movss xmm1, dword [0x5578c0]
mov dword [esp + 0x54], edx
mov edx, dword [0x563448]
push 0
push ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x78]
mov edx, dword [edx + 0x3f04]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x58], eax
mov dword [esp], 0
call fcn.00409770
mov ecx, dword [edx + 0x288]
push eax
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0x60]
push eax
call fcn.00433910
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x70]
push 0xa
call fcn.0040a500
add esp, 4
cmp byte [esp + 0x20], 0
je 0x4462d6
cmp dword [esi + 0x1ac], 0
je 0x446223
call fcn.00439550
jmp 0x4462d6
cmp dword [edi + 0x4334], 0
je 0x4462d6
mov eax, dword [0x563448]
mov ecx, dword [eax + 0x4334]
mov edi, dword [eax + 0x3f04]
imul esi, dword [ecx + 0x5c], 0x68
movups xmm0, xmmword [ecx + 0x150]
mov eax, dword [edi + 0x288]
movss xmm4, dword [ecx + 0x150]
movss xmm3, dword [ecx + 0x154]
movss xmm2, dword [ecx + 0x158]
movss xmm1, dword [ecx + 0x15c]
add esi, dword [ecx + 0x10]
movups xmmword [edi + 0x22c], xmm0
movss dword [esp + 0x50], xmm4
movss dword [esp + 0x54], xmm3
movss dword [esp + 0x58], xmm2
movss dword [esp + 0x5c], xmm1
movss dword [eax + 0x60], xmm4
movss dword [eax + 0x64], xmm3
movss dword [eax + 0x68], xmm2
movss dword [eax + 0x6c], xmm1
mov eax, dword [edi + 0x288]
movups xmm0, xmmword [esp + 0x50]
mov edx, dword [eax + 0x3c]
mov eax, dword [eax + 0x44]
add edx, edx
movups xmmword [eax + edx*8 - 0x10], xmm0
movzx eax, byte [esi + 0x57]
mov ecx, dword [ecx + 0x174]
push eax
push dword [edi + 0x288]
call fcn.00434440
mov edx, dword [esp + 0x18]
mov edi, edx
cmp edx, 0xffffffff
jae 0x4462f7
mov cl, byte [edi]
test cl, cl
je 0x4462f7
cmp cl, 0x23
jne 0x4462f1
cmp byte [edi + 1], cl
je 0x4462f7
inc edi
cmp edi, 0xffffffff
jb 0x4462e1
mov eax, edi
sub eax, edx
je 0x446350
mov esi, dword [0x563448]
lea eax, [esp + 0x70]
push eax
mov eax, dword [esp + 0x38]
add eax, 0x38f4
mov ecx, dword [esi + 0x3f04]
push eax
lea eax, [esp + 0x48]
push eax
mov ecx, dword [ecx + 0x288]
lea eax, [esp + 0x74]
push edi
push edx
push eax
lea edx, [esp + 0x60]
call fcn.00409b40
add esp, 0x18
cmp byte [esi + 0x53b8], 0
je 0x446350
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x48]
push edi
call fcn.0041d2b0
add esp, 4
cmp byte [esp + 0xb], 0
je 0x446403
mov eax, dword [esp + 0x1c]
test dword [eax + 8], 0x4000000
je 0x446403
test byte [esp + 0x10], 1
jne 0x446403
mov eax, dword [esp + 0x34]
test byte [eax + 0x3fb8], 0x20
jne 0x446403
mov edi, dword [0x563448]
mov ecx, dword [edi + 0x40cc]
sub ecx, 1
js 0x446403
cmp ecx, dword [edi + 0x40c0]
jge 0x446403
mov eax, dword [edi + 0x40d4]
lea edx, [ecx + ecx*4]
mov esi, dword [edi + 0x40c8]
shl edx, 3
mov eax, dword [edx + eax]
cmp eax, dword [esi + edx]
jne 0x446403
test ecx, ecx
jle 0x4463eb
lea eax, [esi - 0x24]
add eax, edx
mov esi, dword [eax + 0x28]
mov edx, dword [eax]
test esi, esi
je 0x4463eb
test dword [esi + 8], 0x10000000
je 0x4463eb
test edx, edx
je 0x4463eb
test dword [edx + 8], 0x400
jne 0x4463eb
dec ecx
sub eax, 0x28
test ecx, ecx
jg 0x4463c4
mov dl, 1
call fcn.00418590
mov eax, dword [edi + 0x4124]
test eax, eax
je 0x446403
mov byte [eax + 0x16c], 1
cmp byte [esp + 0x2c], 0
je 0x446458
cmp byte [esp + 0x28], 0
jne 0x446458
mov esi, dword [0x563448]
mov edx, dword [esi + 0x3f9c]
dec dword [esi + 0x40a8]
dec word [esi + 0x5300]
mov ecx, dword [esi + 0x40a8]
mov eax, dword [esi + 0x40b0]
shr edx, 2
mov eax, dword [eax + ecx*4 - 4]
mov dword [esi + 0x3f9c], eax
test dl, 1
je 0x446458
test al, 4
jne 0x446458
mov eax, dword [esi + 0x52fc]
mov dword [esi + 0x3854], eax
mov al, byte [esp + 0xb]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
pop edi
xor al, al
pop esi
mov esp, ebp
pop ebp
ret