Function at 0x1002fba9
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10188aa5
mov eax, dword fs:[0]
push eax
sub esp, 0x44
mov eax, dword [0x102a67c0]
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, ecx
mov dword [ebp - 0x50], eax
cmp byte [0x10c0295c], 0
je 0x1003025a
cmp byte [eax], 0
je 0x10030257
xorps xmm0, xmm0
mov dword [ebp - 0x30], 0
movups xmmword [ebp - 0x40], xmm0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
mov eax, dword [0x10c02960]
dec eax
mov dword [ebp - 4], 0
cmp eax, 6
ja case.default.0x1002f984
jmp dword [eax*4 + 0x10030278]
lea eax, [ebp - 0x28]
mov ecx, 0x101e5cd0
push eax
call fcn.1002f670
cmp dword [ebp - 0x14], 0xf
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 1
cmova eax, dword [ebp - 0x28]
push eax
call fcn.1002f810
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0
call fcn.10023b60
lea eax, [ebp - 0x28]
mov ecx, 0x101e5ce8
push eax
call fcn.1002a0c0
mov byte [ebp - 4], 2
jmp 0x1002fbed
lea eax, [ebp - 0x28]
mov ecx, 0x101e5d00
push eax
call fcn.1002a0c0
mov byte [ebp - 4], 3
jmp 0x1002fbed
lea eax, [ebp - 0x28]
mov ecx, 0x101e5d18
push eax
call fcn.1002f1a0
mov byte [ebp - 4], 4
jmp 0x1002fbed
lea eax, [ebp - 0x28]
mov ecx, 0x101e5d30
push eax
call fcn.1002a0c0
mov byte [ebp - 4], 5
jmp 0x1002fbed
lea eax, [ebp - 0x28]
mov ecx, 0x101e5d48
push eax
call fcn.10029ff0
mov byte [ebp - 4], 6
jmp 0x1002fbed
lea eax, [ebp - 0x28]
mov ecx, 0x101e5d60
push eax
call fcn.10029ff0
cmp dword [ebp - 0x14], 0xf
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 7
cmova eax, dword [ebp - 0x28]
push eax
call fcn.1002f810
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0
call fcn.10023b60
lea eax, [ebp - 0x28]
mov ecx, 0x101e5d78
push eax
call fcn.10029ff0
cmp dword [ebp - 0x14], 0xf
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 8
cmova eax, dword [ebp - 0x28]
push eax
call fcn.1002f810
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0
call fcn.10023b60
cmp byte [0x101e5d90], 0
je 0x1002fb1f
cmp byte [0x101e5d91], 0
jne 0x1002fb8d
xor esi, esi
mov byte [0x101e5d91], 1
mov dword [ebp - 0x44], esi
nop word [eax + eax]
xor esi, dword [0x101e5da8]
xor edi, edi
xor edi, dword [0x101e5dac]
xor esi, 0x1de26cd5
xor edi, 0xd28f2c5
mov eax, esi
mov ecx, edi
shld ecx, eax, 0xd
xor edi, ecx
shl eax, 0xd
xor esi, eax
mov edx, edi
mov ecx, esi
shrd ecx, edx, 7
xor ecx, esi
shr edx, 7
mov esi, dword [ebp - 0x44]
xor edx, edi
mov dword [ebp - 0x48], ecx
shld edx, ecx, 0x11
shl ecx, 0x11
xor cl, byte [esi + 0x101e5d92]
xor cl, byte [ebp - 0x48]
mov byte [esi + 0x101e5d92], cl
inc esi
mov dword [ebp - 0x44], esi
cmp esi, 0x14
jb 0x1002fac0
jmp 0x1002fb8d
xor esi, esi
mov dword [ebp - 0x44], esi
nop dword [eax]
nop dword [eax + eax]
xor esi, dword [0x101e5da8]
xor edi, edi
xor edi, dword [0x101e5dac]
xor esi, 0x1de26cd5
xor edi, 0xd28f2c5
mov eax, esi
mov ecx, edi
shld ecx, eax, 0xd
xor edi, ecx
shl eax, 0xd
xor esi, eax
mov edx, edi
mov ecx, esi
shrd ecx, edx, 7
xor ecx, esi
shr edx, 7
mov esi, dword [ebp - 0x44]
xor edx, edi
mov dword [ebp - 0x48], ecx
shld edx, ecx, 0x11
shl ecx, 0x11
xor cl, byte [esi + 0x101e5d92]
xor cl, byte [ebp - 0x48]
mov byte [esi + 0x101e5d92], cl
inc esi
mov dword [ebp - 0x44], esi
cmp esi, 0x14
jb 0x1002fb30
lea eax, [ebp - 0x49]
push eax
push 0x101e5da5
push 0x101e5d92
lea ecx, [ebp - 0x28]
call fcn.10027a10
mov byte [ebp - 4], 9
jmp 0x1002fbed
lea eax, [ebp - 0x28]
mov ecx, 0x101e5db0
push eax
call fcn.1002f1a0
cmp dword [ebp - 0x14], 0xf
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0xa
cmova eax, dword [ebp - 0x28]
push eax
call fcn.1002f810
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0
call fcn.10023b60
lea eax, [ebp - 0x28]
mov ecx, 0x101e5dc8
push eax
call fcn.1002a0c0
mov byte [ebp - 4], 0xb
cmp dword [ebp - 0x14], 0xf
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x40]
cmova eax, dword [ebp - 0x28]
push eax
call fcn.1002f810
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0
call fcn.10023b60
mov eax, dword [0x10c02964]
dec eax
cmp eax, 3
ja case.default.0x1002fc1c
jmp dword [eax*4 + 0x10030294]
lea eax, [ebp - 0x28]
mov ecx, 0x101e5de0
push eax
call fcn.1002a0c0
mov byte [ebp - 4], 0xc
jmp 0x1002fcdb
lea eax, [ebp - 0x28]
mov ecx, 0x101e5df8
push eax
call fcn.10029ff0
mov byte [ebp - 4], 0xd
jmp 0x1002fcdb
lea eax, [ebp - 0x28]
mov ecx, 0x101e5e10
push eax
call fcn.10029ff0
cmp dword [ebp - 0x14], 0xf
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0xe
cmova eax, dword [ebp - 0x28]
push eax
call fcn.1002f810
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0
call fcn.10023b60
lea eax, [ebp - 0x28]
mov ecx, 0x101e5e28
push eax
call fcn.10029ff0
mov byte [ebp - 4], 0xf
jmp 0x1002fcdb
lea eax, [ebp - 0x28]
mov ecx, 0x101e5e40
push eax
call fcn.1002f670
cmp dword [ebp - 0x14], 0xf
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x10
cmova eax, dword [ebp - 0x28]
push eax
call fcn.1002f810
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0
call fcn.10023b60
lea eax, [ebp - 0x28]
mov ecx, 0x101e5e58
push eax
call fcn.1002f740
mov byte [ebp - 4], 0x11
cmp dword [ebp - 0x14], 0xf
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x40]
cmova eax, dword [ebp - 0x28]
push eax
call fcn.1002f810
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0
call fcn.10023b60
test byte [0x10c02968], 1
je 0x1002fd55
lea eax, [ebp - 0x28]
mov ecx, 0x101e5e78
push eax
call fcn.1002f740
cmp dword [ebp - 0x14], 0xf
lea edx, [ebp - 0x28]
mov byte [ebp - 4], 0x12
cmova edx, dword [ebp - 0x28]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1002fd26
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x40]
call fcn.1002a830
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], 0
cmp eax, 0xf
jbe 0x1002fd55
push eax
push dword [ebp - 0x28]
lea eax, [ebp - 0x28]
push eax
call fcn.100163b0
add esp, 0xc
test byte [0x10c02968], 2
je 0x1002fdaf
lea eax, [ebp - 0x28]
mov ecx, 0x101e5e98
push eax
call fcn.10029ff0
cmp dword [ebp - 0x14], 0xf
lea edx, [ebp - 0x28]
mov byte [ebp - 4], 0x13
cmova edx, dword [ebp - 0x28]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1002fd80
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x40]
call fcn.1002a830
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], 0
cmp eax, 0xf
jbe 0x1002fdaf
push eax
push dword [ebp - 0x28]
lea eax, [ebp - 0x28]
push eax
call fcn.100163b0
add esp, 0xc
test byte [0x10c02968], 4
je 0x1002ff06
cmp byte [0x101e5eb0], 0
je 0x1002fe44
cmp byte [0x101e5eb1], 0
jne 0x1002fead
xor esi, esi
mov byte [0x101e5eb1], 1
mov dword [ebp - 0x44], esi
xor esi, dword [0x101e5ec8]
xor edi, edi
xor edi, dword [0x101e5ecc]
xor esi, 0x1de26cd5
xor edi, 0xd28f2c5
mov eax, esi
mov ecx, edi
shld ecx, eax, 0xd
xor edi, ecx
shl eax, 0xd
xor esi, eax
mov edx, edi
mov ecx, esi
shrd ecx, edx, 7
xor ecx, esi
shr edx, 7
mov esi, dword [ebp - 0x44]
xor edx, edi
mov dword [ebp - 0x48], ecx
shld edx, ecx, 0x11
shl ecx, 0x11
xor cl, byte [esi + 0x101e5eb2]
xor cl, byte [ebp - 0x48]
mov byte [esi + 0x101e5eb2], cl
inc esi
mov dword [ebp - 0x44], esi
cmp esi, 0x10
jb 0x1002fde2
jmp 0x1002fead
xor esi, esi
mov dword [ebp - 0x44], esi
nop dword [eax]
xor esi, dword [0x101e5ec8]
xor edi, edi
xor edi, dword [0x101e5ecc]
xor esi, 0x1de26cd5
xor edi, 0xd28f2c5
mov eax, esi
mov ecx, edi
shld ecx, eax, 0xd
xor edi, ecx
shl eax, 0xd
xor esi, eax
mov edx, edi
mov ecx, esi
shrd ecx, edx, 7
xor ecx, esi
shr edx, 7
mov esi, dword [ebp - 0x44]
xor edx, edi
mov dword [ebp - 0x48], ecx
shld edx, ecx, 0x11
shl ecx, 0x11
xor cl, byte [esi + 0x101e5eb2]
xor cl, byte [ebp - 0x48]
mov byte [esi + 0x101e5eb2], cl
inc esi
mov dword [ebp - 0x44], esi
cmp esi, 0x10
jb 0x1002fe50
lea eax, [ebp - 0x49]
push eax
push 0x101e5ec1
push 0x101e5eb2
lea ecx, [ebp - 0x28]
call fcn.10027a10
cmp dword [ebp - 0x14], 0xf
lea edx, [ebp - 0x28]
mov byte [ebp - 4], 0x14
cmova edx, dword [ebp - 0x28]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1002fed7
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x40]
call fcn.1002a830
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], 0
cmp eax, 0xf
jbe 0x1002ff06
push eax
push dword [ebp - 0x28]
lea eax, [ebp - 0x28]
push eax
call fcn.100163b0
add esp, 0xc
test byte [0x10c02968], 8
je 0x1002ffb5
lea eax, [ebp - 0x28]
mov ecx, 0x101e5ed0
push eax
call fcn.1002a190
cmp dword [ebp - 0x14], 0xf
lea edx, [ebp - 0x28]
mov byte [ebp - 4], 0x15
cmova edx, dword [ebp - 0x28]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1002ff35
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x40]
call fcn.1002a830
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], 0
cmp eax, 0xf
jbe 0x1002ff64
push eax
push dword [ebp - 0x28]
lea eax, [ebp - 0x28]
push eax
call fcn.100163b0
add esp, 0xc
lea eax, [ebp - 0x28]
mov ecx, 0x101e5ee8
push eax
call fcn.1002f5a0
cmp dword [ebp - 0x14], 0xf
lea edx, [ebp - 0x28]
mov byte [ebp - 4], 0x16
cmova edx, dword [ebp - 0x28]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1002ff86
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x40]
call fcn.1002a830
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], 0
cmp eax, 0xf
jbe 0x1002ffb5
push eax
push dword [ebp - 0x28]
lea eax, [ebp - 0x28]
push eax
call fcn.100163b0
add esp, 0xc
test byte [0x10c02968], 0x10
je 0x10030110
cmp byte [0x101e5f08], 0
je 0x10030052
cmp byte [0x101e5f09], 0
jne 0x100300b7
xor esi, esi
mov byte [0x101e5f09], 1
mov dword [ebp - 0x44], esi
nop dword [eax + eax]
xor esi, dword [0x101e5f20]
xor edi, edi
xor edi, dword [0x101e5f24]
xor esi, 0x1de26cd5
xor edi, 0xd28f2c5
mov eax, esi
mov ecx, edi
shld ecx, eax, 0xd
xor edi, ecx
shl eax, 0xd
xor esi, eax
mov edx, edi
mov ecx, esi
shrd ecx, edx, 7
xor ecx, esi
shr edx, 7
mov esi, dword [ebp - 0x44]
xor edx, edi
mov dword [ebp - 0x48], ecx
shld edx, ecx, 0x11
shl ecx, 0x11
xor cl, byte [esi + str.FT]
xor cl, byte [ebp - 0x48]
mov byte [esi + str.FT], cl
inc esi
mov dword [ebp - 0x44], esi
cmp esi, 0x13
jb 0x1002fff0
jmp 0x100300b7
xor esi, esi
mov dword [ebp - 0x44], esi
nop word [eax + eax]
xor esi, dword [0x101e5f20]
xor edi, edi
xor edi, dword [0x101e5f24]
xor esi, 0x1de26cd5
xor edi, 0xd28f2c5
mov eax, esi
mov ecx, edi
shld ecx, eax, 0xd
xor edi, ecx
shl eax, 0xd
xor esi, eax
mov edx, edi
mov ecx, esi
shrd ecx, edx, 7
xor ecx, esi
shr edx, 7
mov esi, dword [ebp - 0x44]
xor edx, edi
mov dword [ebp - 0x48], ecx
shld edx, ecx, 0x11
shl ecx, 0x11
xor cl, byte [ebp - 0x48]
xor byte [esi + str.FT], cl
inc esi
mov dword [ebp - 0x44], esi
cmp esi, 0x13
jb 0x10030060
lea eax, [ebp - 0x49]
push eax
push 0x101e5f1c
push str.FT
lea ecx, [ebp - 0x28]
call fcn.10027a10
cmp dword [ebp - 0x14], 0xf
lea edx, [ebp - 0x28]
mov byte [ebp - 4], 0x17
cmova edx, dword [ebp - 0x28]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100300e1
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x40]
call fcn.1002a830
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], 0
cmp eax, 0xf
jbe 0x10030110
push eax
push dword [ebp - 0x28]
lea eax, [ebp - 0x28]
push eax
call fcn.100163b0
add esp, 0xc
test byte [0x10c02968], 0x20
je 0x1003016f
lea eax, [ebp - 0x28]
mov ecx, 0x101e5f28
push eax
call fcn.1002a0c0
cmp dword [ebp - 0x14], 0xf
lea edx, [ebp - 0x28]
mov byte [ebp - 4], 0x18
cmova edx, dword [ebp - 0x28]
mov ecx, edx
lea esi, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10030140
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x40]
call fcn.1002a830
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], 0
cmp eax, 0xf
jbe 0x1003016f
push eax
push dword [ebp - 0x28]
lea eax, [ebp - 0x28]
push eax
call fcn.100163b0
add esp, 0xc
test byte [0x10c02968], 0x40
je 0x100301cf
lea eax, [ebp - 0x28]
mov ecx, 0x101e5f40
push eax
call fcn.1002a190
cmp dword [ebp - 0x14], 0xf
lea edx, [ebp - 0x28]
mov byte [ebp - 4], 0x19
cmova edx, dword [ebp - 0x28]
mov ecx, edx
lea esi, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100301a0
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x40]
call fcn.1002a830
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], 0
cmp eax, 0xf
jbe 0x100301cf
push eax
push dword [ebp - 0x28]
lea eax, [ebp - 0x28]
push eax
call fcn.100163b0
add esp, 0xc
mov eax, dword [0x102a7958]
lea esi, [ebp - 0x40]
add eax, 0xabc5fa12
mov dword [ebp - 0x48], 0x72
xor eax, 0x5b1c6e88
cmp dword [ebp - 0x2c], 0xf
cmova esi, dword [ebp - 0x40]
mov edi, dword [eax + 0xc8]
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x44]
push edi
push eax
call fcn.100ee230
add esp, 0xc
mov ecx, edi
mov eax, dword [eax]
push 0
push esi
call eax
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 4], 0xffffffff
cmp ecx, 0xf
jbe 0x10030254
mov edx, dword [ebp - 0x40]
inc ecx
mov eax, edx
mov dword [ebp - 4], 0x1a
cmp ecx, 0x1000
jb 0x1003024a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1003024a
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.101847fa
add esp, 8
mov eax, dword [ebp - 0x50]
mov byte [eax], 0
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.10184b39
mov esp, ebp
pop ebp
ret