Function at 0x1002ba10
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x100f35f7
mov eax, dword fs:[0]
push eax
sub esp, 0x9a8
mov eax, dword [0x10139d00]
xor eax, esp
mov dword [esp + 0x9a0], eax
push ebx
push esi
push edi
mov eax, dword [0x10139d00]
xor eax, esp
push eax
lea eax, [esp + 0x9b8]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov edi, ecx
xor ebx, ebx
mov dword [esp + 0x14], eax
cmp edi, ebx
je 0x1002bead
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x1002ba68
sub eax, edx
mov dword [esp + 0x30], eax
cmp eax, 0x5a
jne 0x1002ba7d
add edi, 2
push 0x134
lea ecx, [esp + 0x170]
push ebx
push ecx
call fcn.100d4cc0
add esp, 0xc
push 0x134
lea edx, [esp + 0x38]
push ebx
push edx
mov dword [esp + 0x9cc], ebx
call fcn.100d4cc0
add esp, 0xc
lea esi, [esp + 0x4fc]
call fcn.1004ac60
push 0x140
lea eax, [esp + 0x3c0]
push ebx
push eax
call fcn.100d4cc0
add esp, 0xc
lea ecx, [esp + 0x18]
push ecx
mov byte [esp + 0x9c4], 3
call fcn.1002a470
lea edx, [esp + 0x18]
push edx
push edi
mov byte [esp + 0x9c8], 4
call fcn.1002ad70
add esp, 8
test al, al
jne 0x1002bb6d
mov eax, dword [esp + 0x24]
cmp eax, ebx
je 0x1002bb0c
push eax
call fcn.100d072d
add esp, 4
mov eax, dword [esp + 0x18]
push eax
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
call fcn.100d072d
add esp, 4
mov eax, 0x118
lea ecx, [esp + 0x3dc]
dec eax
mov byte [ecx], bl
inc ecx
cmp eax, ebx
jne 0x1002bb31
mov eax, 0x140
lea ecx, [esp + 0x3bc]
dec eax
mov byte [ecx], bl
inc ecx
cmp eax, ebx
jne 0x1002bb45
mov eax, 0x270
lea ecx, [esp + 0x4fc]
lea esp, [esp]
dec eax
mov byte [ecx], bl
inc ecx
cmp eax, ebx
jne 0x1002bb60
jmp 0x1002be98
lea ecx, [esp + 0x4fc]
push ecx
mov ecx, str.ecdh
lea esi, [esp + 0x3c0]
call fcn.1004afe0
add esp, 4
test eax, eax
je 0x1002bbbd
lea esi, [esp + 0x18]
call fcn.1002a4d0
lea ecx, [esp + 0x3bc]
call fcn.1002ad20
mov eax, 0x270
lea ecx, [esp + 0x4fc]
mov edi, edi
dec eax
mov byte [ecx], bl
inc ecx
cmp eax, ebx
jne 0x1002bbb0
jmp 0x1002be98
lea eax, [esp + 0x16c]
call fcn.1004b6e0
test eax, eax
jne 0x1002be6a
lea eax, [esp + 0x34]
call fcn.1004b6e0
test eax, eax
jne 0x1002be6a
push 0x18
push 0x101af45c
lea eax, [esp + 0x1f0]
call fcn.1004bef0
add esp, 8
test eax, eax
je 0x1002bc2d
lea esi, [esp + 0x18]
call fcn.1002a4d0
lea ecx, [esp + 0x3bc]
call fcn.1002ad20
mov eax, 0x270
lea ecx, [esp + 0x4fc]
lea ecx, [ecx]
dec eax
mov byte [ecx], bl
inc ecx
cmp eax, ebx
jne 0x1002bc20
jmp 0x1002be98
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
sub edx, esi
jne 0x1002bc42
call fcn.100d13c5
mov esi, dword [esp + 0x24]
push 0x31
lea eax, [esp + 0x38]
push esi
push eax
lea edi, [esp + 0xc8]
call fcn.1004db20
add esp, 0xc
cmp eax, ebx
je 0x1002bc8d
lea esi, [esp + 0x18]
call fcn.1002a4d0
lea ecx, [esp + 0x3bc]
call fcn.1002ad20
mov eax, 0x270
lea ecx, [esp + 0x4fc]
mov edi, edi
dec eax
mov byte [ecx], bl
inc ecx
cmp eax, ebx
jne 0x1002bc80
jmp 0x1002be98
lea ecx, [esp + 0x3bc]
push ecx
lea edx, [esp + 0x1ec]
push edx
lea eax, [esp + 0x10c]
push eax
lea eax, [esp + 0xc8]
lea ecx, [esp + 0x40]
call fcn.1004aad0
add esp, 0xc
test eax, eax
je 0x1002bced
lea esi, [esp + 0x18]
call fcn.1002a4d0
lea ecx, [esp + 0x3bc]
call fcn.1002ad20
mov eax, 0x270
lea ecx, [esp + 0x4fc]
lea ecx, [ecx]
dec eax
mov byte [ecx], bl
inc ecx
cmp eax, ebx
jne 0x1002bce0
jmp 0x1002be98
lea eax, [esp + 0x104]
call fcn.1004be60
lea ecx, [esp + 0x104]
push ecx
lea ecx, [esp + 0x7b0]
mov edi, eax
call fcn.1004bff0
add esp, 4
test eax, eax
je 0x1002bd44
lea esi, [esp + 0x18]
call fcn.1002a4d0
lea ecx, [esp + 0x3bc]
call fcn.1002ad20
mov eax, 0x270
lea ecx, [esp + 0x4fc]
dec eax
mov byte [ecx], bl
inc ecx
cmp eax, ebx
jne 0x1002bd37
jmp 0x1002be98
lea edx, [esp + 0x76c]
mov ecx, edi
lea ebx, [esp + 0x7ac]
call fcn.10052ac0
push 0x118
lea edx, [esp + 0x2a8]
push 0
push edx
call fcn.100d4cc0
lea eax, [esp + 0x778]
add esp, 0xc
push eax
lea eax, [esp + 0x2a8]
call fcn.10049cb0
add esp, 4
lea ecx, [esp + 0x76c]
push ecx
lea edx, [esp + 0x2a8]
lea ecx, [esi + 0x31]
push edx
call fcn.1004a3f0
add esp, 8
cmp dword [esp + 0x30], 0x5a
jne 0x1002bde6
lea eax, [esp + 0x76c]
xor ecx, ecx
sub esi, eax
lea eax, [esp + ecx + 0x76c]
mov dl, byte [esi + eax]
xor byte [eax], dl
inc ecx
cmp ecx, 0x10
jl 0x1002bdb4
mov ecx, dword [ebp + 0xc]
mov edi, dword [esp + 0x14]
lea eax, [esp + 0x76c]
push eax
push 0x10
push str._.s
call fcn.1001ef80
add esp, 0xc
jmp 0x1002be1b
xor ebx, ebx
xor esi, esi
lea ebx, [ebx]
movzx ecx, byte [esp + ebx + 0x76c]
mov edx, dword [esp + 0x14]
push ecx
mov ecx, dword [ebp + 0xc]
push str._.2x
sub ecx, esi
lea edi, [esi + edx]
call fcn.1001ef80
add esi, 2
add esp, 8
inc ebx
cmp esi, 0x20
jb 0x1002bdf0
lea ecx, [esp + 0x2a4]
call fcn.1002ad50
lea esi, [esp + 0x18]
call fcn.1002a4d0
lea ecx, [esp + 0x3bc]
call fcn.1002ad20
mov eax, 0x270
lea ecx, [esp + 0x4fc]
dec eax
mov byte [ecx], 0
inc ecx
test eax, eax
jne 0x1002be48
lea edi, [esp + 0x34]
call fcn.1004aba0
lea edi, [esp + 0x16c]
call fcn.1004aba0
mov al, 1
jmp 0x1002beaf
lea esi, [esp + 0x18]
call fcn.1002a4d0
lea ecx, [esp + 0x3bc]
call fcn.1002ad20
mov eax, 0x270
lea ecx, [esp + 0x4fc]
jmp 0x1002be90
dec eax
mov byte [ecx], bl
inc ecx
cmp eax, ebx
jne 0x1002be90
lea edi, [esp + 0x34]
call fcn.1004aba0
lea edi, [esp + 0x16c]
call fcn.1004aba0
xor al, al
mov ecx, dword [esp + 0x9b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x9a0]
xor ecx, esp
call fcn.100d0738
mov esp, ebp
pop ebp
ret