Function at 0x10102520
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1022cac5
mov eax, dword fs:[0]
push eax
sub esp, 0x48
mov eax, dword [0x102d944c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [0x103f64e8]
xor edx, edx
push 0xab
mov ecx, str.BOMB_TIMER
or dword [eax + 0x1cd0], 2
mov dword [eax + 0x1cf4], 0x43fa0000
mov dword [eax + 0x1cf8], 0x437a0000
mov dword [eax + 0x1cd8], 1
call fcn.1011ae30
mov ecx, dword [0x103f64e8]
xorps xmm1, xmm1
add esp, 4
mov eax, dword [ecx + 0x1c48]
mov byte [eax + 0xc5], 1
mov eax, dword [ecx + 0x1c48]
movss xmm2, dword [eax + 0x44]
movss xmm0, dword [eax + 0x48]
subss xmm0, dword [eax + 0x94]
subss xmm2, dword [eax + 0x90]
addss xmm0, xmm1
addss xmm2, xmm1
movss dword [eax + 0x10c], xmm0
movss dword [eax + 0x108], xmm2
movss xmm1, dword [eax + 0x124]
maxss xmm1, xmm0
movss xmm0, dword [eax + 0x120]
maxss xmm0, xmm2
movss dword [eax + 0x124], xmm1
movss dword [eax + 0x120], xmm0
mov eax, dword [ecx + 0x1c48]
movss xmm0, dword [ecx + 0x15a0]
addss xmm0, xmm0
movss xmm2, dword [eax + 0x50]
movss xmm1, dword [eax + 0x4c]
subss xmm2, xmm0
movss xmm0, dword [ecx + 0x159c]
addss xmm0, xmm0
movss dword [0x1055c94c], xmm2
subss xmm1, xmm0
movss dword [0x1055c948], xmm1
mov eax, dword [ecx + 0x1c48]
movss xmm0, dword [eax + 0x44]
movss xmm1, dword [eax + 0x48]
addss xmm0, dword [ecx + 0x159c]
addss xmm1, dword [ecx + 0x15a0]
movss dword [0x1055c938], xmm0
movss dword [0x1055c93c], xmm1
mov eax, dword [ecx + 0x1c48]
mov byte [eax + 0xc5], 1
mov eax, dword [ecx + 0x1c48]
movss xmm0, dword [0x1055c938]
addss xmm0, dword [0x102c1560]
mov ecx, dword [0x1054dfe4]
mov edi, dword [eax + 0x2c4]
mov dword [ebp - 0x14], edi
movss dword [0x1055c938], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
jne 0x101026bf
cmp byte [0x1054f9d0], al
je 0x10103113
push 0xa
xorps xmm0, xmm0
mov dword [ebp - 0x20], 0
push str.planted_c4
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x1c], 0
movups xmmword [ebp - 0x30], xmm0
call fcn.100bd420
lea eax, [ebp - 0x30]
mov dword [ebp - 4], 0
push eax
mov ecx, 0x10550908
call fcn.100b9b80
mov al, byte [eax]
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x1c]
mov byte [ebp - 0x15], al
cmp ecx, 0x10
jb 0x1010273b
mov edx, dword [ebp - 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1010272e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1010312e
push ecx
push edx
call fcn.101fb2ba
mov al, byte [ebp - 0x15]
add esp, 8
test al, al
je 0x10103113
cmp byte [0x1055c248], 0
jne 0x10102759
cmp byte [0x1054f9d0], 0
je 0x10103113
mov eax, dword [0x1054e040]
movss xmm0, dword [0x1055c250]
subss xmm0, dword [eax + 0x10]
mov eax, dword [0x1054dfe0]
mov eax, dword [eax + 0x30]
movss dword [ebp - 0x40], xmm0
mov dword [ebp - 0x34], eax
test eax, eax
je 0x101027cd
nop
mov edi, dword [eax + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + edi], 0
jne 0x10102790
xor edx, edx
test ecx, ecx
je 0x101027c0
nop dword [eax]
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x101027a0
cmp esi, 0xec694f73
je 0x10102864
mov eax, dword [ebp - 0x34]
mov eax, dword [eax + 4]
mov dword [ebp - 0x34], eax
test eax, eax
jne 0x10102780
mov edi, dword [ebp - 0x14]
xor ecx, ecx
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x14], eax
call dword [ebp - 0x14]
mov eax, dword [0x1054e040]
mov ecx, dword [0x1055c298]
fstp dword [ebp - 0x14]
movss xmm0, dword [eax + 0x10]
mov eax, 0x64
subss xmm0, dword [0x1055c254]
cmp ecx, eax
cmovg ecx, eax
xor eax, eax
test ecx, ecx
divss xmm0, dword [ebp - 0x14]
cmovg eax, ecx
cmp byte [0x1054f9d0], 0
mov dword [0x1055c298], eax
movss dword [ebp - 0x14], xmm0
je 0x10102834
cmp byte [0x1055c248], 0
jne 0x10102834
xorps xmm0, xmm0
movss dword [ebp - 0x40], xmm0
movss dword [ebp - 0x14], xmm0
movss xmm2, dword [0x102c13d0]
mov eax, dword [0x1055c7e8]
subss xmm2, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movaps xmm0, xmm2
movss dword [ebp - 0x34], xmm2
mulss xmm0, dword [0x102c15ec]
comiss xmm0, xmm1
jbe 0x1010286f
inc eax
jmp 0x10102871
mov ecx, dword [ebp - 0x34]
mov edi, dword [ebp - 0x14]
jmp 0x101027cf
xor eax, eax
mov ecx, dword [0x1055c7cc]
mov dword [0x1055c7e8], eax
call fcn.1011e370
mov eax, dword [0x103f64e8]
movss xmm3, dword [0x102c1704]
push 0
push 0
movss xmm2, dword [eax + 0x19d8]
push 0x102b85a4
push ecx
lea ecx, [ebp - 0x20]
mov dword [esp], 0xbf800000
push ecx
mov ecx, dword [eax + 0x19d4]
call fcn.1013bf80
movss xmm1, dword [0x1055c7d4]
xorps xmm2, xmm2
comiss xmm2, xmm1
movss xmm5, dword [0x1055c7d8]
movss xmm6, dword [0x1055c7dc]
movss xmm7, dword [0x1055c7e0]
movss xmm0, dword [0x102c13d0]
jbe 0x101028eb
xorps xmm4, xmm4
jmp 0x101028f2
movaps xmm4, xmm0
minss xmm4, xmm1
comiss xmm2, xmm5
movss xmm1, dword [0x102c1678]
movss xmm3, dword [0x102c137c]
mulss xmm4, xmm1
addss xmm4, xmm3
cvttss2si ecx, xmm4
jbe 0x10102918
xorps xmm4, xmm4
jmp 0x1010291f
movaps xmm4, xmm0
minss xmm4, xmm5
mulss xmm4, xmm1
addss xmm4, xmm3
cvttss2si eax, xmm4
shl eax, 8
or ecx, eax
comiss xmm2, xmm6
jbe 0x1010293a
xorps xmm4, xmm4
jmp 0x10102941
movaps xmm4, xmm0
minss xmm4, xmm6
mulss xmm4, xmm1
addss xmm4, xmm3
cvttss2si eax, xmm4
shl eax, 0x10
or ecx, eax
comiss xmm2, xmm7
jbe 0x1010295c
xorps xmm0, xmm0
jmp 0x10102960
minss xmm0, xmm7
movss xmm4, dword [0x1055c94c]
movss xmm5, dword [0x1055c938]
movss xmm6, dword [0x1055c93c]
movss xmm7, dword [0x102c1574]
mulss xmm0, xmm1
movaps xmm1, xmm4
mulss xmm1, xmm3
addss xmm0, xmm3
addss xmm1, xmm6
cvttss2si esi, xmm0
movaps xmm0, xmm5
movss dword [ebp - 0x38], xmm1
shl esi, 0x18
addss xmm0, xmm7
or esi, ecx
movss dword [ebp - 0x3c], xmm0
test esi, 0xff000000
je 0x10102a1f
movss xmm2, dword [0x102c158c]
lea eax, [ebp - 0x3c]
push 0xb3
push ecx
mov dword [esp], 0x40c7f1e6
xorps xmm3, xmm3
push eax
mov ecx, edi
call fcn.101376f0
push ecx
mov dword [esp], 0x40000000
mov ecx, edi
push 1
push esi
push dword [edi + 0x54]
push dword [edi + 0x5c]
call fcn.101360d0
movss xmm3, dword [0x102c137c]
movss xmm7, dword [0x102c1574]
mov dword [edi + 0x54], 0
movss xmm4, dword [0x1055c94c]
movss xmm6, dword [0x1055c93c]
movss xmm5, dword [0x1055c938]
movss xmm2, dword [0x102c1588]
addss xmm5, xmm7
mulss xmm4, xmm3
lea eax, [ebp - 0x3c]
push 0
push ecx
mov dword [esp], 0x42040000
mov ecx, edi
addss xmm4, xmm6
movaps xmm1, xmm5
push 0xff000000
addss xmm1, xmm2
subss xmm5, xmm2
push eax
movaps xmm0, xmm4
lea eax, [ebp - 0x48]
addss xmm0, xmm2
subss xmm4, xmm2
movss dword [ebp - 0x3c], xmm1
push eax
movss dword [ebp - 0x48], xmm5
movss dword [ebp - 0x38], xmm0
movss dword [ebp - 0x44], xmm4
call fcn.10138120
movaps xmm0, xmmword [0x102c1c10]
lea ecx, [ebp - 0x50]
movups xmmword [ebp - 0x50], xmm0
call fcn.10112320
movss xmm1, dword [0x1055c94c]
mulss xmm1, dword [0x102c137c]
push 0
movss xmm2, dword [ebp - 0x1c]
mulss xmm2, dword [0x102c137c]
push ecx
addss xmm1, dword [0x1055c93c]
movss xmm0, dword [0x1055c938]
mov ecx, edi
addss xmm0, dword [0x102c1530]
mov dword [esp], 0
push 0
push 0x102b85a4
push eax
subss xmm1, xmm2
movss dword [ebp - 0x38], xmm2
lea eax, [ebp - 0x48]
movss dword [ebp - 0x48], xmm0
push eax
push 0
xorps xmm2, xmm2
movss dword [ebp - 0x44], xmm1
call fcn.10138790
movss xmm0, dword [ebp - 0x14]
movss xmm2, dword [0x102c137c]
comiss xmm2, xmm0
movss xmm1, dword [0x102c1678]
movaps xmm3, xmm1
jb 0x10102b22
addss xmm0, xmm0
mulss xmm0, xmm1
movaps xmm4, xmm0
jmp 0x10102b35
subss xmm0, xmm2
movaps xmm4, xmm1
addss xmm0, xmm0
mulss xmm0, xmm1
subss xmm3, xmm0
movss xmm0, dword [0x1055c94c]
sub esp, 0x14
divss xmm3, xmm1
mov eax, esp
divss xmm4, xmm1
mulss xmm0, xmm2
movss xmm1, dword [ebp - 0x38]
addss xmm0, dword [0x1055c93c]
cvttss2si edx, xmm0
movss xmm0, dword [0x1055c938]
addss xmm0, dword [0x102c1574]
movss dword [eax], xmm4
movss dword [eax + 4], xmm3
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0x3f800000
cvttss2si ecx, xmm0
movss xmm0, dword [ebp - 0x34]
mulss xmm0, dword [0x102c169c]
cvttss2si eax, xmm0
movaps xmm0, xmm1
addss xmm0, dword [0x102c1530]
addss xmm1, dword [0x102c1518]
push eax
push ecx
cvttss2si eax, xmm0
push eax
cvttss2si eax, xmm1
push eax
call fcn.100fc890
add esp, 0x24
call fcn.1011e430
mov esi, dword [0x103f64e8]
mov dword [ebp - 0x54], 5
mov eax, dword [esi + 0x1c48]
lea ecx, [esi + 0x1d70]
mov byte [eax + 0xc5], 1
mov eax, dword [esi + 0x1c48]
movss xmm2, dword [eax + 0x44]
movss xmm0, dword [eax + 0x48]
subss xmm0, dword [eax + 0x94]
subss xmm2, dword [eax + 0x90]
addss xmm0, dword [0x102c15fc]
addss xmm2, dword [0x102c15f8]
movss dword [eax + 0x10c], xmm0
movss dword [eax + 0x108], xmm2
movss xmm1, dword [eax + 0x124]
maxss xmm1, xmm0
movss xmm0, dword [eax + 0x120]
maxss xmm0, xmm2
movss dword [eax + 0x124], xmm1
movss dword [eax + 0x120], xmm0
lea eax, [ebp - 0x54]
movss xmm0, dword [0x1055c7d4]
movss xmm3, dword [0x1055c7e0]
mulss xmm3, dword [0x102c13a4]
push eax
movss xmm1, dword [0x1055c7d8]
movss xmm2, dword [0x1055c7dc]
movss dword [ebp - 0x28], xmm0
movups xmm0, xmmword [esi + 0x16ac]
movss dword [ebp - 0x24], xmm1
movss dword [ebp - 0x20], xmm2
movss dword [ebp - 0x1c], xmm3
movups xmmword [ebp - 0x50], xmm0
call fcn.1010c480
movups xmm0, xmmword [ebp - 0x28]
lea eax, [ebp - 0x24]
mov dword [ebp - 0x24], 6
push eax
movups xmmword [esi + 0x16ac], xmm0
mov esi, dword [0x103f64e8]
movss xmm0, dword [esi + 0x15c0]
lea ecx, [esi + 0x1d7c]
movss dword [ebp - 0x20], xmm0
call fcn.1012df30
mov dword [esi + 0x15c0], 0x41200000
mov esi, dword [0x103f64e8]
mov dword [ebp - 0x24], 7
movss xmm0, dword [esi + 0x15c4]
lea ecx, [esi + 0x1d7c]
movss dword [ebp - 0x20], xmm0
lea eax, [ebp - 0x24]
push eax
call fcn.1012df30
mov dword [esi + 0x15c4], 0x3fc00000
xor edx, edx
mov esi, dword [0x103f64e8]
mov dword [ebp - 0x48], 0x432a0000
mov dword [ebp - 0x44], 0x42840000
mov eax, dword [esi + 0x1c48]
mov byte [eax + 0xc5], 1
mov eax, dword [esi + 0x1c48]
mov ecx, dword [eax + 0xfc]
mov eax, dword [eax + 0x104]
push dword [eax + ecx*4 - 4]
mov ecx, str.MainBombWnd
call fcn.10111d40
add esp, 4
cmp dword [esi + 0x1c84], eax
jne 0x10102d64
mov dword [esi + 0x1c88], eax
cmp dword [esi + 0x1cbc], eax
jne 0x10102d73
mov byte [esi + 0x1cc0], 1
push 0
lea edx, [ebp - 0x48]
mov ecx, str.MainBombWnd
push 1
push edx
mov edx, eax
call fcn.10118090
mov ecx, dword [0x1055c7e4]
call fcn.1011e370
mov ecx, dword [0x103f64e8]
add esp, 4
mov eax, dword [ecx + 0x1c48]
mov byte [eax + 0xc5], 1
mov eax, dword [ecx + 0x1c48]
movss xmm0, dword [eax + 0x48]
subss xmm0, dword [eax + 0x94]
movss xmm2, dword [eax + 0x44]
subss xmm2, dword [eax + 0x90]
addss xmm0, dword [0x102c154c]
addss xmm2, dword [0x102c1530]
movss dword [eax + 0x10c], xmm0
movss dword [eax + 0x108], xmm2
movss xmm1, dword [eax + 0x124]
maxss xmm1, xmm0
movss xmm0, dword [eax + 0x120]
maxss xmm0, xmm2
movss dword [eax + 0x124], xmm1
movss dword [eax + 0x120], xmm0
movss xmm0, dword [ebp - 0x40]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push str.Time:__.1fs
call fcn.101409b0
mov ecx, dword [0x103f64e8]
add esp, 0xc
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov eax, dword [ecx + 0x1c48]
mov byte [eax + 0xc5], 1
mov eax, dword [ecx + 0x1c48]
mov ecx, 1
movss xmm0, dword [eax + 0x48]
subss xmm0, dword [eax + 0x94]
movss xmm2, dword [eax + 0x44]
subss xmm2, dword [eax + 0x90]
addss xmm0, dword [0x102c1594]
addss xmm2, dword [0x102c1530]
movss dword [eax + 0x10c], xmm0
movss dword [eax + 0x108], xmm2
movss xmm1, dword [eax + 0x124]
maxss xmm1, xmm0
movss xmm0, dword [eax + 0x120]
maxss xmm0, xmm2
movss dword [eax + 0x124], xmm1
movss dword [eax + 0x120], xmm0
mov eax, 0x1055c29c
cmp dword [0x1055c2ac], ecx
xorps xmm0, xmm0
movups xmmword [ebp - 0x30], xmm0
cmovb ecx, dword [0x1055c2ac]
cmp dword [0x1055c2b0], 0x10
push ecx
cmovae eax, dword [0x1055c29c]
lea ecx, [ebp - 0x30]
push eax
call fcn.100bd420
mov dword [ebp - 4], 1
lea eax, [ebp - 0x30]
cmp dword [ebp - 0x1c], 0x10
cmovae eax, dword [ebp - 0x30]
push eax
push str.Site:__s
call fcn.101409b0
mov dword [ebp - 4], 0xffffffff
add esp, 8
mov ecx, dword [ebp - 0x1c]
cmp ecx, 0x10
jb 0x10102f44
mov edx, dword [ebp - 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10102f3a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10103133
push ecx
push edx
call fcn.101fb2ba
add esp, 8
mov ecx, dword [0x103f64e8]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0xf
mov byte [ebp - 0x30], 0
mov eax, dword [ecx + 0x1c48]
mov byte [eax + 0xc5], 1
mov eax, dword [ecx + 0x1c48]
movss xmm0, dword [eax + 0x44]
subss xmm0, dword [eax + 0x90]
movss xmm2, dword [eax + 0x48]
subss xmm2, dword [eax + 0x94]
addss xmm0, dword [0x102c15f8]
addss xmm2, dword [0x102c154c]
movss dword [eax + 0x108], xmm0
movss dword [eax + 0x10c], xmm2
movss xmm1, dword [eax + 0x120]
maxss xmm1, xmm0
movss xmm0, dword [eax + 0x124]
maxss xmm0, xmm2
movss dword [eax + 0x120], xmm1
movss dword [eax + 0x124], xmm0
push dword [0x1055c298]
push str.Dmg:__ihp
call fcn.101409b0
mov ecx, dword [0x103f64e8]
lea edx, [ebp - 0x24]
add esp, 8
mov eax, dword [ecx + 0x1c48]
mov byte [eax + 0xc5], 1
mov eax, dword [ecx + 0x1c48]
movss xmm0, dword [eax + 0x44]
subss xmm0, dword [eax + 0x90]
movss xmm2, dword [eax + 0x48]
subss xmm2, dword [eax + 0x94]
addss xmm0, dword [0x102c15f8]
addss xmm2, dword [0x102c1594]
movss dword [eax + 0x108], xmm0
movss dword [eax + 0x10c], xmm2
movss xmm1, dword [eax + 0x120]
maxss xmm1, xmm0
movss xmm0, dword [eax + 0x124]
maxss xmm0, xmm2
movss dword [eax + 0x120], xmm1
movss dword [eax + 0x124], xmm0
mov ecx, dword [0x10311640]
test ecx, ecx
je 0x1010308c
mov eax, dword [0x1054e4a8]
add eax, 0xffffffd7
xor eax, 0xab5b25
movq xmm0, qword [eax + ecx]
mov eax, dword [eax + ecx + 8]
movq qword [ebp - 0x24], xmm0
mov dword [ebp - 0x1c], eax
jmp 0x101030a1
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
movq xmm0, qword [0x1055c25c]
sub esp, 0xc
mov eax, dword [0x1055c264]
mov ecx, esp
sub esp, 0xc
movq qword [ecx], xmm0
movq xmm0, qword [edx]
mov dword [ecx + 8], eax
mov ecx, esp
mov eax, dword [edx + 8]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
call fcn.101e0df0
cvtss2sd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
push str.Dist:__.0fft
call fcn.101409b0
add esp, 0xc
call fcn.1011e430
call fcn.101182b0
mov ecx, 1
call fcn.101129e0
mov ecx, 1
call fcn.101129e0
mov ecx, 1
call fcn.10112910
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.101fae3a
mov esp, ebp
pop ebp
ret
call fcn.10201dbe
call fcn.10201dbe
int3