Function at 0x100811ad
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101a206f
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x60
mov eax, dword [0x1039b040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ecx, dword [ebx + 8]
xorps xmm0, xmm0
mov dword [ebp - 0x40], ecx
movss dword [ebp - 0x3c], xmm0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
test ecx, ecx
je 0x100816e5
cmp dword [0x103bd0d4], 0
je 0x100816e5
mov eax, dword [0x103bce20]
mov edi, dword [ecx + 8]
mov ecx, dword [0x1039d33c]
mov eax, dword [eax]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x30], eax
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x103a0900]
mov dword [ebp - 0x2c], ecx
cmp eax, dword [ecx + 4]
jle 0x10080f84
push 0x103a0900
call fcn.10125de2
add esp, 4
cmp dword [0x103a0900], 0xffffffff
jne 0x10080f84
mov edx, 0x9280a968
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x4c]
call fcn.10036790
push 0xec5ba5ce
mov edx, eax
mov ecx, 0x103a0904
call fcn.10036ba0
add esp, 4
push 0x101a9300
call fcn.10125ca2
add esp, 4
mov dword [ebp - 4], 0xffffffff
push 0x103a0900
call fcn.10125d91
add esp, 4
mov eax, dword [0x103a0904]
call eax
mov ecx, eax
mov dword [ebp - 0x28], ecx
test edi, edi
je 0x10081000
test ecx, ecx
je 0x10081000
mov edi, dword [edi + 0x18]
mov dword [ebp - 0x24], edi
test edi, edi
je 0x10081000
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
mov eax, dword [edi]
and eax, 0xffffff
push eax
call edx
mov dword [ebp - 0x34], eax
test eax, eax
je 0x10080ff1
mov ecx, eax
mov esi, 0x81cc9dc5
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10080fc2
sub ecx, edx
mov edx, 0
je 0x10080ff1
mov edi, dword [ebp - 0x34]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1100192
cmp edx, ecx
jb 0x10080fd5
mov edi, dword [ebp - 0x24]
cmp esi, 0x59d4d0cc
je 0x10081002
mov edi, dword [edi + 0x14]
mov dword [ebp - 0x24], edi
test edi, edi
je 0x10081000
mov ecx, dword [ebp - 0x28]
jmp 0x10080fa2
xor edi, edi
movsx eax, byte [edi + 0x10]
dec eax
cmp eax, 6
ja case.0x1008100c.2
jmp dword [eax*4 + 0x10081708]
push dword [edi + 4]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
add esp, 4
jmp 0x1008105b
push dword [edi + 8]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtoi]
add esp, 4
jmp 0x1008105b
movss xmm0, dword [edi + 0xc]
sub esp, 8
movss dword [ebp - 0x28], xmm0
fld dword [ebp - 0x28]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
fstp dword [ebp - 0x28]
cvttss2si eax, dword [ebp - 0x28]
add esp, 8
jmp 0x1008105b
xor eax, eax
jmp 0x1008105b
mov eax, dword [edi + 0xc]
mov ecx, dword [0x103bce20]
push eax
call dword [ebp - 0x30]
mov ecx, dword [0x103bce20]
mov esi, eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x30]
call edx
cmp esi, eax
jne 0x100816e5
mov ecx, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x40]
mov eax, dword [0x103a0900]
mov edi, dword [edi + 8]
cmp eax, dword [ecx + 4]
jle 0x100810f1
push 0x103a0900
call fcn.10125de2
add esp, 4
cmp dword [0x103a0900], 0xffffffff
jne 0x100810f1
mov edx, 0x9280a968
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x4c]
call fcn.10036790
push 0xec5ba5ce
mov edx, eax
mov ecx, 0x103a0904
call fcn.10036ba0
add esp, 4
push 0x101a9300
call fcn.10125ca2
add esp, 4
mov dword [ebp - 4], 0xffffffff
push 0x103a0900
call fcn.10125d91
add esp, 4
mov eax, dword [0x103a0904]
call eax
mov ecx, eax
mov dword [ebp - 0x28], ecx
test edi, edi
je 0x1008116e
test ecx, ecx
je 0x1008116e
mov edi, dword [edi + 0x18]
mov dword [ebp - 0x24], edi
test edi, edi
je 0x1008116e
nop
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
mov eax, dword [edi]
and eax, 0xffffff
push eax
call edx
mov dword [ebp - 0x30], eax
test eax, eax
je 0x1008115f
mov ecx, eax
mov esi, 0x81cc9dc5
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10081130
sub ecx, edx
mov edx, 0
je 0x1008115f
mov edi, dword [ebp - 0x30]
movsx eax, byte [edi + edx]
inc edx
xor eax, esi
imul esi, eax, 0x1100192
cmp edx, ecx
jb 0x10081143
mov edi, dword [ebp - 0x24]
cmp esi, 0x6c1fb2ca
je 0x10081170
mov edi, dword [edi + 0x14]
mov dword [ebp - 0x24], edi
test edi, edi
je 0x1008116e
mov ecx, dword [ebp - 0x28]
jmp 0x10081110
xor edi, edi
movsx eax, byte [edi + 0x10]
dec eax
cmp eax, 6
ja case.0x1008117a.4
jmp dword [eax*4 + 0x10081724]
push dword [edi + 4]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atof]
fstp dword [ebp - 0x24]
movss xmm0, dword [ebp - 0x24]
add esp, 4
jmp 0x100811d4
push dword [edi + 8]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtof]
fstp dword [ebp - 0x24]
movss xmm0, dword [ebp - 0x24]
add esp, 4
jmp 0x100811d4
movss xmm0, dword [edi + 0xc]
jmp 0x100811d4
movd xmm0, dword [edi + 0xc]
cvtdq2ps xmm0, xmm0
jmp 0x100811d4
mov ecx, dword [edi + 4]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
call fcn.1019eb20
cvtsd2ss xmm0, xmm0
jmp 0x100811d4
xorps xmm0, xmm0
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x2c]
movss dword [ebp - 0x34], xmm0
mov edi, dword [eax + 8]
mov eax, dword [0x103a0900]
cmp eax, dword [ecx + 4]
jle 0x1008124e
push 0x103a0900
call fcn.10125de2
add esp, 4
cmp dword [0x103a0900], 0xffffffff
jne 0x1008124e
mov edx, 0x9280a968
mov dword [ebp - 4], 2
lea ecx, [ebp - 0x4c]
call fcn.10036790
push 0xec5ba5ce
mov edx, eax
mov ecx, 0x103a0904
call fcn.10036ba0
add esp, 4
push 0x101a9300
call fcn.10125ca2
add esp, 4
mov dword [ebp - 4], 0xffffffff
push 0x103a0900
call fcn.10125d91
add esp, 4
mov eax, dword [0x103a0904]
call eax
mov ecx, eax
mov dword [ebp - 0x28], ecx
test edi, edi
je 0x100812ce
test ecx, ecx
je 0x100812ce
mov edi, dword [edi + 0x18]
mov dword [ebp - 0x24], edi
test edi, edi
je 0x100812ce
nop dword [eax]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
mov eax, dword [edi]
and eax, 0xffffff
push eax
call edx
mov dword [ebp - 0x30], eax
test eax, eax
je 0x100812bf
mov ecx, eax
mov esi, 0x81cc9dc5
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10081290
sub ecx, edx
mov edx, 0
je 0x100812bf
mov edi, dword [ebp - 0x30]
movsx eax, byte [edi + edx]
inc edx
xor eax, esi
imul esi, eax, 0x1100192
cmp edx, ecx
jb 0x100812a3
mov edi, dword [ebp - 0x24]
cmp esi, 0x6b0fb138
je 0x100812d0
mov edi, dword [edi + 0x14]
mov dword [ebp - 0x24], edi
test edi, edi
je 0x100812ce
mov ecx, dword [ebp - 0x28]
jmp 0x10081270
xor edi, edi
movsx eax, byte [edi + 0x10]
dec eax
cmp eax, 6
ja case.0x100812da.4
jmp dword [eax*4 + 0x10081740]
push dword [edi + 4]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atof]
fstp dword [ebp - 0x24]
movss xmm0, dword [ebp - 0x24]
add esp, 4
jmp 0x10081334
push dword [edi + 8]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtof]
fstp dword [ebp - 0x24]
movss xmm0, dword [ebp - 0x24]
add esp, 4
jmp 0x10081334
movss xmm0, dword [edi + 0xc]
jmp 0x10081334
movd xmm0, dword [edi + 0xc]
cvtdq2ps xmm0, xmm0
jmp 0x10081334
mov ecx, dword [edi + 4]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
call fcn.1019eb20
cvtsd2ss xmm0, xmm0
jmp 0x10081334
xorps xmm0, xmm0
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x2c]
movss dword [ebp - 0x24], xmm0
mov edi, dword [eax + 8]
mov eax, dword [0x103a0900]
cmp eax, dword [ecx + 4]
jle 0x100813ae
push 0x103a0900
call fcn.10125de2
add esp, 4
cmp dword [0x103a0900], 0xffffffff
jne 0x100813ae
mov edx, 0x9280a968
mov dword [ebp - 4], 3
lea ecx, [ebp - 0x4c]
call fcn.10036790
push 0xec5ba5ce
mov edx, eax
mov ecx, 0x103a0904
call fcn.10036ba0
add esp, 4
push 0x101a9300
call fcn.10125ca2
add esp, 4
mov dword [ebp - 4], 0xffffffff
push 0x103a0900
call fcn.10125d91
add esp, 4
mov eax, dword [0x103a0904]
call eax
mov ecx, eax
mov dword [ebp - 0x28], ecx
test edi, edi
je 0x1008142e
test ecx, ecx
je 0x1008142e
mov edi, dword [edi + 0x18]
mov dword [ebp - 0x2c], edi
test edi, edi
je 0x1008142e
nop dword [eax]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
mov eax, dword [edi]
and eax, 0xffffff
push eax
call edx
mov dword [ebp - 0x30], eax
test eax, eax
je 0x1008141f
mov ecx, eax
mov esi, 0x81cc9dc5
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100813f0
sub ecx, edx
mov edx, 0
je 0x1008141f
mov edi, dword [ebp - 0x30]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1100192
cmp edx, ecx
jb 0x10081403
mov edi, dword [ebp - 0x2c]
cmp esi, 0x6e3fb5ee
je 0x10081430
mov edi, dword [edi + 0x14]
mov dword [ebp - 0x2c], edi
test edi, edi
je 0x1008142e
mov ecx, dword [ebp - 0x28]
jmp 0x100813d0
xor edi, edi
movsx eax, byte [edi + 0x10]
dec eax
cmp eax, 6
ja case.0x1008143a.4
jmp dword [eax*4 + 0x1008175c]
push dword [edi + 4]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atof]
fstp dword [ebp - 0x2c]
movss xmm0, dword [ebp - 0x2c]
add esp, 4
jmp 0x1008148f
push dword [edi + 8]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtof]
fstp dword [ebp - 0x2c]
movss xmm0, dword [ebp - 0x2c]
add esp, 4
jmp 0x1008148f
movss xmm0, dword [edi + 0xc]
jmp 0x1008148f
movd xmm0, dword [edi + 0xc]
cvtdq2ps xmm0, xmm0
jmp 0x1008148f
mov ecx, dword [edi + 4]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
call fcn.1019eb20
cvtsd2ss xmm0, xmm0
movss dword [ebp - 0x3c], xmm0
movss xmm0, dword [ebp - 0x34]
mov eax, dword [0x103bce78]
mov esi, dword [0x1039d788]
movss dword [ebp - 0x20], xmm0
movss xmm0, dword [ebp - 0x24]
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [ebp - 0x3c]
movss dword [ebp - 0x18], xmm0
movss xmm0, dword [eax + 0x10]
movss dword [ebp - 0x30], xmm0
test esi, esi
jne 0x1008151a
push 0xc0
call fcn.10125858
mov esi, eax
add esp, 4
mov dword [ebp - 0x28], esi
push 0xc0
push 0
push esi
mov dword [ebp - 4], 4
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 0xc0
push 0
push esi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov ecx, esi
call fcn.10022c40
mov esi, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x1039d788], esi
push 0xc
xorps xmm0, xmm0
mov dword [ebp - 0x54], 0
push str.impact_beams
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x50], 0
movups xmmword [ebp - 0x64], xmm0
call fcn.10019650
lea eax, [ebp - 0x64]
mov dword [ebp - 4], 5
push eax
mov ecx, esi
call fcn.10021d90
mov al, byte [eax]
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x50]
mov byte [ebp - 0x35], al
cmp ecx, 0xf
jbe 0x10081595
mov edx, dword [ebp - 0x64]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10081588
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10081588
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.10125cbc
mov al, byte [ebp - 0x35]
add esp, 8
test al, al
je 0x10081631
mov ecx, dword [0x103bd0d4]
lea edx, [ebp - 0x4c]
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x454]
call eax
mov eax, dword [ebp - 0x18]
mov ecx, dword [0x103bd0d4]
movq xmm4, qword [ebp - 0x20]
movq xmm0, qword [ebp - 0x4c]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x58], eax
mov eax, dword [0x103a5590]
movq qword [ebp - 0x6c], xmm4
movq qword [ebp - 0x60], xmm0
mov word [ebp - 0x50], 0
mov eax, dword [eax + ecx]
mov dword [ebp - 0x54], eax
mov eax, dword [0x103a82b4]
cmp eax, dword [0x103a82b8]
je 0x10081622
movups xmm0, xmmword [ebp - 0x6c]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0x5c]
movups xmmword [eax + 0x10], xmm0
add dword [0x103a82b4], 0x20
jmp 0x10081636
lea ecx, [ebp - 0x6c]
push ecx
push eax
mov ecx, 0x103a82b0
call fcn.100283d0
movq xmm4, qword [ebp - 0x20]
mov eax, dword [0x103a82a0]
test eax, eax
je 0x100816e5
mov ecx, dword [0x103a829c]
xor edx, edx
movss xmm2, dword [0x1038dd84]
lea esi, [ecx + eax]
cmp ecx, esi
je 0x100816e5
mov eax, dword [0x103a8298]
mov edi, dword [0x103a8294]
dec eax
movss xmm3, dword [0x1038d99c]
movss xmm5, dword [ebp - 0x30]
mov dword [ebp - 0x28], eax
nop word [eax + eax]
mov eax, ecx
and eax, dword [ebp - 0x28]
mov eax, dword [edi + eax*4]
cmp byte [eax + 0x46], 0
jne 0x100816b3
movss xmm1, dword [eax + 0x40]
movaps xmm0, xmm5
addss xmm1, dword [eax + 0x3c]
subss xmm0, xmm1
call fcn.10048240
comiss xmm0, xmm3
ja 0x100816b3
comiss xmm2, xmm0
jbe 0x100816b3
movaps xmm2, xmm0
mov edx, eax
inc ecx
cmp ecx, esi
jne 0x10081680
test edx, edx
je 0x100816e5
mov byte [edx + 0x46], 1
lea ecx, [edx + 0x28]
mov eax, dword [edx + 0x2c]
cmp eax, dword [edx + 0x30]
je 0x100816db
mov ecx, dword [ebp - 0x18]
movq qword [eax], xmm4
mov dword [eax + 8], ecx
add dword [edx + 0x2c], 0xc
jmp 0x100816e5
lea edx, [ebp - 0x20]
push edx
push eax
call fcn.10047eb0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.1012583c
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4