Function at 0x100637e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x60
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x20], eax
mov eax, esp
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x100968d0
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov eax, dword [0x102803ec]
xor ecx, ecx
sub ecx, dword [0x102803f0]
add eax, ecx
xor eax, 0x1d95e7a
mov edx, eax
xor edx, 0xffffffff
and edx, 0x30d7fcb6
mov ecx, eax
and ecx, 0xcf280349
imul ecx, edx
mov edx, eax
and edx, 0x30d7fcb6
or eax, 0x30d7fcb6
imul eax, edx
add eax, ecx
add eax, 0x51d9ba60
sub eax, 0xd18dc718
sub eax, 0x51d9ba60
cmp eax, 0xf362cc0f
ja 0x10063c28
mov ebx, dword [ebp - 0x28]
mov edi, dword [ebp - 0x20]
mov eax, dword [0x102803f4]
mov edx, dword [0x102803f8]
mov ecx, edx
and ecx, eax
add eax, edx
sub eax, ecx
mov ecx, 0x48addc77
mul ecx
shr edx, 0x1e
imul ecx, edx, 0x4da3fbb3
mov eax, ecx
xor eax, 0x7406a7e7
and eax, ecx
mov dword [ebp - 0x30], eax
push eax
mov eax, esp
mov dword [ebp - 0x38], eax
push eax
mov eax, esp
mov dword [ebp - 0x40], eax
push eax
mov eax, esp
mov dword [ebp - 0x3c], eax
push eax
mov eax, esp
push eax
mov ecx, esp
push eax
mov edx, esp
push eax
mov esi, esp
mov dword [ebp - 0x50], esi
push eax
mov esi, esp
mov dword [ebp - 0x4c], esi
push eax
mov esi, esp
mov dword [ebp - 0x48], esi
push eax
mov esi, esp
mov dword [ebp - 0x44], esi
mov esi, dword [ebp - 0x40]
mov dword [esi], edi
mov edi, dword [ebp - 0x24]
mov esi, dword [ebp - 0x3c]
mov dword [esi], edi
mov edi, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x38]
mov dword [eax], ebx
mov dword [ecx], edi
mov ecx, dword [ecx]
mov dword [ebp - 0x34], ecx
mov dword [esi], ecx
mov eax, dword [eax]
sub esp, 8
mov dl, byte [edx]
mov byte [esp], dl
mov dword [esp + 4], eax
call fcn.1002efe0
mov eax, dword [ebp - 0x30]
cmp eax, 0xed36825
ja 0x1006387a
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x40]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.1005ce20
add esp, 8
mov eax, dword [0x10280404]
xor edx, edx
div dword [0x10280408]
mov edx, eax
mov eax, dword [ebp - 0x40]
and edx, 0x61169d8a
sub edx, 0xb14cde45
add edx, 0x137cb45d
add edx, 0xb14cde45
mov ecx, edx
and ecx, 0x415df124
xor edx, 0x415df124
or ecx, edx
mov dword [ebp - 0x58], ecx
sub esp, 4
mov dword [esp], eax
call fcn.1005cf70
mov ecx, dword [ebp - 0x50]
add esp, 4
mov edx, eax
mov eax, dword [ebp - 0x3c]
mov dword [ecx], edx
sub esp, 4
mov dword [esp], eax
call fcn.1005cf70
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x4c]
add esp, 4
mov esi, eax
mov eax, dword [ebp - 0x58]
mov dword [edx], esi
mov ecx, dword [ecx]
cmp ecx, dword [edx]
sete cl
mov byte [ebp - 0x51], cl
cmp eax, 0x63951394
jae 0x10063939
mov al, byte [ebp - 0x51]
test al, 1
jne 0x100639ce
jmp 0x100639db
mov ecx, dword [ebp - 0x34]
call fcn.10031890
jmp 0x10063ba1
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x4c]
mov eax, dword [0x10280424]
sub eax, dword [0x10280428]
and eax, 0x96bf6f42
mov esi, eax
and esi, 0x2a93b73d
mov edi, eax
xor edi, 0xd56c48c2
add eax, edi
sub eax, esi
mov edi, eax
and edi, 0x6e495248
mov esi, eax
or esi, 0x6e495248
xor esi, 0xffffffff
imul esi, edi
mov edi, eax
and edi, 0x91b6adb7
or eax, 0x91b6adb7
imul eax, edi
add eax, esi
mov edx, dword [edx]
mov dword [ebp - 0x60], edx
mov ecx, dword [ecx]
mov dword [ebp - 0x5c], ecx
cmp eax, 0x5bfdc12b
je 0x10063c70
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x5c]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.1005d0c0
add esp, 8
mov dword [ebp - 0x64], eax
mov ecx, dword [0x1028042c]
mov edx, dword [0x10280430]
mov eax, ecx
and eax, edx
or ecx, edx
xor eax, 0xffffffff
and eax, ecx
mov edx, eax
xor edx, 0xffffffff
and edx, 0x2def1bb0
mov ecx, eax
and ecx, 0xd210e44f
imul ecx, edx
mov edx, eax
and edx, 0x2def1bb0
or eax, 0x2def1bb0
imul eax, edx
add eax, ecx
mov ecx, 0xc2cc1a2
xor edx, edx
div ecx
sub eax, 0x92b60f23
sub eax, 0x1e13c15
add eax, 0x92b60f23
cmp eax, 0x296d7150
jb 0x10063c75
mov esi, dword [ebp - 0x44]
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x64]
mov dword [eax], ecx
mov ecx, dword [eax]
sub esp, 4
mov eax, esp
mov dword [eax], ecx
call fcn.10026f60
mov edx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x34]
add esp, 4
mov edi, eax
mov eax, dword [ebp - 0x50]
mov dword [esi], edi
mov edi, dword [esi]
mov esi, dword [edx]
mov edx, dword [eax]
mov dword [ebp - 0x10], 0
sub esp, 0xc
mov eax, esp
mov dword [eax + 8], edi
mov dword [eax + 4], esi
mov dword [eax], edx
call fcn.1007bec0
jmp 0x10063b0c
mov eax, dword [0x1028043c]
mov edx, dword [0x10280440]
mov ecx, eax
and ecx, edx
shl ecx, 1
xor eax, edx
add eax, ecx
mov ecx, eax
xor ecx, 0xe2d4e4be
xor ecx, 0xffffffff
and ecx, 0xe2d4e4be
shl ecx, 1
sub ecx, 0xe2d4e4be
sub eax, ecx
and eax, 0xca688b17
imul eax, eax, 0xc4aa0032
cmp eax, 0x1e2bc92a
jbe 0x10063ca0
mov ecx, dword [0x10280444]
mov eax, dword [0x10280448]
add ecx, 0xb0d3a383
add ecx, eax
sub ecx, 0xb0d3a383
mov eax, ecx
xor eax, 0xffffffff
or eax, 0x8b2097ed
xor ecx, 0xffffffff
or ecx, 0x8b2097ed
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
imul eax, eax, 0x1242fae3
xor eax, 0x749649b4
cmp eax, 0xbe87f166
ja 0x10063b52
jmp 0x10063ba1
mov ecx, dword [0x1028044c]
mov edx, dword [0x10280450]
xor edx, 0xffffffff
mov eax, ecx
xor eax, edx
and eax, ecx
mov ecx, 0x10517d03
xor edx, edx
div ecx
xor eax, 0xffffffff
or eax, 0x7368531f
xor eax, 0xffffffff
and eax, 0x9e6489b5
cmp eax, 0x6a0e665d
ja 0x10063ca5
mov ecx, dword [ebp - 0x38]
mov eax, dword [0x10280454]
xor eax, dword [0x10280458]
add eax, 0x4cb78dfb
add eax, 0xa2f9d9fd
sub eax, 0x4cb78dfb
sub eax, 0x3c6c332f
xor eax, 0xc94fd54e
mov ecx, dword [ecx]
mov dword [ebp - 0x68], ecx
cmp eax, 0xbe9fb62e
jae 0x10063bda
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x18]
mov dword fs:[0], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
mov eax, dword [ebp - 0x20]
push eax
mov esi, esp
push eax
mov ebx, esp
push eax
mov edi, esp
push eax
mov ecx, esp
mov dword [ebp - 0x6c], ecx
push eax
mov ecx, esp
push eax
mov edx, esp
mov dword [ebx], eax
mov eax, dword [ebp - 0x6c]
mov ebx, dword [ebp - 0x24]
mov dword [edi], ebx
mov ebx, dword [ebp - 0x28]
mov edi, dword [ebp - 0x2c]
mov dword [eax], ebx
mov dword [ecx], edi
mov ecx, dword [ecx]
mov dword [esi], ecx
mov eax, dword [eax]
sub esp, 8
mov dl, byte [edx]
mov byte [esp], dl
mov dword [esp + 4], eax
call fcn.1002efe0
jmp 0x1006387a
jmp 0x100639db
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x64]
mov dword [eax], ecx
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call fcn.10026f60
add esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x44]
mov dword [eax], ecx
mov dword [ebp - 0x10], 0
jmp 0x10063abf
jmp 0x10063b52
jmp 0x10063bda