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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x1a8
movaps xmmword [rsp + 0x130], xmm6
movaps xmmword [rsp + 0x140], xmm7
movaps xmmword [rsp + 0x150], xmm8
movaps xmmword [rsp + 0x160], xmm9
movaps xmmword [rsp + 0x170], xmm10
movaps xmmword [rsp + 0x180], xmm11
movaps xmmword [rsp + 0x190], xmm12
mov ecx, dword [rdx + 0xec]
movzx ebp, byte [rdx + 0x130]
mov r12, qword [r8 + 8]
sub r12, qword [r8]
mov r15, r9
mov dword [rsp + 0x34], ecx
movabs r9, 0x8e38e38e38e38e39
mov esi, dword [rdx + 0x134]
mov byte [rsp + 0x4b], bpl
mov rcx, qword [r15]
mov rbp, qword [r15 + 8]
mov qword [rsp + 0x1f8], rdx
sar r12, 3
mov qword [rsp + 0x200], r8
movss xmm11, dword [rdx + 0x274]
imul r12, r9
mov dword [rsp + 0x44], esi
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x68], 0
sub rbp, rcx
mov qword [rsp + 0x70], 0
sar rbp, 3
imul rbp, r9
test rbp, rbp
je 0x415c72
mov r10d, dword [rsp + 0x218]
movaps xmm12, xmm11
xor ebx, ebx
xor edi, edi
movss xmm7, dword [0x006d71a4]
mov r8, rbp
mov qword [rsp + 0x28], r9
movss xmm10, dword [0x006d71b0]
andps xmm12, xmm10
sub r10d, 3
and r10d, 0xfffffffd
mov dword [rsp + 0x4c], r10d
lea r13, [rdi + rdi*8]
xor eax, eax
xor edx, edx
lea rsi, [r13*8]
lea r11, [rcx + rsi]
movss xmm6, dword [r11]
movss xmm8, dword [r11 + 4]
cmp eax, ebx
je 0x4156b2
cmp rdx, r8
jae 0x416270
lea r14, [rdx + rdx*8]
lea rdx, [rcx + r14*8]
movss xmm0, dword [rdx]
movss xmm2, dword [rdx + 4]
movaps xmm1, xmm0
subss xmm1, xmm7
ucomiss xmm6, xmm1
jb 0x4156b2
addss xmm0, xmm7
ucomiss xmm0, xmm6
jb 0x4156b2
movaps xmm3, xmm2
subss xmm3, xmm7
ucomiss xmm8, xmm3
jb 0x4156b2
addss xmm2, xmm7
ucomiss xmm2, xmm8
jae 0x415c1a
lea edx, [rax + 1]
cmp rdx, rbp
mov rax, rdx
jb 0x415664
mov byte [rsp + 0x43], 1
mov ecx, dword [rsp + 0x218]
lea r14d, [rcx - 4]
cmp ecx, 7
sete byte [rsp + 0x20]
cmp r14d, 1
movzx r8d, byte [rsp + 0x20]
jbe 0x4156eb
test r8b, r8b
pxor xmm9, xmm9
je 0x415719
cmp dword [rsp + 0x34], 4
je 0x415bd5
mov r9d, dword [rsp + 0x34]
sub r9d, 2
cmp r9d, 1
jbe 0x415a60
cmp dword [rsp + 0x34], 1
pxor xmm9, xmm9
je 0x415be0
mov rax, qword [rsp + 0x200]
test r12, r12
mov dword [rsp + 0x5c], 0
mov rcx, qword [rax]
mov r11, qword [rax + 8]
je 0x415830
mov r8, r11
sub r8, rcx
sar r8, 3
imul r8, qword [rsp + 0x28]
test r8, r8
mov qword [rsp + 0x38], r8
je 0x41635f
xor r9d, r9d
xor r10d, r10d
xor eax, eax
movss xmm2, dword [0x006d71a0]
xor edx, edx
jmp 0x415779
cmp rdx, r8
jae 0x4162af
lea rdx, [rdx + rdx*8]
lea rdx, [rcx + rdx*8]
movss xmm5, dword [rdx]
movss xmm0, dword [rdx + 4]
subss xmm5, xmm6
subss xmm0, xmm8
mulss xmm5, xmm5
mulss xmm0, xmm0
addss xmm0, xmm5
ucomiss xmm2, xmm0
jbe 0x4157b0
mov r10d, eax
movaps xmm2, xmm0
mov r9d, 1
lea edx, [rax + 1]
cmp rdx, r12
mov rax, rdx
jb 0x415770
test r9b, r9b
jne 0x416381
cmp r11, rcx
je 0x415830
mov edx, dword [rsp + 0x5c]
cmp rdx, r12
mov r10, rdx
jae 0x415830
cmp rdx, r8
jae 0x416353
lea r8, [rdx + rdx*8]
pxor xmm1, xmm1
cvtsi2ss xmm1, dword [rsp + 0x44]
lea rdx, [rcx + r8*8]
movss xmm3, dword [rdx]
movaps xmm4, xmm3
subss xmm4, xmm1
ucomiss xmm6, xmm4
jb 0x415830
addss xmm3, xmm1
ucomiss xmm3, xmm6
jb 0x415830
movss xmm5, dword [rdx + 4]
movaps xmm0, xmm5
subss xmm0, xmm1
ucomiss xmm8, xmm0
jb 0x415830
addss xmm1, xmm5
ucomiss xmm1, xmm8
jae 0x415e9e
nop dword [rax]
mov r10, qword [r15]
mov byte [rsp + 0xc8], 0
mov r8, qword [r15 + 8]
mov byte [rsp + 0x114], 0
sub r8, r10
sar r8, 3
imul r8, qword [rsp + 0x28]
cmp r8, rdi
jbe 0x416372
mov rax, qword [r10 + r13*8]
cmp r14d, 1
mov qword [rsp + 0xcc], rax
mov r11, qword [r10 + rsi + 8]
mov qword [rsp + 0xd4], r11
mov r8, qword [r10 + rsi + 0x10]
mov qword [rsp + 0xdc], r8
mov r9, qword [r10 + rsi + 0x18]
mov qword [rsp + 0xe4], r9
mov r13, qword [r10 + rsi + 0x20]
mov qword [rsp + 0xec], r13
mov rdx, qword [r10 + rsi + 0x28]
mov qword [rsp + 0xf4], rdx
mov rcx, qword [r10 + rsi + 0x30]
mov qword [rsp + 0xfc], rcx
mov rdi, qword [r10 + rsi + 0x38]
mov qword [rsp + 0x104], rdi
mov rsi, qword [r10 + rsi + 0x40]
mov byte [rsp + 0x114], 1
mov qword [rsp + 0x10c], rsi
jbe 0x415930
cmp dword [rsp + 0x218], 6
je 0x415ab6
lea edi, [rbx + 1]
cmp rdi, rbp
mov rbx, rdi
jae 0x4159e8
mov rcx, qword [r15]
mov r14, qword [r15 + 8]
sub r14, rcx
sar r14, 3
imul r14, qword [rsp + 0x28]
cmp rdi, r14
mov r8, r14
jb 0x415645
lea rcx, [0x006d7150]
mov rdx, rdi
call fcn.005ab768
nop dword [rax + rax]
cmp byte [rsp + 0x4b], 0
je 0x4158ed
mov r14, qword [rsp + 0x210]
movss dword [rsp + 0x120], xmm9
mov rdx, qword [r14 + 8]
cmp rdx, qword [r14 + 0x10]
je 0x415c58
mov byte [rdx + 0x48], 0
cmp byte [rsp + 0x114], 0
jne 0x415b57
mov byte [rdx + 0x94], 0
movss xmm9, dword [rsp + 0x118]
lea edi, [rbx + 1]
mov rbx, rdi
movss dword [rdx + 0x98], xmm9
movss xmm2, dword [rsp + 0x11c]
movss dword [rdx + 0x9c], xmm2
movss xmm8, dword [rsp + 0x120]
movss dword [rdx + 0xa0], xmm8
movss xmm3, dword [rsp + 0x124]
movss dword [rdx + 0xa4], xmm3
movss xmm4, dword [rsp + 0x128]
movss dword [rdx + 0xa8], xmm4
mov rdx, qword [rsp + 0x210]
add qword [rdx + 8], 0xac
cmp rdi, rbp
jb 0x4158fc
cmp dword [rsp + 0x218], 6
je 0x415c80
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x415a06
call fcn.005ab730
nop
movaps xmm6, xmmword [rsp + 0x130]
movaps xmm7, xmmword [rsp + 0x140]
movaps xmm8, xmmword [rsp + 0x150]
movaps xmm9, xmmword [rsp + 0x160]
movaps xmm10, xmmword [rsp + 0x170]
movaps xmm11, xmmword [rsp + 0x180]
movaps xmm12, xmmword [rsp + 0x190]
add rsp, 0x1a8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movss xmm4, dword [0x006d719c]
movss xmm0, dword [r11 + 0x10]
cmp dword [rsp + 0x34], 2
mulss xmm0, xmm4
mulss xmm4, dword [r11 + 0x14]
subss xmm0, xmm4
je 0x415c3e
mov r8, qword [rsp + 0x248]
mov rdx, qword [rsp + 0x240]
call fcn.00416d70
mov r11d, eax
shr rax, 0x20
test r11b, r11b
movd xmm9, eax
jne 0x415719
jmp 0x4158ed
mov r10, qword [rsp + 0x210]
mov rdx, qword [r10 + 8]
cmp rdx, qword [r10 + 0x10]
je 0x415c24
cmp byte [rsp + 0xc8], 0
je 0x415957
mov rax, qword [rsp + 0x80]
mov qword [rdx], rax
mov r11, qword [rsp + 0x88]
mov qword [rdx + 8], r11
mov r8, qword [rsp + 0x90]
mov qword [rdx + 0x10], r8
mov r9, qword [rsp + 0x98]
mov qword [rdx + 0x18], r9
mov r13, qword [rsp + 0xa0]
mov qword [rdx + 0x20], r13
mov rcx, qword [rsp + 0xa8]
mov qword [rdx + 0x28], rcx
mov rdi, qword [rsp + 0xb0]
mov qword [rdx + 0x30], rdi
mov rsi, qword [rsp + 0xb8]
mov qword [rdx + 0x38], rsi
mov r14, qword [rsp + 0xc0]
mov byte [rdx + 0x48], 1
cmp byte [rsp + 0x114], 0
mov qword [rdx + 0x40], r14
je 0x415969
mov r10, qword [rsp + 0xcc]
mov qword [rdx + 0x4c], r10
mov rax, qword [rsp + 0xd4]
mov qword [rdx + 0x54], rax
mov r11, qword [rsp + 0xdc]
mov qword [rdx + 0x5c], r11
mov r8, qword [rsp + 0xe4]
mov qword [rdx + 0x64], r8
mov r9, qword [rsp + 0xec]
mov qword [rdx + 0x6c], r9
mov r13, qword [rsp + 0xf4]
mov qword [rdx + 0x74], r13
mov rcx, qword [rsp + 0xfc]
mov qword [rdx + 0x7c], rcx
mov rdi, qword [rsp + 0x104]
mov qword [rdx + 0x84], rdi
mov rsi, qword [rsp + 0x10c]
mov byte [rdx + 0x94], 1
mov qword [rdx + 0x8c], rsi
jmp 0x415970
movss xmm9, dword [r11 + 0x3c]
jmp 0x415719
mov r8, qword [rsp + 0x258]
mov rdx, qword [rsp + 0x250]
movss xmm0, dword [r11 + 8]
divss xmm0, dword [r11 + 0xc]
call fcn.00416d70
mov rdx, rax
shr rdx, 0x20
test al, al
movd xmm9, edx
jne 0x415719
jmp 0x4158ed
mov byte [rsp + 0x43], 0
jmp 0x4156c2
mov rcx, qword [rsp + 0x210]
lea r8, [rsp + 0x80]
call fcn.00692dc0
jmp 0x4158ed
mov r8, qword [rsp + 0x238]
mov rdx, qword [rsp + 0x230]
call fcn.00416d70
jmp 0x415a9c
mov rcx, qword [rsp + 0x210]
lea r8, [rsp + 0x80]
call fcn.00692dc0
jmp 0x4158df
cmp dword [rsp + 0x218], 6
jne 0x415a06
test r12, r12
mov dword [rsp + 0x5c], 0
je 0x4159f6
lea rbp, [rsp + 0x5c]
movabs r15, 0x8e38e38e38e38e39
lea r13, [rsp + 0x80]
jmp 0x415cc7
mov r11d, dword [rsp + 0x5c]
add r11d, 1
cmp r11, r12
mov dword [rsp + 0x5c], r11d
jae 0x4159f6
mov rdx, qword [rsp + 0x68]
xor r9d, r9d
mov r8, rbp
mov rcx, qword [rsp + 0x60]
call fcn.006cf2c0
cmp qword [rsp + 0x68], rax
jne 0x415cb0
mov r10, qword [rsp + 0x200]
mov byte [rsp + 0xc8], 0
mov r11, qword [rsp + 0x200]
mov byte [rsp + 0x114], 0
mov edx, dword [rsp + 0x5c]
mov rax, qword [r10]
mov r8, qword [r11 + 8]
mov qword [rsp + 0x20], r8
sub r8, rax
sar r8, 3
imul r8, r15
cmp rdx, r8
jae 0x416366
lea r9, [rdx + rdx*8]
lea rsi, [rax + r9*8]
mov r9, qword [rsp + 0x210]
mov rdi, qword [rsi]
mov qword [rsp + 0x80], rdi
mov rdx, qword [rsi + 8]
mov qword [rsp + 0x88], rdx
mov rbx, qword [rsi + 0x10]
mov rdx, qword [r9 + 8]
cmp rdx, qword [r9 + 0x10]
mov qword [rsp + 0x90], rbx
mov rcx, qword [rsi + 0x18]
mov qword [rsp + 0x98], rcx
mov r14, qword [rsi + 0x20]
mov qword [rsp + 0xa0], r14
mov r10, qword [rsi + 0x28]
mov qword [rsp + 0xa8], r10
mov rax, qword [rsi + 0x30]
mov qword [rsp + 0xb0], rax
mov r11, qword [rsi + 0x38]
mov qword [rsp + 0xb8], r11
mov r8, qword [rsi + 0x40]
mov byte [rsp + 0xc8], 1
mov qword [rsp + 0xc0], r8
je 0x4161a4
mov qword [rdx], rdi
mov rsi, qword [rsp + 0x88]
mov qword [rdx + 8], rsi
mov rdi, qword [rsp + 0x90]
mov qword [rdx + 0x10], rdi
mov rbx, qword [rsp + 0x98]
mov qword [rdx + 0x18], rbx
mov rcx, qword [rsp + 0xa0]
mov qword [rdx + 0x20], rcx
mov r14, qword [rsp + 0xa8]
mov qword [rdx + 0x28], r14
mov r10, qword [rsp + 0xb0]
mov qword [rdx + 0x30], r10
mov rax, qword [rsp + 0xb8]
mov qword [rdx + 0x38], rax
mov r11, qword [rsp + 0xc0]
mov byte [rdx + 0x48], 1
cmp byte [rsp + 0x114], 0
mov qword [rdx + 0x40], r11
jne 0x4161b9
mov byte [rdx + 0x94], 0
movss xmm5, dword [rsp + 0x118]
movss xmm1, dword [rsp + 0x11c]
movss xmm6, dword [rsp + 0x120]
movss dword [rdx + 0x98], xmm5
movss xmm0, dword [rsp + 0x124]
movss dword [rdx + 0x9c], xmm1
movss xmm7, dword [rsp + 0x128]
movss dword [rdx + 0xa0], xmm6
movss dword [rdx + 0xa4], xmm0
movss dword [rdx + 0xa8], xmm7
mov rdx, qword [rsp + 0x210]
add qword [rdx + 8], 0xac
jmp 0x415cb0
mov rdx, qword [rsp + 0x68]
cmp rdx, qword [rsp + 0x70]
je 0x4162c0
mov dword [rdx], r10d
add rdx, 4
mov qword [rsp + 0x68], rdx
mov edx, dword [rsp + 0x5c]
mov byte [rsp + 0xc8], 0
cmp rdx, qword [rsp + 0x38]
mov byte [rsp + 0x114], 0
jae 0x416310
lea r11, [rdx + rdx*8]
lea r13, [rcx + r11*8]
mov r14, qword [r13]
mov qword [rsp + 0x80], r14
mov r10, qword [r13 + 8]
mov qword [rsp + 0x88], r10
mov r8, qword [r13 + 0x10]
mov r10, qword [r15]
mov qword [rsp + 0x90], r8
mov rdx, qword [r13 + 0x18]
mov r8, qword [r15 + 8]
mov qword [rsp + 0x98], rdx
mov r9, qword [r13 + 0x20]
sub r8, r10
sar r8, 3
imul r8, qword [rsp + 0x28]
mov qword [rsp + 0xa0], r9
mov rcx, qword [r13 + 0x28]
mov qword [rsp + 0xa8], rcx
mov rax, qword [r13 + 0x30]
cmp r8, rdi
mov qword [rsp + 0xb0], rax
mov r11, qword [r13 + 0x38]
mov qword [rsp + 0xb8], r11
mov r14, qword [r13 + 0x40]
mov byte [rsp + 0xc8], 1
mov qword [rsp + 0xc0], r14
jbe 0x416344
add r10, rsi
mov r8, qword [r10]
mov qword [rsp + 0xcc], r8
mov rdx, qword [r10 + 8]
mov qword [rsp + 0xd4], rdx
mov r9, qword [r10 + 0x10]
mov qword [rsp + 0xdc], r9
mov rcx, qword [r10 + 0x18]
mov r9d, dword [rsp + 0x4c]
mov qword [rsp + 0xe4], rcx
mov rax, qword [r10 + 0x20]
test r9d, r9d
mov qword [rsp + 0xec], rax
mov r11, qword [r10 + 0x28]
mov qword [rsp + 0xf4], r11
mov r14, qword [r10 + 0x30]
mov qword [rsp + 0xfc], r14
mov r8, qword [r10 + 0x38]
mov qword [rsp + 0x104], r8
mov rdx, qword [r10 + 0x40]
mov byte [rsp + 0x114], 1
mov qword [rsp + 0x10c], rdx
jne 0x416237
cmp byte [rsp + 0x43], 0
je 0x416170
movaps xmm2, xmm11
pxor xmm6, xmm6
movss xmm8, dword [0x006d71c0]
addss xmm2, xmm6
movss xmm3, dword [0x006d71c4]
andps xmm2, xmm10
mulss xmm2, xmm8
mulss xmm2, xmm3
ucomiss xmm2, xmm12
jae 0x416170
movss xmm4, dword [0x006d71c8]
ucomiss xmm4, xmm12
ja 0x416170
movss xmm5, dword [r10 + 0x30]
movaps xmm1, xmm5
addss xmm5, xmm6
andps xmm1, xmm10
andps xmm5, xmm10
mulss xmm5, xmm8
mulss xmm5, xmm3
ucomiss xmm5, xmm1
jae 0x416170
ucomiss xmm4, xmm1
ja 0x416170
mov rcx, qword [rsp + 0x1f8]
movss xmm1, dword [r13 + 0x30]
call fcn.00426320
mov r13, qword [r15]
movaps xmm6, xmm0
mov r8, qword [r15 + 8]
sub r8, r13
sar r8, 3
imul r8, qword [rsp + 0x28]
cmp r8, rdi
jbe 0x416335
mov rcx, qword [rsp + 0x1f8]
movss xmm1, dword [r13 + rsi + 0x30]
call fcn.00426340
mulss xmm0, xmm11
mov r8, qword [rsp + 0x228]
mov rdx, qword [rsp + 0x220]
subss xmm6, xmm0
divss xmm6, xmm0
movaps xmm0, xmm6
call fcn.00416d70
movss dword [rsp + 0x11c], xmm6
mov rdx, rax
shr rdx, 0x20
cmp dword [rsp + 0x218], 3
mov dword [rsp + 0x118], edx
je 0x416328
movss dword [rsp + 0x120], xmm9
test al, al
je 0x416194
mov rsi, qword [rsp + 0x210]
mov rdx, qword [rsi + 8]
cmp rdx, qword [rsi + 0x10]
je 0x415c24
cmp byte [rsp + 0xc8], 0
jne 0x4162f5
mov byte [rdx + 0x48], 0
cmp byte [rsp + 0x114], 0
je 0x415969
lea rdi, [rdx + 0x4c]
mov ecx, reloc.WS2_32.dll_select
lea rsi, [rsp + 0xcc]
rep movsd dword [rdi], dword [rsi]
mov byte [rdx + 0x94], 1
jmp 0x415970
cmp dword [rsp + 0x218], 5
mov qword [rsp + 0x118], 0
jne 0x4158ed
movss dword [rsp + 0x120], xmm9
mov dword [rsp + 0x118], 0xc47a0000
jmp 0x416116
mov rcx, qword [rsp + 0x210]
mov r8, r13
call fcn.00692dc0
jmp 0x415cb0
mov r8, qword [rsp + 0xcc]
mov qword [rdx + 0x4c], r8
mov r9, qword [rsp + 0xd4]
mov qword [rdx + 0x54], r9
mov rsi, qword [rsp + 0xdc]
mov qword [rdx + 0x5c], rsi
mov rdi, qword [rsp + 0xe4]
mov qword [rdx + 0x64], rdi
mov rbx, qword [rsp + 0xec]
mov qword [rdx + 0x6c], rbx
mov rcx, qword [rsp + 0xf4]
mov qword [rdx + 0x74], rcx
mov r14, qword [rsp + 0xfc]
mov qword [rdx + 0x7c], r14
mov r10, qword [rsp + 0x104]
mov qword [rdx + 0x84], r10
mov rax, qword [rsp + 0x10c]
mov byte [rdx + 0x94], 1
mov qword [rdx + 0x8c], rax
jmp 0x415e34
cmp dword [rsp + 0x218], 4
je 0x4162a0
cmp byte [rsp + 0x20], 0
jne 0x4162a0
cmp dword [rsp + 0x218], 6
jne 0x4158ed
mov rcx, qword [rsp + 0x210]
lea rdx, [rsp + 0x80]
call fcn.00693840
jmp 0x4158ed
lea rcx, [0x006d7150]
call fcn.005ab768
mov rcx, qword [rsp + 0x60]
mov r12, rax
test rcx, rcx
je 0x41628e
call fcn.005ab730
mov rcx, r12
call fcn.005ab970
nop word cs:[rax + rax]
movss dword [rsp + 0x120], xmm9
jmp 0x416116
test r9b, r9b
jne 0x416321
lea rcx, [0x006d7150]
call fcn.005ab768
lea rcx, [rsp + 0x60]
lea r8, [rsp + 0x5c]
call fcn.006c27b0
mov r9, qword [rsp + 0x200]
mov rcx, qword [r9]
mov rax, qword [r9 + 8]
sub rax, rcx
sar rax, 3
imul rax, qword [rsp + 0x28]
mov qword [rsp + 0x38], rax
jmp 0x415eba
lea rsi, [rsp + 0x80]
mov ecx, reloc.WS2_32.dll_select
mov rdi, rdx
rep movsd dword [rdi], dword [rsi]
mov byte [rdx + 0x48], 1
jmp 0x41613e
mov r8, qword [rsp + 0x38]
lea rcx, [0x006d7150]
call fcn.005ab768
mov dword [rsp + 0x5c], r10d
jmp 0x4162b4
test al, al
je 0x4158ed
jmp 0x416256
lea rcx, [0x006d7150]
mov rdx, rdi
call fcn.005ab768
lea rcx, [0x006d7150]
mov rdx, rdi
call fcn.005ab768
lea rcx, [0x006d7150]
call fcn.005ab768
xor edx, edx
jmp 0x4162b4
lea rcx, [0x006d7150]
call fcn.005ab768
lea rcx, [0x006d7150]
mov rdx, rdi
call fcn.005ab768
mov dword [rsp + 0x5c], r10d
jmp 0x4157c4