Function at 0x1007b940
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x7c
mov eax, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov eax, esp
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x100969d0
mov edx, dword fs:[0]
mov dword [ebp - 0x18], edx
mov dword fs:[0], eax
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x54], ecx
call fcn.10054e10
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x28]
add eax, 4
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x2c]
mov edx, dword [edx]
sub eax, edx
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
mov edx, dword [ebp - 0x2c]
mov edx, dword [edx]
sub eax, edx
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x50], eax
call fcn.100553b0
mov ecx, eax
mov eax, dword [ebp - 0x50]
cmp eax, ecx
jne 0x1007ba35
mov eax, dword [0x10282e7c]
mov edx, dword [0x10282e80]
mov ecx, eax
xor ecx, edx
xor ecx, 0xffffffff
or eax, edx
and eax, ecx
mov edx, eax
xor edx, 0xffffffff
and edx, 0x216fc699
mov ecx, eax
and ecx, 0xde903966
imul ecx, edx
mov edx, eax
and edx, 0x216fc699
or eax, 0x216fc699
imul eax, edx
add eax, ecx
mov ecx, 0xecd071a0
xor edx, edx
div ecx
sub eax, 0xb3130317
sub eax, 0xa95bb057
add eax, 0xb3130317
cmp eax, 0x713806a7
ja 0x1007bcbd
call fcn.100553f0
mov ecx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x38]
add eax, 1
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov dword [esp], eax
call fcn.10058290
sub esp, 4
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x24]
lea eax, [ebp - 0x40]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.10055a50
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
add eax, dword [ebp - 0x34]
add eax, 1
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x44]
add eax, dword [ebp - 0x34]
mov dword [esp], eax
call fcn.10055db0
mov ecx, eax
mov eax, dword [ebp - 0x58]
mov edx, dword [ebp - 0x24]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.1007bea0
mov eax, dword [ebp - 0x44]
add eax, dword [ebp - 0x34]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x30]
cmp eax, dword [ecx]
jne 0x1007bb36
mov ecx, dword [0x10282ea4]
mov edx, dword [0x10282ea8]
mov eax, ecx
and eax, edx
xor ecx, edx
or eax, ecx
xor eax, 0x1b598c34
sub eax, 0xa225ad50
imul eax, eax, 0xdad8cab3
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x68], ecx
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebp - 0x30]
mov ecx, dword [ecx]
mov dword [ebp - 0x60], ecx
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [ecx]
mov dword [ebp - 0x5c], ecx
cmp eax, 0xe803ff4
je 0x1007babc
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x60]
mov esi, dword [ebp - 0x64]
mov edi, dword [ebp - 0x68]
mov dword [ebp - 0x10], 0
mov eax, esp
mov dword [eax + 0xc], edi
mov dword [eax + 8], esi
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.10058b00
jmp 0x1007bb31
jmp 0x1007bc35
mov ecx, dword [0x10282eac]
mov edx, dword [0x10282eb0]
mov esi, ecx
xor esi, 0xffffffff
mov eax, edx
and eax, esi
xor edx, 0xffffffff
and ecx, edx
or eax, ecx
mov ecx, 0x726b95dd
xor edx, edx
div ecx
and eax, 0x18c422
sub eax, 0xdc538437
sub eax, 0x9cb22e90
add eax, 0xdc538437
cmp eax, 0x77da1a75
ja 0x1007bcc2
mov edi, dword [ebp - 0x24]
mov esi, dword [ebp - 0x44]
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
mov dword [ebp - 0x10], 0
mov eax, esp
mov dword [eax + 0xc], edi
mov dword [eax + 8], esi
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.10058b00
jmp 0x1007bba6
jmp 0x1007bbab
mov eax, dword [0x10282ec4]
sub eax, dword [0x10282ec8]
xor eax, 0x6e29eee1
mov ecx, 0xbf8d24b
xor edx, edx
div ecx
mov ecx, eax
mov eax, ecx
and eax, 0xfae8828b
or ecx, 0xfae8828b
add eax, ecx
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x4c], ecx
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x78], ecx
mov ecx, dword [ebp - 0x44]
add ecx, dword [ebp - 0x34]
add ecx, 1
mov dword [ebp - 0x74], ecx
mov ecx, dword [ebp - 0x30]
mov ecx, dword [ecx]
mov dword [ebp - 0x70], ecx
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x6c], ecx
cmp eax, 0xd41430e1
jb 0x1007bcc7
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x70]
mov esi, dword [ebp - 0x74]
mov edi, dword [ebp - 0x78]
mov dword [ebp - 0x10], 0
mov eax, esp
mov dword [eax + 0xc], edi
mov dword [eax + 8], esi
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.10058b00
jmp 0x1007bc30
jmp 0x1007bc35
mov ecx, dword [0x10282ecc]
mov eax, dword [0x10282ed0]
xor eax, 0xffffffff
sub eax, 0xffffffff
sub ecx, eax
add ecx, 0xcf2495ed
sub ecx, 0x8b54d1b0
sub ecx, 0xcf2495ed
mov eax, ecx
and eax, 0x42177cc9
xor ecx, 0x42177cc9
or eax, ecx
sub eax, 0x97965abd
sub eax, 0xec6d3237
add eax, 0x97965abd
cmp eax, 0x9ea1ea90
jae 0x1007bcd2
mov ecx, dword [ebp - 0x54]
mov edi, dword [ebp - 0x40]
mov esi, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x44]
mov eax, esp
mov dword [eax + 8], edi
mov dword [eax + 4], esi
mov dword [eax], edx
call fcn.10058d80
sub esp, 0xc
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x34]
add eax, ecx
mov ecx, dword [ebp - 0x18]
mov dword fs:[0], ecx
add esp, 0x7c
pop esi
pop edi
pop ebx
pop ebp
ret 8
call fcn.100553f0
jmp 0x1007bb7a
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x4c], eax
jmp 0x1007bbab
jmp 0x1007bc83