Function at 0x1401c4fd0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
mov dword [rsp + 0x18], r8d
push rbx
push rbp
push rsi
push rdi
sub rsp, 0x228
mov esi, r8d
mov rbp, rdx
mov ebx, ecx
call fcn.1401a0c80
mov rdi, rax
test rax, rax
jne 0x1401c5006
mov eax, 1
add rsp, 0x228
pop rdi
pop rsi
pop rbp
pop rbx
ret
xor edx, edx
mov r8d, 0x2cec
mov rcx, rbp
call sub.MSVCR90.dll_memset
cmp dword [rdi + 0x3e438], 0
je 0x1401c4ff5
mov qword [rsp + 0x250], r12
mov qword [rsp + 0x220], r13
mov qword [rsp + 0x218], r14
mov qword [rsp + 0x210], r15
mov dword [rbp + 0x14], 1
movaps xmmword [rsp + 0x200], xmm6
xorps xmm6, xmm6
movaps xmmword [rsp + 0x1f0], xmm7
movaps xmmword [rsp + 0x1e0], xmm8
movaps xmmword [rsp + 0x1b0], xmm11
cmp esi, 1
ja 0x1401c508f
lea r9, [rsp + 0x268]
mov r8, rbp
mov edx, esi
mov ecx, ebx
call fcn.1401c4de0
movss xmm7, dword [rsp + 0x268]
jmp 0x1401c5092
movaps xmm7, xmm6
movss xmm0, dword [rdi + 0x2b51c]
movss xmm11, dword [0x140339240]
lea rcx, [rbp + 0x18]
lea rdx, [rdi + 0x257d0]
movaps xmmword [rsp + 0x1d0], xmm9
movaps xmmword [rsp + 0x1c0], xmm10
addss xmm0, dword [rdi + 0x2ac14]
mulss xmm0, xmm11
movss dword [rbp + 4], xmm0
movss xmm0, dword [rdi + 0x2b520]
addss xmm0, dword [rdi + 0x2ac18]
mulss xmm0, xmm11
movss dword [rbp + 0xc], xmm0
movss xmm1, dword [rdi + 0x2c72c]
addss xmm1, dword [rdi + 0x2be24]
mulss xmm1, xmm11
movss dword [rbp + 8], xmm1
movss xmm0, dword [rdi + 0x2c730]
addss xmm0, dword [rdi + 0x2be28]
mulss xmm0, xmm11
movss dword [rbp + 0x10], xmm0
call fcn.14024f090
mov eax, dword [rdi + 0x3e00c]
movsd xmm8, qword [0x140339538]
mov dword [rbp + 0x68], eax
mov eax, dword [rdi + 0x3e010]
mov dword [rbp + 0x6c], eax
mov eax, dword [rdi + 0x3e014]
xor r13d, r13d
mov dword [rbp + 0x70], eax
mov eax, dword [rdi + 0x3e018]
mov edx, r13d
mov dword [rbp + 0x74], eax
mov eax, dword [rdi + 0x3e028]
mov dword [rsp + 0x268], edx
mov dword [rbp + 0x78], eax
mov eax, dword [rdi + 0x3e02c]
mov dword [rbp + 0x7c], eax
mov eax, dword [rdi + 0x3e030]
mov dword [rbp + 0x80], eax
mov eax, dword [rdi + 0x3e040]
mov dword [rbp + 0x84], eax
mov eax, dword [rdi + 0x3e044]
mov dword [rbp + 0x88], eax
mov eax, dword [rdi + 0x3e048]
mov dword [rbp + 0x8c], eax
mov eax, dword [rdi + 0x25874]
mov dword [rbp + 0x58], eax
movss xmm0, dword [rdi + 0x25884]
mulss xmm0, xmm11
mulss xmm0, dword [rdi + 0x25874]
movss dword [rbp + 0x60], xmm7
movss dword [rbp + 0x5c], xmm0
mov eax, dword [rdi + 0x25980]
mov dword [rbp + 0x64], eax
cmp dword [rdi + 0x22f44], edx
jle 0x1401c5b95
movss xmm10, dword [0x140339228]
movsd xmm9, qword [0x140339bb0]
lea rax, [rbp + 0x138]
mov qword [rsp + 0x70], rax
lea r15, [rdi + 0x231e4]
lea rsi, [rbp + 0x1a08]
lea rax, [rdi + 0x2abe0]
lea r12, [rdi + 0x26fa0]
mov qword [rsp + 0xa8], r15
mov qword [rsp + 0x88], rax
mov qword [rsp + 0xa0], rsi
mov ecx, dword [r15 - 0x29c]
test ecx, ecx
je 0x1401c5262
sub ecx, 1
je 0x1401c525a
sub ecx, 1
je 0x1401c5252
cmp ecx, 1
jne 0x1401c5265
mov dword [rsi], 3
jmp 0x1401c5265
mov dword [rsi], 2
jmp 0x1401c5265
mov dword [rsi], 1
jmp 0x1401c5265
mov dword [rsi], r13d
movsxd r14, edx
mov rax, r14
imul rax, rax, 0x1928
mov qword [rsp + 0x108], rax
lea rbx, [rax + rdi + 0x26ed8]
mov rax, r14
mov rdx, rbx
imul rax, rax, 0x170
mov qword [rsp + 0x78], rax
lea rcx, [rax + rbp + 0xf4]
call fcn.14024f090
mov rdx, rbx
imul r14, r14, 0x56c
lea rcx, [r14 + rbp + 0x1e3c]
mov qword [rsp + 0xb0], r14
call fcn.14024f090
mov eax, dword [r12 + 0x2e4]
mov r10d, r13d
mov dword [rsi + 0x474], eax
mov eax, dword [r12 + 0x2e8]
mov dword [rsi + 0x478], eax
mov eax, dword [r12 + 0x2ec]
mov dword [rsi + 0x47c], eax
mov eax, dword [r15]
mov dword [rsi + 0x480], eax
cmp dword [r15], 0
jle 0x1401c5379
lea r8, [rsi + 0x514]
mov r9, r12
lea rcx, [rsi + 0x490]
lea rdx, [r12 - 0xc]
nop word [rax + rax]
mov eax, dword [rdx - 0xc]
inc r10d
add r8, 4
mov dword [rcx - 0xc], eax
mov eax, dword [rdx - 8]
add rdx, 0x90
mov dword [rcx - 8], eax
mov eax, dword [rdx - 0x94]
add rcx, 0x18
mov dword [rcx - 0x1c], eax
mov eax, dword [rdx - 0x90]
add r9, 0x90
mov dword [rcx - 0x18], eax
mov eax, dword [rdx - 0x8c]
mov dword [rcx - 0x14], eax
mov eax, dword [rdx - 0x88]
mov dword [rcx - 0x10], eax
mov eax, dword [r9 - 0x90]
mov dword [r8 - 4], eax
cmp r10d, dword [r15]
jl 0x1401c5320
mov rax, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x70]
mov r14d, r13d
lea r13, [r12 - 0x12d4]
add rsi, 0x94
lea r15, [r12 - 0x804]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x80], rcx
nop dword [rax]
mov eax, dword [r15 - 0x3e0]
mov dword [rcx - 4], eax
cmp dword [r12 - 0x1618], 0
je 0x1401c53df
movss xmm0, dword [r12 - 0x12dc]
divss xmm0, dword [r12 - 0x12d4]
movss dword [rcx], xmm0
jmp 0x1401c53ef
movss xmm0, dword [r13 - 8]
divss xmm0, dword [r13]
movss dword [rcx], xmm0
movsxd rcx, r14d
mov rax, rcx
mov rbx, rcx
imul rax, rax, 0x590
imul rbx, rbx, 0x98
add rax, qword [rsp + 0x108]
add rbx, qword [rsp + 0x78]
lea rdx, [rax + rdi + 0x266d0]
lea rcx, [rbx + rbp + 0x17c]
mov qword [rsp + 0x40], rax
call fcn.14024f090
mov rax, qword [rsp + 0x80]
mov r11d, dword [r15]
mov dword [rax + 0x84], r11d
mov rax, qword [rsp + 0x40]
lea rcx, [rbx + rbp + 0x13c]
lea rdx, [rax + rdi + 0x26710]
call fcn.14024f090
mov rbx, qword [rsp + 0x40]
movsxd rax, r14d
imul rax, rax, 0x218
add rax, qword [rsp + 0xb0]
lea rdx, [rbx + rdi + 0x26750]
lea rcx, [rax + rbp + 0x1a58]
mov qword [rsp + 0x40], rax
call fcn.14024f090
mov eax, dword [r15 - 0x278]
mov dword [rsi - 0x50], eax
mov eax, dword [r15 - 0x274]
mov dword [rsi - 0x4c], eax
mov eax, dword [r15 - 0x270]
mov dword [rsi - 0x48], eax
mov rax, qword [rsp + 0x68]
cmp dword [rax + 4], 0
je 0x1401c56ca
cmp dword [rax], 0
je 0x1401c56ca
lea rcx, [rsp + 0x90]
movaps xmm3, xmm6
movaps xmm2, xmm10
movaps xmm1, xmm6
call fcn.140250780
lea r8, [rsp + 0x90]
lea rdx, [rbx + rdi + 0x26750]
lea rcx, [rsp + 0x90]
call fcn.14024f8c0
mov eax, dword [rsp + 0x268]
lea r8, [rsp + 0x90]
add eax, eax
lea rcx, [rsp + 0x20]
add eax, r14d
cdqe
imul rax, rax, 0x908
lea rdx, [rax + rdi + 0x2ac60]
call fcn.14024f950
movss xmm7, dword [rsp + 0x24]
movd xmm0, dword [rsp + 0x28]
unpcklps xmm7, xmm7
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm7
call sub.MSVCR90.dll_atan2
mulsd xmm0, xmm9
cvtsd2ss xmm0, xmm0
movss dword [rsi - 4], xmm0
test r14d, r14d
jne 0x1401c5573
movd xmm0, dword [rsp + 0x20]
unpcklps xmm7, xmm7
cvtps2pd xmm1, xmm7
cvtps2pd xmm0, xmm0
call sub.MSVCR90.dll_atan2
mulsd xmm0, xmm8
cvtsd2ss xmm0, xmm0
movss dword [rsi], xmm0
jmp 0x1401c5594
movd xmm0, dword [rsp + 0x20]
unpcklps xmm7, xmm7
cvtps2pd xmm1, xmm7
cvtps2pd xmm0, xmm0
call sub.MSVCR90.dll_atan2
mulsd xmm0, xmm9
cvtsd2ss xmm0, xmm0
movss dword [rsi], xmm0
lea rdx, [rbx + rdi + 0x26710]
lea rcx, [rsp + 0x110]
call fcn.14024f1f0
lea r8, [rsp + 0x90]
lea rdx, [rsp + 0x110]
lea rcx, [rsp + 0x20]
call fcn.14024f8c0
lea rcx, [rsp + 0xe8]
movaps xmm3, xmm6
movaps xmm2, xmm6
movaps xmm1, xmm6
call fcn.140250780
lea r8, [rsp + 0xe8]
lea rdx, [rbx + rdi + 0x26750]
lea rcx, [rsp + 0xe8]
call fcn.14024f820
lea r8, [rsp + 0xe8]
lea rdx, [rsp + 0x110]
lea rcx, [rsp + 0x30]
call fcn.14024f820
test r14d, r14d
jne 0x1401c5635
movss xmm2, dword [rsp + 0x34]
movss xmm0, dword [rsp + 0x30]
movaps xmm1, xmm2
mulss xmm1, dword [rsp + 0x20]
subss xmm0, xmm1
movss dword [rsi + 8], xmm0
jmp 0x1401c564f
movss xmm2, dword [rsp + 0x34]
movaps xmm0, xmm2
mulss xmm0, dword [rsp + 0x20]
subss xmm0, dword [rsp + 0x30]
movss dword [rsi + 8], xmm0
mulss xmm2, dword [rsp + 0x28]
movss xmm0, dword [rsp + 0x38]
lea rcx, [rsp + 0x48]
movaps xmm3, xmm6
movaps xmm1, xmm10
subss xmm0, xmm2
movaps xmm2, xmm6
movss dword [rsi + 4], xmm0
call fcn.140250780
lea r8, [rsp + 0x48]
lea rdx, [rbx + rdi + 0x26710]
lea rcx, [rsp + 0x48]
call fcn.14024f8c0
lea r8, [rsp + 0x48]
lea rdx, [rdi + 0x257d0]
lea rcx, [rsp + 0x58]
call fcn.14024f950
movd xmm1, dword [rsp + 0x58]
movd xmm0, dword [rsp + 0x60]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
call sub.MSVCR90.dll_atan2
mulsd xmm0, xmm8
cvtsd2ss xmm0, xmm0
movss dword [rsi + 0xc], xmm0
mov eax, dword [r15 + 0x28]
lea rdx, [rbx + rdi + 0x2683c]
mov dword [rsi + 0x10], eax
mov eax, dword [r15 + 0x2c]
mov dword [rsi + 0x14], eax
mov eax, dword [r15 + 0x30]
mov dword [rsi + 0x18], eax
mov eax, dword [r15 + 0x34]
mov dword [rsi + 0x1c], eax
mov eax, dword [r15 + 0x38]
mov dword [rsi + 0x20], eax
mov eax, dword [r15 + 0x3c]
mov dword [rsi + 0x24], eax
mov eax, dword [r15 + 0x10]
mov dword [rsi + 0x10], eax
mov eax, dword [r15 + 0x14]
mov dword [rsi + 0x14], eax
mov eax, dword [r15 + 0x18]
mov dword [rsi + 0x18], eax
mov eax, dword [r15 + 4]
mov dword [rsi + 0x1c], eax
mov eax, dword [r15 + 8]
mov dword [rsi + 0x20], eax
mov eax, dword [r15 + 0xc]
mov dword [rsi + 0x24], eax
mov eax, dword [r15 + 0x40]
mov dword [rsi + 0x4c], eax
mov eax, dword [r15 + 0x44]
mov dword [rsi + 0x50], eax
mov eax, dword [r15 + 0x48]
mov dword [rsi + 0x54], eax
mov eax, dword [r15 + 0x4c]
mov dword [rsi + 0x58], eax
mov eax, dword [r15 + 0x50]
mov dword [rsi + 0x5c], eax
mov eax, dword [r15 + 0x54]
mov dword [rsi + 0x60], eax
mov eax, dword [r15 + 0x58]
mov dword [rsi + 0x64], eax
mov eax, dword [r15 + 0x5c]
mov dword [rsi + 0x68], eax
mov eax, dword [r15 + 0x60]
mov dword [rsi + 0x6c], eax
mov rax, qword [rsp + 0x40]
lea rcx, [rax + rbp + 0x1b70]
call fcn.14024f090
mov eax, dword [r15 - 0x268]
mov dword [rsi + 0x114], eax
mov eax, dword [r15 - 0x264]
mov dword [rsi + 0x118], eax
mov eax, dword [r15 - 0x260]
mov dword [rsi + 0x11c], eax
mov eax, dword [r15 + 0x120]
mov dword [rsi + 0x120], eax
mov eax, dword [r15 + 0x124]
mov dword [rsi + 0x124], eax
mov eax, dword [r15 + 0x128]
mov dword [rsi + 0x128], eax
mov eax, dword [r15 + 0x12c]
mov dword [rsi + 0x12c], eax
mov eax, dword [r15 + 0x130]
mov dword [rsi + 0x130], eax
mov eax, dword [r15 + 0x134]
mov dword [rsi + 0x134], eax
mov eax, dword [r15 + 0x13c]
mov dword [rsi + 0x138], eax
mov eax, dword [r15 + 0x140]
mov dword [rsi + 0x13c], eax
mov eax, dword [r15 + 0x144]
mov dword [rsi + 0x140], eax
mov eax, dword [r15 + 0x64]
mov dword [rsi + 0x28], eax
mov eax, dword [r15 + 0x68]
mov dword [rsi + 0x2c], eax
mov eax, dword [r15 + 0x6c]
mov dword [rsi + 0x30], eax
mov eax, dword [r15 + 0x70]
mov dword [rsi + 0x34], eax
mov eax, dword [r15 + 0x74]
mov dword [rsi + 0x38], eax
mov eax, dword [r15 + 0x78]
mov dword [rsi + 0x3c], eax
mov eax, dword [r15 + 0x7c]
lea rdx, [rbx + rdi + 0x2687c]
mov dword [rsi + 0x40], eax
mov eax, dword [r15 + 0x80]
mov dword [rsi + 0x44], eax
mov eax, dword [r15 + 0x84]
mov dword [rsi + 0x48], eax
mov rax, qword [rsp + 0x40]
lea rcx, [rax + rbp + 0x1b24]
call fcn.14024f090
mov eax, dword [r15 - 0x258]
mov dword [rsi + 0xc8], eax
mov eax, dword [r15 - 0x254]
mov dword [rsi + 0xcc], eax
mov eax, dword [r15 - 0x250]
mov dword [rsi + 0xd0], eax
mov eax, dword [r15 + 0x14c]
mov dword [rsi + 0x144], eax
mov eax, dword [r15 + 0x150]
mov dword [rsi + 0x148], eax
mov eax, dword [r15 + 0x154]
mov dword [rsi + 0x14c], eax
mov eax, dword [r15 + 0x158]
mov dword [rsi + 0x150], eax
mov eax, dword [r15 + 0x15c]
mov dword [rsi + 0x154], eax
mov eax, dword [r15 + 0x160]
mov dword [rsi + 0x158], eax
mov eax, dword [r15 + 0x168]
mov dword [rsi + 0x15c], eax
mov eax, dword [r15 + 0x16c]
mov dword [rsi + 0x160], eax
mov eax, dword [r15 + 0x170]
mov dword [rsi + 0x164], eax
mov eax, dword [r15 + 0x88]
mov dword [rsi + 0x70], eax
mov eax, dword [r15 + 0x8c]
mov dword [rsi + 0x74], eax
mov eax, dword [r15 + 0x90]
mov dword [rsi + 0x78], eax
mov eax, dword [r15 + 0x94]
mov dword [rsi + 0x7c], eax
mov eax, dword [r15 + 0x98]
mov dword [rsi + 0x80], eax
mov eax, dword [r15 + 0x9c]
mov dword [rsi + 0x84], eax
cmp dword [r12 - 0x1618], 0
je 0x1401c599c
movss xmm0, dword [r12 - 0x12d4]
movaps xmm1, xmm0
subss xmm1, dword [r12 - 0x12f0]
divss xmm1, xmm0
movss dword [rsi + 0x180], xmm1
movss xmm0, dword [r12 - 0x131c]
divss xmm0, dword [r12 - 0x12d4]
movss dword [rsi + 0x184], xmm0
jmp 0x1401c59cb
movss xmm1, dword [r13]
movaps xmm0, xmm1
subss xmm0, dword [r13 - 0x1c]
divss xmm0, xmm1
movss dword [rsi + 0x180], xmm0
movss xmm0, dword [r13 - 0x48]
divss xmm0, dword [r13]
movss dword [rsi + 0x184], xmm0
movsxd rax, r14d
movaps xmm3, xmm6
movaps xmm2, xmm6
movaps xmm1, xmm6
lea rax, [rax + rax*2]
lea rbx, [rsp + rax*4 + 0x150]
mov rcx, rbx
call fcn.140250780
mov ecx, dword [rsp + 0x268]
mov r8, rbx
lea eax, [rcx + rcx]
mov rcx, rbx
add eax, r14d
cdqe
imul rax, rax, 0x908
lea rdx, [rax + rdi + 0x2a550]
call fcn.14024f820
mov rcx, qword [rsp + 0x80]
add qword [rsp + 0x68], 0x908
add rcx, 0x98
inc r14d
add r15, 0x590
add r13, 0x34c
add rsi, 0x218
cmp r14d, 2
mov qword [rsp + 0x80], rcx
jl 0x1401c53b0
mov rax, qword [rsp + 0xb0]
lea r8, [rsp + 0x15c]
lea rdx, [rsp + 0x150]
lea rcx, [rax + rbp + 0x1f70]
call fcn.140250870
mov rsi, qword [rsp + 0xa0]
mov eax, dword [r12 - 0xc54]
mov edx, dword [rsp + 0x268]
mov r15, qword [rsp + 0xa8]
add qword [rsp + 0x88], 0x1210
add qword [rsp + 0x70], 0x170
mov dword [rsi + 0x52c], eax
mov eax, dword [r12 - 0xc50]
mov dword [rsi + 0x530], eax
mov eax, dword [r12 - 0xc4c]
inc edx
mov dword [rsi + 0x534], eax
mov eax, dword [r12 - 0xc30]
add rsi, 0x56c
mov dword [rsi - 0x1c], eax
mov eax, dword [r12 - 0xc2c]
add r15, 0x348
mov dword [rsi - 0x18], eax
mov eax, dword [r12 - 0xc28]
add r12, 0x1928
mov dword [rsi - 0x14], eax
mov eax, dword [r12 - 0x2570]
mov qword [rsp + 0xa0], rsi
mov dword [rsi - 0x34], eax
mov eax, dword [r12 - 0x256c]
mov dword [rsp + 0x268], edx
mov dword [rsi - 0x30], eax
mov eax, dword [r12 - 0x2568]
mov qword [rsp + 0xa8], r15
mov dword [rsi - 0x2c], eax
mov eax, dword [r12 - 0x254c]
mov r13d, 0
mov dword [rsi - 0x10], eax
mov eax, dword [r12 - 0x2548]
mov dword [rsi - 0xc], eax
mov eax, dword [r12 - 0x2544]
mov dword [rsi - 8], eax
mov eax, dword [r12 - 0x2564]
mov dword [rsi - 0x28], eax
mov eax, dword [r12 - 0x2560]
mov dword [rsi - 0x24], eax
mov eax, dword [r12 - 0x255c]
mov dword [rsi - 0x20], eax
cmp edx, dword [rdi + 0x22f44]
jl 0x1401c5230
movsxd rcx, dword [rdi + 0x22e44]
mov eax, dword [rdi + 0x22f44]
movss xmm7, dword [0x1403392e0]
mov esi, 5
add eax, eax
mov r14d, r13d
imul rcx, rcx, 0x5d00
mov qword [rsp + 0x78], rcx
lea r12, [0x140000000]
lea r15d, [rsi - 1]
test eax, eax
jle 0x1401c5e53
movsd xmm10, qword [0x140339428]
movss xmm9, dword [0x140339408]
lea rax, [rcx + rdi + 0x5d24]
lea rbx, [rbp + 0x550]
lea rsi, [rdi + 0x2abe4]
mov qword [rsp + 0x268], rax
nop word [rax + rax]
mov rax, qword [rsi - 0x6c4]
lea rcx, [rsp + 0xf8]
movaps xmm3, xmm6
movaps xmm1, xmm6
movss xmm2, dword [rax + 0x38]
xorps xmm2, xmm7
call fcn.140250780
movsxd r12, r14d
lea r8, [rsp + 0xf8]
mov r15, r12
imul r12, r12, 0xbc
imul r15, r15, 0x908
lea rcx, [r12 + rbp + 0x5ac]
lea rdx, [r15 + rdi + 0x2a590]
call fcn.14024f820
mov r11d, dword [rsi]
mov dword [rbx - 0xc], r11d
mov eax, dword [rsi + 0x1c]
mov dword [rbx], eax
movss xmm0, dword [rsi + 0x30]
divss xmm0, dword [rsi + 0x134]
movss dword [rbx + 0x68], xmm0
movss xmm1, dword [rsi + 0x34]
divss xmm1, dword [rsi + 0x138]
movss dword [rbx + 0x6c], xmm1
mov eax, dword [rsi - 0x10]
movapd xmm1, xmm10
mov dword [rbx + 0x10], eax
mov eax, dword [rsi - 0xc]
mov dword [rbx + 0x14], eax
mov eax, dword [rsi - 8]
mov dword [rbx + 0x18], eax
mov eax, dword [rsi + 0x20]
mov dword [rbx + 0x74], eax
mov eax, dword [rsi + 0x24]
mov dword [rbx + 0x78], eax
mov eax, dword [rsi + 0x28]
mov dword [rbx + 0x7c], eax
mov eax, dword [rsi - 0x1c]
mov dword [rbx + 4], eax
mov eax, dword [rsi - 0x18]
mov dword [rbx + 8], eax
mov eax, dword [rsi - 0x14]
mov dword [rbx + 0xc], eax
mov eax, dword [rsi + 0xc0]
mov dword [rbx + 0x80], eax
movd xmm0, dword [rsi + 0xc4]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm8
call sub.MSVCR90.dll_fmod
cvtsd2ss xmm1, xmm0
comiss xmm6, xmm1
movss dword [rbx + 0x84], xmm1
jbe 0x1401c5d0d
addss xmm1, xmm9
movss dword [rbx + 0x84], xmm1
mov eax, dword [rsi - 0x69c]
mov dword [rbx + 0x88], eax
mov eax, dword [rsi + 0x128]
mov dword [rbx + 0x8c], eax
movsxd rdx, dword [rsi - 0x50]
cmp edx, 8
ja case.0x1401c5d40.3
lea r8, [0x140000000]
mov ecx, dword [r8 + rdx*4 + 0x1c6a70]
add rcx, r8
jmp rcx
mov dword [rbx - 8], r13d
jmp 0x1401c5d66
mov dword [rbx - 8], 6
jmp 0x1401c5d66
mov dword [rbx - 8], 4
jmp 0x1401c5d66
mov dword [rbx - 8], 5
jmp 0x1401c5d66
mov dword [rbx - 8], edx
mov eax, dword [rsi - 0x48]
lea rdx, [r15 + rdi + 0x2a550]
lea rcx, [r12 + rbp + 0x56c]
mov dword [rbx - 4], eax
call fcn.14024f090
mov rax, qword [rsi + 0xe4]
mov rcx, qword [rsp + 0x268]
cvtsd2ss xmm0, qword [rax + 0x18]
movss dword [rbx + 0xa0], xmm0
mov rax, qword [rsi + 0xe4]
cvtsd2ss xmm1, qword [rax + 0x20]
movss dword [rbx + 0xa4], xmm1
mov rax, qword [rsi + 0xe4]
cvtsd2ss xmm0, qword [rax + 0x28]
movss dword [rbx + 0xa8], xmm0
mov eax, dword [rsi + 0x150]
mov dword [rbx + 0x90], eax
mov eax, dword [rsi + 0x148]
mov dword [rbx + 0x94], eax
mov eax, dword [rsi + 0x14c]
mov dword [rbx + 0x98], eax
mov eax, dword [rsi + 0x154]
mov dword [rbx + 0x9c], eax
cmp dword [rcx], 0xffffffff
jne 0x1401c5e0e
mov rax, qword [rsp + 0x78]
mov eax, dword [rax + rdi + 0x5d20]
mov dword [rbx + 0xac], eax
jmp 0x1401c5e15
mov dword [rbx + 0xac], r13d
mov eax, dword [rdi + 0x22f44]
add rcx, 4
inc r14d
add eax, eax
add rsi, 0x908
add rbx, 0xbc
cmp r14d, eax
mov qword [rsp + 0x268], rcx
jl 0x1401c5c10
mov esi, 5
lea r12, [0x140000000]
lea r15d, [rsi - 1]
mov eax, dword [rdi + 0x22e44]
movaps xmm10, xmmword [rsp + 0x1c0]
movaps xmm9, xmmword [rsp + 0x1d0]
mov dword [rbp + 0x9ac], eax
mov eax, dword [rdi + 0x24058]
mov dword [rbp + 0xa4], eax
cmp dword [rdi + 0x24248], 0
movaps xmm8, xmmword [rsp + 0x1e0]
je 0x1401c5e9b
mov dword [rbp + 0xa8], 1
jmp 0x1401c5ea7
mov eax, dword [rdi + 0x24238]
mov dword [rbp + 0xa8], eax
mov eax, dword [rdi + 0x240a4]
movsxd rdx, dword [rsp + 0x260]
mov dword [rbp + 0xac], eax
mov eax, dword [rdi + 0x24fa4]
mov dword [rbp + 0xc0], eax
mov eax, dword [rdi + 0x24fa8]
mov dword [rbp + 0xc4], eax
mov eax, dword [rdi + 0x24eec]
mov dword [rbp + 0xb8], eax
cmp edx, 2
ja 0x1401c5ef9
mov eax, dword [rdi + rdx*4 + 0x25054]
mov dword [rbp + 0xbc], eax
mov dword [rdi + rdx*4 + 0x25054], r13d
mov eax, dword [rdi + 0x25060]
movsd xmm2, qword [0x140339458]
mov dword [rbp + 0xc8], eax
movd xmm0, dword [rdi + 0x25090]
cvtps2pd xmm0, xmm0
divsd xmm0, xmm2
cvtsd2ss xmm0, xmm0
movss dword [rbp + 0xb0], xmm0
mov eax, dword [rdi + 0x25098]
mov dword [rbp + 0xb4], eax
cvtsd2ss xmm0, qword [rdi + 0x23cc8]
movss dword [rbp + 0xcc], xmm0
cvtsd2ss xmm1, qword [rdi + 0x24170]
movss dword [rbp + 0xd0], xmm1
mov eax, dword [rdi + 0x24280]
mov dword [rbp + 0xd4], eax
cvtsd2ss xmm0, qword [rdi + 0x24198]
movss dword [rbp + 0xd8], xmm0
mov eax, dword [rdi + 0x24258]
mov dword [rbp + 0xdc], eax
mov eax, dword [rdi + 0x241f8]
mov dword [rbp + 0xe0], eax
movd xmm0, dword [rdi + 0x24218]
cvtps2pd xmm0, xmm0
divsd xmm0, xmm2
movss xmm2, dword [0x14030da18]
cvtsd2ss xmm0, xmm0
movss dword [rbp + 0xe4], xmm0
movss xmm1, dword [rdi + 0x2421c]
divss xmm1, xmm2
movss dword [rbp + 0xe8], xmm1
cmp edx, 2
ja 0x1401c5ff6
mov eax, dword [rdi + rdx*4 + 0x24220]
mov dword [rbp + 0xec], eax
movss xmm0, dword [rdi + rdx*4 + 0x2422c]
divss xmm0, xmm2
movss dword [rbp + 0xf0], xmm0
mov dword [rdi + rdx*4 + 0x24220], r13d
mov dword [rdi + rdx*4 + 0x2422c], r13d
cvtsd2ss xmm0, qword [rdi + 0x3df88]
lea rdx, [rbp + 0x9b0]
lea rcx, [rdi + 0x23c50]
movss dword [rbp + 0x180c], xmm0
mov eax, dword [rdi + 0x240e8]
mov dword [rbp + 0xa0], eax
mov eax, dword [rdi + 0x25850]
mov dword [rbp + 0x90], eax
mov eax, dword [rdi + 0x25854]
mov dword [rbp + 0x94], eax
mov eax, dword [rdi + 0x25858]
mov dword [rbp + 0x98], eax
mov eax, dword [rdi + 0x2585c]
mov dword [rbp + 0x9c], eax
call fcn.14019b200
lea r11, [rbp + 0x1800]
lea rcx, [rdi + 0x256dc]
mov edx, 2
cmp dword [rcx - 0x24], 0
je 0x1401c6075
mov eax, dword [rcx]
mov dword [r11], eax
jmp 0x1401c6078
mov dword [r11], r13d
add r11, 4
add rcx, 0x50
sub rdx, 1
jne 0x1401c6068
cmp dword [rdi + 0x25708], edx
je 0x1401c60a4
cmp dword [rdi + 0x25748], edx
je 0x1401c60a4
mov eax, dword [rdi + 0x25750]
mov dword [rbp + 0x1808], eax
jmp 0x1401c60ab
mov dword [rbp + 0x1808], r13d
mov eax, dword [rdi + 0x2575c]
lea rcx, [rbp + 0x181c]
mov dword [rbp + 0x1810], eax
mov eax, dword [rdi + 0x25768]
mov dword [rbp + 0x1814], eax
call fcn.14024ee30
lea rcx, [rbp + 0x181c]
movss xmm3, dword [rdi + 0x22f1c]
movss xmm2, dword [rdi + 0x22f18]
movss xmm1, dword [rdi + 0x22f14]
call fcn.14024f800
lea r8, [rbp + 0x181c]
lea rdx, [rdi + 0x257d0]
lea rcx, [rbp + 0x181c]
call fcn.14024ee80
lea rcx, [rbp + 0x185c]
call fcn.14024ee30
lea rcx, [rbp + 0x185c]
movss xmm3, dword [rdi + 0x22f28]
movss xmm2, dword [rdi + 0x22f24]
movss xmm1, dword [rdi + 0x22f20]
call fcn.14024f800
lea r8, [rbp + 0x185c]
lea rdx, [rdi + 0x257d0]
lea rcx, [rbp + 0x185c]
call fcn.14024ee80
lea rcx, [rbp + 0x18c0]
call fcn.14024ee30
lea rcx, [rbp + 0x18c0]
movss xmm3, dword [rdi + 0x22f34]
movss xmm2, dword [rdi + 0x22f30]
movss xmm1, dword [rdi + 0x22f2c]
call fcn.14024f800
lea r8, [rbp + 0x18c0]
lea rdx, [rdi + 0x257d0]
lea rcx, [rbp + 0x18c0]
call fcn.14024ee80
mov eax, dword [rdi + 0x22f38]
mov dword [rbp + 0x1900], eax
mov eax, dword [rdi + 0x22f3c]
mov dword [rbp + 0x1904], eax
mov eax, dword [rdi + 0x22f40]
mov dword [rbp + 0x1908], eax
mov eax, dword [rdi + 0x25780]
dec eax
cmp eax, 0xd
ja case.0x1401c61e3.9
cdqe
mov ecx, dword [r12 + rax*4 + 0x1c6a94]
add rcx, r12
jmp rcx
mov dword [rbp + 0x189c], 1
mov eax, dword [rdi + 0x25784]
mov dword [rbp + 0x18a0], eax
mov eax, dword [rdi + 0x25788]
mov dword [rbp + 0x18a4], eax
mov eax, dword [rdi + 0x2578c]
mov dword [rbp + 0x18a8], eax
jmp 0x1401c6541
mov dword [rbp + 0x189c], 2
mov eax, dword [rdi + 0x25784]
mov dword [rbp + 0x18a0], eax
mov eax, dword [rdi + 0x25788]
mov dword [rbp + 0x18a4], eax
mov eax, dword [rdi + 0x2578c]
mov dword [rbp + 0x18a8], eax
jmp 0x1401c6541
mov dword [rbp + 0x189c], 3
mov eax, dword [rdi + 0x25784]
mov dword [rbp + 0x18a0], eax
mov eax, dword [rdi + 0x25788]
mov dword [rbp + 0x18a4], eax
movd xmm0, dword [rdi + 0x2578c]
cvtps2pd xmm0, xmm0
divsd xmm0, qword [0x1403397b0]
cvtsd2ss xmm0, xmm0
movss dword [rbp + 0x18a8], xmm0
jmp 0x1401c6541
mov dword [rbp + 0x189c], r15d
movd xmm0, dword [rdi + 0x25784]
cvtps2pd xmm0, xmm0
divsd xmm0, qword [0x14030daa0]
cvtsd2ss xmm0, xmm0
movss dword [rbp + 0x18a0], xmm0
mov eax, dword [rdi + 0x25788]
mov dword [rbp + 0x18a4], eax
movd xmm0, dword [rdi + 0x2578c]
cvtps2pd xmm0, xmm0
divsd xmm0, qword [0x140339560]
cvtsd2ss xmm0, xmm0
movss dword [rbp + 0x18a8], xmm0
jmp 0x1401c6541
mov dword [rbp + 0x189c], esi
movd xmm0, dword [rdi + 0x25784]
cvtps2pd xmm0, xmm0
divsd xmm0, qword [0x140339480]
cvtsd2ss xmm0, xmm0
movss dword [rbp + 0x18a0], xmm0
mov eax, dword [rdi + 0x25788]
mov dword [rbp + 0x18a4], eax
movd xmm0, dword [rdi + 0x2578c]
cvtps2pd xmm0, xmm0
divsd xmm0, qword [0x140339560]
cvtsd2ss xmm0, xmm0
movss dword [rbp + 0x18a8], xmm0
jmp 0x1401c6541
mov dword [rbp + 0x189c], 6
movd xmm0, dword [rdi + 0x25784]
cvtps2pd xmm0, xmm0
divsd xmm0, qword [0x14030daa0]
cvtsd2ss xmm0, xmm0
movss dword [rbp + 0x18a0], xmm0
mov eax, dword [rdi + 0x25788]
mov dword [rbp + 0x18a4], eax
movd xmm0, dword [rdi + 0x2578c]
cvtps2pd xmm0, xmm0
divsd xmm0, qword [0x140339560]
cvtsd2ss xmm0, xmm0
movss dword [rbp + 0x18a8], xmm0
jmp 0x1401c6541
mov dword [rbp + 0x189c], 7
movd xmm0, dword [rdi + 0x25784]
cvtps2pd xmm0, xmm0
divsd xmm0, qword [0x14030daa0]
cvtsd2ss xmm0, xmm0
movss dword [rbp + 0x18a0], xmm0
mov eax, dword [rdi + 0x25788]
mov dword [rbp + 0x18a4], eax
movd xmm0, dword [rdi + 0x2578c]
cvtps2pd xmm0, xmm0
divsd xmm0, qword [0x140339560]
cvtsd2ss xmm0, xmm0
movss dword [rbp + 0x18a8], xmm0
jmp 0x1401c6541
mov dword [rbp + 0x189c], 8
mov eax, dword [rdi + 0x25784]
mov dword [rbp + 0x18a0], eax
mov eax, dword [rdi + 0x25788]
mov dword [rbp + 0x18a4], eax
movd xmm0, dword [rdi + 0x2578c]
cvtps2pd xmm0, xmm0
divsd xmm0, qword [0x140339560]
cvtsd2ss xmm0, xmm0
movss dword [rbp + 0x18a8], xmm0
jmp 0x1401c6541
mov dword [rbp + 0x189c], ntohl
mov eax, dword [rdi + 0x25784]
mov dword [rbp + 0x18a0], eax
mov eax, dword [rdi + 0x25788]
mov dword [rbp + 0x18a4], eax
mov eax, dword [rdi + 0x2578c]
mov dword [rbp + 0x18a8], eax
jmp 0x1401c6541
mov dword [rbp + 0x189c], ntohl
mov eax, dword [rdi + 0x25784]
mov dword [rbp + 0x18a0], eax
mov eax, dword [rdi + 0x25788]
mov dword [rbp + 0x18a4], eax
mov eax, dword [rdi + 0x2578c]
mov dword [rbp + 0x18a8], eax
jmp 0x1401c6541
mov dword [rbp + 0x189c], ntohl
movd xmm0, dword [rdi + 0x25784]
cvtps2pd xmm0, xmm0
divsd xmm0, qword [0x140339480]
cvtsd2ss xmm0, xmm0
movss dword [rbp + 0x18a0], xmm0
mov eax, dword [rdi + 0x25788]
mov dword [rbp + 0x18a4], eax
movd xmm0, dword [rdi + 0x2578c]
cvtps2pd xmm0, xmm0
divsd xmm0, qword [0x140339560]
cvtsd2ss xmm0, xmm0
movss dword [rbp + 0x18a8], xmm0
jmp 0x1401c6541
mov dword [rbp + 0x189c], reloc.WS2_32.dll_ntohl
mov eax, dword [rdi + 0x2585c]
mov dword [rbp + 0x18a0], eax
mov eax, dword [rdi + 0x25788]
mov dword [rbp + 0x18a4], eax
movd xmm0, dword [rdi + 0x2578c]
cvtps2pd xmm0, xmm0
divsd xmm0, qword [0x140339560]
cvtsd2ss xmm0, xmm0
movss dword [rbp + 0x18a8], xmm0
jmp 0x1401c6541
mov dword [rbp + 0x189c], r13d
mov dword [rbp + 0x18a0], r13d
mov ecx, dword [rdi + 0x25790]
sub ecx, 1
je 0x1401c6566
cmp ecx, 1
je 0x1401c655a
mov dword [rbp + 0x18ac], r13d
jmp 0x1401c6570
mov dword [rbp + 0x18ac], 2
jmp 0x1401c6570
mov dword [rbp + 0x18ac], 1
mov dword [rbp + 0x18b0], r13d
mov eax, dword [rdi + 0x25798]
lea rdx, [rbp + 0x1914]
mov dword [rbp + 0x18b4], eax
mov eax, dword [rdi + 0x2579c]
lea rcx, [rdi + 0x3e368]
mov dword [rbp + 0x18b8], eax
cvtsd2ss xmm0, qword [rdi + 0x257a0]
movss dword [rbp + 0x18bc], xmm0
movzx eax, byte [rdi + 0x3e43c]
mov byte [rbp + 0x190c], al
movss xmm0, dword [rdi + 0x3e440]
mulss xmm0, dword [0x140339460]
cvttss2si eax, xmm0
mov dword [rbp + 0x1910], eax
cmp dword [rcx - 0x20], 0
je 0x1401c65ea
mov eax, dword [rcx]
mov dword [rdx], eax
mov eax, dword [rcx + 4]
mov dword [rdx + 4], eax
mov eax, dword [rcx + 8]
mov dword [rdx + 8], eax
add rdx, 0xc
add rcx, 0x30
sub rsi, 1
jne 0x1401c65d4
lea r8, [rdi + 0x257ac]
lea rdx, [rdi + 0x257d0]
lea rcx, [rsp + 0x58]
call fcn.14024f820
lea rdx, [rdi + 0x3dffc]
lea rcx, [rsp + 0x58]
call fcn.140251710
lea rbx, [rsp + 0xb8]
lea rsi, [rdi + 0x2a520]
lea r12, [rdi + 0x2a590]
movss dword [rbp + 0x19e8], xmm0
nop
mov rax, qword [rsi]
lea rcx, [rsp + 0xf8]
movaps xmm3, xmm6
movaps xmm1, xmm6
movss xmm2, dword [rax + 0x38]
xorps xmm2, xmm7
call fcn.140250780
lea r8, [rsp + 0xf8]
mov rdx, r12
mov rcx, rbx
call fcn.14024f820
add r12, 0x908
add rbx, 0xc
add rsi, 0x908
sub r15, 1
jne 0x1401c6640
movss xmm0, dword [rsp + 0xc4]
movss xmm1, dword [rsp + 0xc8]
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x30]
addss xmm0, dword [rsp + 0xb8]
addss xmm1, dword [rsp + 0xbc]
mulss xmm0, xmm11
mulss xmm1, xmm11
movss dword [rsp + 0x48], xmm0
movss xmm0, dword [rsp + 0xcc]
movss dword [rsp + 0x4c], xmm1
addss xmm0, dword [rsp + 0xc0]
movss xmm1, dword [rsp + 0xdc]
addss xmm1, dword [rsp + 0xd0]
mulss xmm0, xmm11
movss dword [rsp + 0x50], xmm0
movss xmm0, dword [rsp + 0xe0]
mulss xmm1, xmm11
addss xmm0, dword [rsp + 0xd4]
movss dword [rsp + 0x20], xmm1
movss xmm1, dword [rsp + 0xe4]
mulss xmm0, xmm11
addss xmm1, dword [rsp + 0xd8]
movss dword [rsp + 0x24], xmm0
mulss xmm1, xmm11
movss dword [rsp + 0x28], xmm1
call fcn.140250750
lea rdx, [rsp + 0x30]
lea rcx, [rbp + 0x1950]
call fcn.140250620
lea r8, [rsp + 0xc4]
lea rdx, [rsp + 0xb8]
lea rcx, [rsp + 0x30]
call fcn.140250750
lea rcx, [rbp + 0x1954]
lea rdx, [rsp + 0x30]
call fcn.140250620
lea r8, [rsp + 0xdc]
lea rdx, [rsp + 0xd0]
lea rcx, [rsp + 0x30]
call fcn.140250750
lea rcx, [rbp + 0x1958]
lea rdx, [rsp + 0x30]
call fcn.140250620
mov r15, qword [rsp + 0x210]
mov r12, qword [rsp + 0x250]
movss xmm5, dword [rdi + 0x3e018]
comiss xmm5, xmm6
jbe 0x1401c6845
mov rax, qword [rdi + 8]
movss xmm1, dword [rdi + 0x25680]
movss xmm0, xmm5
movss xmm0, dword [rdi + 0x3e958]
mulss xmm1, xmm11
mulss xmm1, dword [rax + 0x307c]
mulss xmm1, xmm5
mulss xmm1, xmm5
divss xmm0, xmm1
movss dword [rbp + 0x19f8], xmm0
movss xmm1, dword [rdi + 0x3e018]
movss xmm2, dword [rdi + 0x25680]
mov rax, qword [rdi + 8]
mulss xmm2, xmm11
mulss xmm2, dword [rax + 0x307c]
movss xmm0, dword [rdi + 0x3e95c]
mulss xmm2, xmm1
mulss xmm2, xmm1
divss xmm0, xmm2
movss dword [rbp + 0x19fc], xmm0
movss xmm0, dword [rbp + 0x1950]
movaps xmm11, xmmword [rsp + 0x1b0]
comiss xmm0, xmm6
movaps xmm6, xmmword [rsp + 0x200]
jbe 0x1401c68ec
lea rdx, [rdi + 0x257d0]
lea rcx, [rsp + 0x110]
call fcn.14024f090
lea rdx, [rsp + 0x110]
lea rcx, [rsp + 0x170]
movss xmm5, dword [rsp + 0x20]
movss xmm0, dword [rsp + 0x24]
movss xmm1, dword [rsp + 0x28]
movss dword [rsp + 0x11c], xmm5
movss dword [rsp + 0x12c], xmm0
movss dword [rsp + 0x13c], xmm1
call fcn.14024f1f0
lea r8, [rdi + 0x3e960]
lea rdx, [rsp + 0x170]
lea rcx, [rsp + 0x58]
call fcn.14024f820
movss xmm5, dword [rsp + 0x60]
divss xmm5, dword [rbp + 0x1950]
movss dword [rbp + 0x1a00], xmm5
mov eax, dword [rdi + 0x22f44]
mov r14, qword [rsp + 0x218]
mov r8d, r13d
add eax, eax
test eax, eax
jle 0x1401c696d
lea rcx, [rbp + 0x1964]
lea rdx, [rdi + 0x2ac20]
mov eax, dword [rdx - 0x20]
mov dword [rcx - 4], eax
test r8b, 1
jne 0x1401c692a
movss xmm0, dword [rdx]
xorps xmm0, xmm7
movss dword [rcx], xmm0
jmp 0x1401c692e
mov eax, dword [rdx]
mov dword [rcx], eax
cvtsd2ss xmm0, qword [rdx - 0x30]
inc r8d
add rdx, 0x908
add rcx, 0x14
movss dword [rcx - 0x10], xmm0
cvtsd2ss xmm1, qword [rdx - 0x930]
movss dword [rcx - 0xc], xmm1
cvtsd2ss xmm0, qword [rdx - 0x8d8]
movss dword [rcx - 8], xmm0
mov eax, dword [rdi + 0x22f44]
add eax, eax
cmp r8d, eax
jl 0x1401c6911
mov eax, dword [rdi + 0x25650]
lea rdx, [rdi + 0x258fc]
lea rcx, [rbp + 0x2a4c]
mov dword [rbp + 0x19d8], eax
mov eax, dword [rdi + 0x25654]
mov dword [rbp + 0x19dc], eax
mov eax, dword [rdi + 0x25658]
mov dword [rbp + 0x19e0], eax
mov eax, dword [rdi + 0x2565c]
mov dword [rbp + 0x19e4], eax
cvtsd2ss xmm0, qword [rdi + 0x24240]
movss dword [rbp + 0x19ec], xmm0
cvtsd2ss xmm1, qword [rdi + 0x24f10]
movss dword [rbp + 0x19f0], xmm1
cvtsd2ss xmm0, qword [rdi + 0x24f08]
movss dword [rbp + 0x19f4], xmm0
mov eax, dword [rdi + 0x25870]
mov dword [rbp + 0x1a04], eax
call fcn.14024f090
mov r11d, dword [rdi + 0x3e6d0]
movaps xmm7, xmmword [rsp + 0x1f0]
mov dword [rbp + 0x2a8c], r11d
test r11d, r11d
jle 0x1401c6a58
lea r8, [rbp + 0x2a94]
nop
mov eax, dword [rdi + 0x3e6d4]
add r8, 0xc
add eax, r13d
inc r13d
cdq
idiv dword [rbp + 0x2a8c]
movsxd rax, edx
lea rcx, [rax + rax*2]
mov eax, dword [rdi + rcx*4 + 0x3e6d8]
mov dword [r8 - 0xc], eax
mov eax, dword [rdi + rcx*4 + 0x3e6dc]
mov dword [r8 - 8], eax
mov eax, dword [rdi + rcx*4 + 0x3e6e0]
mov dword [r8 - 4], eax
cmp r13d, dword [rbp + 0x2a8c]
jl 0x1401c6a10
xor eax, eax
mov r13, qword [rsp + 0x220]
add rsp, 0x228
pop rdi
pop rsi
pop rbp
pop rbx
ret