Function at 0x10002b70
Capabilities:
Encode data using xor

Disassembly:
push 0xffffffffffffffff
push 0x1001ccc3
mov eax, dword fs:[0]
push eax
sub esp, 0x8c
mov eax, dword [0x10025814]
xor eax, esp
mov dword [esp + 0x88], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x10025814]
xor eax, esp
push eax
lea eax, [esp + 0xa0]
mov dword fs:[0], eax
mov eax, dword [esp + 0xb4]
mov edi, dword [esp + 0xb0]
mov dword [esp + 0x18], eax
xor ebx, ebx
mov eax, 0xf
mov ebp, ecx
mov dword [esp + 0x54], eax
mov dword [esp + 0x50], ebx
mov byte [esp + 0x40], bl
mov dword [esp + 0xa8], ebx
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], ebx
mov byte [esp + 0x24], bl
lea ecx, [ebp + 0x3c]
push ecx
lea edx, [esp + 0x84]
push edx
mov ecx, ebp
mov byte [esp + 0xb0], 1
call fcn.10002aa0
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x48]
mov byte [esp + 0xb4], 2
call fcn.10001fb0
mov esi, 0x10
mov byte [esp + 0xa8], 1
cmp dword [esp + 0x98], esi
jb 0x10002c3b
mov eax, dword [esp + 0x84]
push eax
call fcn.1000f3cb
add esp, 4
cmp dword [esp + 0x54], esi
jb 0x10002c4b
mov esi, dword [esp + 0x40]
mov dword [esp + 0x14], esi
jmp 0x10002c55
lea ecx, [esp + 0x40]
mov dword [esp + 0x14], ecx
mov esi, ecx
push edi
lea edx, [esp + 0x84]
push edx
mov ecx, ebp
call fcn.10002aa0
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0xb4], 3
call fcn.10001fb0
cmp dword [esp + 0x98], 0x10
jb 0x10002c94
mov eax, dword [esp + 0x84]
push eax
call fcn.1000f3cb
add esp, 4
mov edx, dword [esp + 0x34]
xor edi, edi
cmp edx, ebx
mov dword [esp + 0x1c], edx
jle 0x10002d68
lea esi, [esp + 0x58]
lea ebx, [ebx]
cmp edi, edx
jbe 0x10002cbd
call fcn.1000f6aa
mov edx, dword [esp + 0x34]
cmp dword [esp + 0x38], 0x10
mov eax, dword [esp + 0x24]
jae 0x10002ccc
lea eax, [esp + 0x24]
mov al, byte [eax + edi]
cmp al, 0x2d
je 0x10002d59
cmp al, 0x7b
je 0x10002d59
cmp al, 0x7d
je 0x10002d59
cmp al, 0x30
mov cl, al
jl 0x10002cec
cmp al, 0x39
jg 0x10002cec
sub cl, 0x30
cmp al, 0x61
jl 0x10002cf7
cmp al, 0x66
jg 0x10002cf7
add cl, 0xa9
cmp al, 0x41
jl 0x10002d02
cmp al, 0x46
jg 0x10002d02
add cl, 0xc9
and cl, 0xf
inc edi
mov bl, cl
cmp edi, edx
jbe 0x10002d15
call fcn.1000f6aa
mov edx, dword [esp + 0x34]
cmp dword [esp + 0x38], 0x10
mov eax, dword [esp + 0x24]
jae 0x10002d24
lea eax, [esp + 0x24]
mov cl, byte [eax + edi]
cmp cl, 0x30
mov al, cl
jl 0x10002d35
cmp cl, 0x39
jg 0x10002d35
add al, 0xd0
cmp cl, 0x61
jl 0x10002d41
cmp cl, 0x66
jg 0x10002d41
add al, 0xa9
cmp cl, 0x41
jl 0x10002d4d
cmp cl, 0x46
jg 0x10002d4d
add al, 0xc9
and al, 0xf
shl bl, 4
xor al, bl
mov byte [esi], al
inc esi
xor ebx, ebx
inc edi
cmp edi, dword [esp + 0x1c]
jl 0x10002cb0
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x64]
mov dword [esp + 0x7c], edx
movzx edx, byte [esp + 0x5b]
mov dword [esp + 0x70], eax
mov byte [esp + 0x70], dl
movzx edx, byte [esp + 0x5a]
mov dword [esp + 0x74], ecx
mov byte [esp + 0x73], al
mov al, byte [esp + 0x5f]
mov byte [esp + 0x71], dl
mov byte [esp + 0x75], cl
mov cl, byte [esp + 0x5e]
mov byte [esp + 0x72], ah
mov byte [esp + 0x76], al
lea edx, [esp + 0x80]
mov byte [esi], 0x52
mov byte [esi + 4], 0x3c
xor eax, eax
mov byte [esp + 0x74], ch
mov byte [esp + 0x77], cl
sub esi, edx
lea esp, [esp]
mov dl, byte [eax + ebp + 8]
lea ecx, [esp + eax + 0x80]
xor dl, byte [esi + ecx]
inc eax
cmp eax, 0x18
mov byte [ecx], dl
jl 0x10002dd0
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x90]
mov dword [esp + 0x80], eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x6c], eax
xor eax, eax
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], edx
lea ecx, [eax + 0x10]
mov dl, byte [esp + eax + 0x88]
xor dl, byte [esp + eax + 0x70]
inc eax
sub ecx, 1
mov byte [esp + eax + 0x5f], dl
jne 0x10002e33
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x60]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x64]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x68]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x6c]
mov esi, 0x10
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
cmp dword [esp + 0x38], esi
jb 0x10002e8d
mov eax, dword [esp + 0x24]
push eax
call fcn.1000f3cb
add esp, 4
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], ebx
mov byte [esp + 0x24], 0
cmp dword [esp + 0x54], esi
jb 0x10002eb1
mov ecx, dword [esp + 0x40]
push ecx
call fcn.1000f3cb
add esp, 4
mov al, 1
mov ecx, dword [esp + 0xa0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x88]
xor ecx, esp
call fcn.1000fcdf
add esp, 0x98
ret 8