Function at 0x101a62d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3c
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, ecx
push 0x20
mov byte [edi], 1
mov dword [edi + 4], 0
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
mov dword [edi + 0x18], 0
mov dword [edi + 0x1c], 0
mov dword [edi + 0x20], 0
mov dword [edi + 0x24], 0
mov dword [edi + 0x28], 0
mov dword [edi + 0x2c], 0
mov dword [edi + 0x30], 0
mov dword [edi + 0x34], 0
mov dword [edi + 0x38], 0
mov word [edi + 0x3c], 0
mov byte [edi + 0x3e], 0
mov dword [edi + 0x40], 0
mov dword [edi + 0x44], 0
mov dword [edi + 0x48], 0
mov byte [edi + 0x4c], 0
mov dword [edi + 0x50], 0
mov word [edi + 0x54], 0x101
mov byte [edi + 0x56], 0
mov dword [edi + 0x58], eax
call fcn.100bbe75
mov dword [edi + 0x5c], eax
mov dl, 0x1b
mov byte [esp + 0x14], 0x7e
mov al, 0xb
xor al, byte [esp + 0x14]
mov ah, 0x10
mov byte [esp + 0x15], al
mov bh, dl
mov al, byte [esp + 0x14]
mov cl, 0xd
xor ah, al
mov byte [esp + 0x1d], 0
mov ch, 0x1f
mov byte [esp + 0x19], ah
mov dh, 0x13
mov byte [esp + 0x1d], 0
mov bl, 0xc
xor cl, al
xor dl, al
mov byte [esp + 0x16], cl
xor bl, al
mov byte [esp + 0x17], dl
xor ch, al
mov byte [esp + 0x18], bl
xor dh, al
mov byte [esp + 0x1a], ch
xor bh, al
mov byte [esp + 0x1b], dh
lea eax, [esp + 0x15]
mov byte [esp + 0x1c], bh
push eax
call fcn.100f8be6
push eax
push 0x20
push dword [edi + 0x5c]
call fcn.100084a0
push 1
call fcn.100bbd3c
mov ecx, dword [0x103280e4]
add esp, 0x18
mov dword [0x103280e4], eax
test ecx, ecx
je 0x101a6415
push 1
push ecx
call fcn.100bb9a0
add esp, 8
movaps xmm0, xmmword [0x102cd7d0]
xor ecx, ecx
movups xmmword [esp + 0x1c], xmm0
mov dword [esp + 0x2c], 0x220d0e
nop dword [eax + eax]
mov al, byte [esp + 0x1c]
xor byte [esp + ecx + 0x1d], al
inc ecx
cmp ecx, 0x12
jb 0x101a6430
lea esi, [esp + 0x1d]
mov byte [esp + 0x2f], 0
mov ecx, esi
mov byte [esp + 0x10], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x101a6451
sub ecx, edx
push ecx
push esi
push dword [esp + 0x18]
lea ecx, [esp + 0x3c]
call fcn.10007e40
add esp, 0xc
mov dword [esp + 0x10], 0
lea edx, [esp + 0x10]
mov dword [esp + 0x14], 0x102d6bc8
lea ecx, [esp + 0x30]
call fcn.10008ce0
cmp dword [esp + 0x10], 0
jne 0x101a6f83
lea ecx, [esp + 0x30]
call fcn.1000b3d0
push 0x10126c10
call dword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
push 0x258
call fcn.100bbd3c
add esp, 4
mov ecx, eax
call fcn.101ab8d0
mov esi, dword [0x103280f8]
mov dword [0x103280f8], eax
test esi, esi
je 0x101a6501
lea ecx, [esi + 0x248]
call fcn.1002e380
lea ecx, [esi + 0x23c]
call fcn.1002e3e0
lea ecx, [esi + 0x230]
call fcn.1002e440
mov ecx, esi
call fcn.1002e0b0
push 0x258
push esi
call fcn.100bb9a0
add esp, 8
push 0x240
call fcn.100bbd3c
add esp, 4
mov ecx, eax
call fcn.101b1420
mov esi, dword [0x103280fc]
mov dword [0x103280fc], eax
test esi, esi
je 0x101a6544
lea ecx, [esi + 0x230]
call fcn.1002e310
mov ecx, esi
call fcn.1002e0b0
push 0x240
push esi
call fcn.100bb9a0
add esp, 8
push 0x28
call fcn.100bbd3c
add esp, 4
mov ecx, eax
call fcn.101ac820
mov ecx, dword [0x103280cc]
mov dword [0x103280cc], eax
test ecx, ecx
je 0x101a656a
push ecx
call fcn.10002a70
push 0x74
call fcn.100bbd3c
add esp, 4
mov ecx, eax
call fcn.101a1270
mov ecx, dword [0x103280d8]
mov dword [0x103280d8], eax
test ecx, ecx
je 0x101a6595
push 0x74
push ecx
call fcn.100bb9a0
add esp, 8
push 0x10
call fcn.100bbd3c
mov esi, eax
add esp, 4
mov byte [esi], 1
call fcn.101bbd50
mov eax, dword [0x10328100]
mov dword [0x10328100], esi
test eax, eax
je 0x101a65c3
push 0x10
push eax
call fcn.100bb9a0
add esp, 8
push 1
call fcn.100bbd3c
mov ecx, dword [edi + 4]
add esp, 4
mov dword [edi + 4], eax
test ecx, ecx
je 0x101a65e2
push 1
push ecx
call fcn.100bb9a0
add esp, 8
push 0xb8
call fcn.100bbd3c
mov esi, eax
push 8
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
call fcn.100bbd3c
add esp, 8
mov dword [esi + 0xac], 0
mov dword [esi + 0xb0], 0
mov dword [esi + 0xb4], 0
mov dword [eax + 4], 0
mov dword [esi], eax
mov dword [eax], esi
mov dword [esi + 0x34], 0
mov dword [esi + 0x38], 0
mov dword [esi + 0x5c], 0
mov dword [esi + 0x60], 0
mov dword [esi + 0x84], 0
mov dword [esi + 0x88], 0
mov ebx, dword [edi + 8]
mov dword [edi + 8], esi
test ebx, ebx
je 0x101a6729
mov ecx, dword [ebx + 0x88]
or esi, 0xffffffff
mov dword [esp + 0x10], ecx
test ecx, ecx
je 0x101a66b1
mov eax, esi
lock xadd dword [ecx + 4], eax
jne 0x101a66b1
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [esp + 0x10]
mov eax, esi
lock xadd dword [ecx + 8], eax
jne 0x101a66b1
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebx + 0x60]
mov dword [esp + 0x10], ecx
test ecx, ecx
je 0x101a66db
mov eax, esi
lock xadd dword [ecx + 4], eax
jne 0x101a66db
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [esp + 0x10]
mov eax, esi
lock xadd dword [ecx + 8], eax
jne 0x101a66db
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebx + 0x38]
mov dword [esp + 0x10], ecx
test ecx, ecx
je 0x101a6704
mov eax, esi
lock xadd dword [ecx + 4], eax
jne 0x101a6704
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [esp + 0x10]
lock xadd dword [ecx + 8], esi
dec esi
jne 0x101a6704
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, ebx
call fcn.100367b0
mov eax, dword [ebx]
push 8
push eax
mov dword [ebx], 0
call fcn.100bb9a0
push 0xb8
push ebx
call fcn.100bb9a0
add esp, 0x10
push 0x40
call fcn.100bbd3c
add esp, 4
mov dword [eax + 4], 0
mov dword [eax + 8], 1
mov byte [eax + 0x18], 0
mov byte [eax + 0x30], 0
mov dword [eax + 0x34], 0
mov byte [eax + 0x39], 0
mov dword [eax + 0x3c], 0
mov ecx, dword [edi + 0xc]
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x28], 0
mov dword [edi + 0xc], eax
test ecx, ecx
je 0x101a6785
push 0x40
push ecx
call fcn.100bb9a0
add esp, 8
push 0x169c
call fcn.100bbd3c
mov edx, eax
add esp, 4
mov ecx, 0x5a
mov dword [edx], 0
lea eax, [edx + 0x30]
mov dword [edx + 8], 0
mov dword [edx + 0xc], 0
mov dword [edx + 0x10], 0
mov word [edx + 0x14], 0
nop dword [eax]
mov dword [eax - 8], 0
lea eax, [eax + 0x40]
mov dword [eax - 0x44], 0
mov dword [eax - 0x40], 0
mov dword [eax - 0x3c], 0
mov dword [eax - 0x38], 0
mov dword [eax - 0x34], 0
mov dword [eax - 0x30], 0
mov dword [eax - 0x2c], 0
mov dword [eax - 0x28], 0
mov dword [eax - 0x24], 0
mov dword [eax - 0x20], 0
mov dword [eax - 0x1c], 0
sub ecx, 1
jne 0x101a67c0
mov esi, dword [edi + 0x10]
mov dword [edi + 0x10], edx
test esi, esi
je 0x101a6887
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x101a6879
mov eax, dword [esi + 0x10]
sub eax, ecx
sar eax, 2
lea edx, [eax*4]
cmp edx, 0x1000
jb 0x101a685a
mov ebx, dword [ecx - 4]
add edx, 0x23
sub ecx, ebx
lea eax, [ecx - 4]
cmp eax, 0x1f
ja 0x101a6f7e
mov ecx, ebx
push edx
push ecx
call fcn.100bb9a0
mov dword [esi + 8], 0
add esp, 8
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
push 0x169c
push esi
call fcn.100bb9a0
add esp, 8
push 0xdc
call fcn.100bbd3c
add esp, 4
mov ecx, eax
call fcn.101996e0
mov ecx, dword [edi + 0x14]
mov dword [edi + 0x14], eax
test ecx, ecx
je 0x101a68ab
push ecx
call fcn.10061cc0
push 0x24
call fcn.100bbd3c
mov esi, eax
push 8
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
call fcn.100bbd3c
add esp, 8
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [eax + 4], 0
mov dword [esi], eax
mov dword [eax], esi
mov ebx, dword [edi + 0x18]
mov dword [edi + 0x18], esi
test ebx, ebx
je 0x101a691c
mov ecx, ebx
call fcn.1005c010
push 0x24
push ebx
call fcn.100bb9a0
add esp, 8
push 0x8ec
call fcn.100bbd3c
add esp, 4
mov ecx, eax
call fcn.101378b0
mov esi, dword [edi + 0x1c]
mov dword [edi + 0x1c], eax
test esi, esi
je 0x101a6953
lea ecx, [esi + 0x8c4]
call fcn.1002d610
push 0x8ec
push esi
call fcn.100bb9a0
add esp, 8
push 0x18
call fcn.100bbd3c
add esp, 4
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
mov esi, dword [edi + 0x20]
mov dword [edi + 0x20], eax
test esi, esi
je 0x101a69aa
lea ecx, [esi + 0xc]
call fcn.10036590
mov ecx, esi
call fcn.1007a650
push 0x18
push esi
call fcn.100bb9a0
add esp, 8
push 0x6c
call fcn.100bbd3c
mov ebx, eax
lea esi, [ebx + 0x38]
mov dword [esi], 0
push 8
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x28], 0
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0x30], 0
mov dword [ebx + 0x34], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
call fcn.100bbd3c
push 0x90
mov dword [eax + 4], 0
mov dword [esi], eax
mov dword [eax], esi
mov dword [ebx + 0x4c], 0
mov dword [ebx + 0x50], 0x3f800000
mov dword [ebx + 0x54], 0
mov dword [ebx + 0x58], 0
mov dword [ebx + 0x5c], 0
mov dword [ebx + 0x60], 0
mov byte [ebx + 0x64], 0
mov dword [ebx + 0x68], 0
call fcn.100bbd3c
add esp, 0xc
mov dword [eax], 0
mov dword [eax + 0x74], 0xffffffff
mov dword [eax + 0x30], 0
mov dword [eax + 0x38], 0
mov dword [eax + 0x2c], 0xffffffff
mov dword [eax + 0x34], 0xffffffff
mov byte [eax + 0x70], 1
mov dword [eax + 0x78], 0
mov ecx, dword [ebx + 0x4c]
mov dword [eax + 0x14], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x1c], 0
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x28], 0
mov dword [eax + 0x7c], 0
mov dword [eax + 0x80], 0
mov dword [eax + 0x84], 0
mov dword [ebx + 0x4c], eax
test ecx, ecx
je 0x101a6b17
push 0x90
push ecx
call fcn.100bb9a0
add esp, 8
mov eax, dword [edi + 0x24]
mov dword [edi + 0x24], ebx
mov ebx, eax
test ebx, ebx
je 0x101a6b7f
mov eax, dword [ebx + 0x4c]
test eax, eax
je 0x101a6b38
push 0x90
push eax
call fcn.100bb9a0
add esp, 8
lea ecx, [ebx + 0x38]
call fcn.10077ab0
mov eax, dword [ebx + 0x38]
push 8
push eax
mov dword [ebx + 0x38], 0
call fcn.100bb9a0
add esp, 8
lea ecx, [ebx + 0x2c]
call fcn.100776d0
lea ecx, [ebx + 0x20]
call fcn.10036590
lea ecx, [ebx + 0xc]
call fcn.10077790
mov ecx, ebx
call fcn.10077790
push 0x6c
push ebx
call fcn.100bb9a0
add esp, 8
push 0x74
call fcn.100bbd3c
add esp, 4
mov ecx, eax
call fcn.10126810
mov ecx, dword [edi + 0x28]
mov dword [edi + 0x28], eax
test ecx, ecx
je 0x101a6ba0
push ecx
call fcn.10061ab0
push 8
call fcn.100bbd3c
mov ecx, dword [0x103368f4]
mov esi, eax
add esp, 4
mov dword [esi + 4], 0
lea ebx, [esi + 4]
test ecx, ecx
jne 0x101a6bda
push str.shaderapidx9.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
add eax, 0xbc40
call eax
mov ecx, dword [eax]
mov dword [0x103368f4], ecx
push ebx
mov dword [esi], ecx
mov eax, dword [ecx]
push 1
push ecx
call dword [eax + 0xec]
mov eax, dword [edi + 0x2c]
mov dword [edi + 0x2c], esi
test eax, eax
je 0x101a6bfd
push 8
push eax
call fcn.100bb9a0
add esp, 8
push 4
call fcn.100bbd3c
mov ecx, dword [edi + 0x30]
add esp, 4
mov dword [edi + 0x30], eax
test ecx, ecx
je 0x101a6c1c
push 4
push ecx
call fcn.100bb9a0
add esp, 8
push 0x1c
call fcn.100bbd3c
add esp, 4
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x18], 0
mov ecx, dword [edi + 0x34]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
mov dword [edi + 0x34], eax
test ecx, ecx
je 0x101a6c79
push 0x1c
push ecx
call fcn.100bb9a0
add esp, 8
push 1
call fcn.100bbd3c
mov ecx, dword [edi + 0x38]
add esp, 4
mov dword [edi + 0x38], eax
test ecx, ecx
je 0x101a6c98
push 1
push ecx
call fcn.100bb9a0
add esp, 8
push 1
call fcn.100bbd3c
mov ecx, dword [0x103280ec]
add esp, 4
mov dword [0x103280ec], eax
test ecx, ecx
je 0x101a6cbc
push 1
push ecx
call fcn.100bb9a0
add esp, 8
push 0x38
call fcn.100bbd3c
add esp, 4
mov ecx, eax
call fcn.101a50d0
mov esi, dword [0x103280d0]
mov dword [0x103280d0], eax
test esi, esi
je 0x101a6d06
lea ecx, [esi + 0x24]
call fcn.1005deb0
lea ecx, [esi + 0x1c]
call fcn.1005dfd0
lea ecx, [esi + 0xc]
call fcn.1005e070
mov ecx, esi
call fcn.1005e150
push 0x38
push esi
call fcn.100bb9a0
add esp, 8
push 0x3c
call fcn.100bbd3c
mov ebx, eax
lea esi, [ebx + 4]
mov dword [esi], 0
push 8
mov dword [ebx], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
call fcn.100bbd3c
push 8
mov dword [eax + 4], 0
mov dword [esi], eax
mov dword [eax], esi
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x28], 0
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0x30], 0
mov dword [ebx + 0x34], 0
mov byte [ebx + 0x38], 0
call fcn.100bbd3c
xor ecx, ecx
add esp, 0xc
mov byte [eax], 0
mov word [eax + 2], cx
mov ecx, dword [ebx]
mov dword [ebx], eax
test ecx, ecx
je 0x101a6dae
push 8
push ecx
call fcn.100bb9a0
add esp, 8
mov eax, dword [0x103280c8]
mov dword [0x103280c8], ebx
test eax, eax
je 0x101a6dc3
push eax
call fcn.100018f0
push 1
call fcn.100bbd3c
mov ecx, dword [0x103280d4]
add esp, 4
mov dword [0x103280d4], eax
test ecx, ecx
je 0x101a6de7
push 1
push ecx
call fcn.100bb9a0
add esp, 8
push 0x1c
call fcn.100bbd3c
mov esi, eax
push 8
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
call fcn.100bbd3c
push 4
mov dword [eax + 4], 0
mov dword [esi], eax
mov dword [eax], esi
mov dword [esi + 0x14], 0
call fcn.100bbd3c
add esp, 0xc
mov dword [eax], 0x102cbbe8
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x14], eax
test ecx, ecx
je 0x101a6e4b
mov eax, dword [ecx]
push 1
call dword [eax]
push 0x102c7480
mov ecx, esi
call fcn.101a5e80
push str.player_death
mov ecx, esi
call fcn.101a5e80
push str.bullet_impact
mov ecx, esi
call fcn.101a5e80
push str.hostage_follows
mov ecx, esi
call fcn.101a5e80
push str.hostage_stops_following
mov ecx, esi
call fcn.101a5e80
push str.weapon_fire
mov ecx, esi
call fcn.101a5e80
push str.round_start
mov ecx, esi
call fcn.101a5e80
push str.round_end
mov ecx, esi
call fcn.101a5e80
mov eax, dword [0x103280e8]
mov dword [0x103280e8], esi
test eax, eax
je 0x101a6ec0
push eax
call fcn.100234a0
push 0x130
call fcn.100bbd3c
add esp, 4
mov ecx, eax
call fcn.1019e700
mov esi, dword [0x103280e0]
mov dword [0x103280e0], eax
test esi, esi
je 0x101a6ef8
mov ecx, esi
call fcn.1019f310
push 0x130
push esi
call fcn.100bb9a0
add esp, 8
push 0x18
call fcn.100e7b73
mov ecx, 0x2439ce64
push 0x18
movups xmm0, xmmword [ecx]
movups xmmword [eax], xmm0
movq xmm0, qword [ecx + 0x10]
movq qword [eax + 0x10], xmm0
mov dword [0x2439ce64], 0x10327fc0
mov dword [0x2439ce68], 2
mov dword [0x2439ce70], eax
call fcn.100e7b73
mov ecx, 0x2439dd70
add esp, 8
movups xmm0, xmmword [ecx]
movups xmmword [eax], xmm0
movq xmm0, qword [ecx + 0x10]
movq qword [eax + 0x10], xmm0
mov dword [0x2439dd70], 0x10327ef0
mov dword [0x2439dd74], 4
mov dword [0x2439dd7c], eax
mov eax, 0x2412a980
call eax
mov eax, 0x2412b110
call eax
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
call fcn.100cb508
lea eax, [esp + 0x30]
mov ecx, str.create_directories
push eax
lea edx, [esp + 0x14]
call fcn.1000b4c0
int3