Function at 0x1007c000
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x44
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], 0x1009a6a0
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov ecx, dword [0x1028770c]
mov edx, dword [0x10287710]
mov eax, ecx
xor eax, 0xffffffff
mov esi, ecx
xor esi, 0xffffffff
or eax, esi
xor eax, 0xffffffff
mov esi, edx
xor esi, 0xffffffff
or eax, esi
xor ecx, 0xffffffff
or ecx, edx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov edx, eax
and edx, 0x6a38a1fc
mov ecx, eax
or ecx, 0x6a38a1fc
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x95c75e03
or eax, 0x95c75e03
imul eax, edx
add eax, ecx
mov edx, eax
xor edx, 0xffffffff
and edx, 0xfed0275f
mov ecx, eax
and ecx, 0x12fd8a0
imul ecx, edx
mov edx, eax
and edx, 0xfed0275f
or eax, 0xfed0275f
imul eax, edx
add eax, ecx
sub eax, 0xc868c6f0
cmp eax, 0xd9a253d1
ja 0x1007c450
mov edx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x24]
mov eax, dword [0x10287714]
mov ebx, dword [0x10287718]
mov esi, ebx
not esi
mov ecx, eax
and ecx, esi
mov esi, eax
xor esi, ebx
add eax, esi
sub eax, ecx
mov esi, eax
not esi
and esi, 0x23288219
mov ecx, eax
and ecx, 0xdcd77de6
imul ecx, esi
mov esi, eax
and esi, 0x23288219
or eax, 0x23288219
imul eax, esi
add eax, ecx
mov ecx, eax
not ecx
mov esi, eax
or esi, 0x541ff1a
mov ebx, esi
and ebx, 0x413e4cc9
and ecx, 0xba800024
imul ecx, ebx
and esi, 0xbec1b336
or eax, 0xbfc1ff3e
imul eax, esi
add eax, ecx
push eax
mov esi, esp
mov dword [ebp - 0x38], esi
push eax
mov ecx, esp
mov dword [ebp - 0x34], ecx
sub esp, 0x34
mov ebx, esp
mov dword [ebp - 0x30], ebx
push eax
mov ebx, esp
mov dword [ebp - 0x2c], ebx
mov dword [esi], edi
mov dword [ecx], edx
cmp dword [ecx], 0
setne cl
mov byte [ebp - 0x25], cl
cmp eax, 0xf90210b5
jae 0x1007c450
mov al, byte [ebp - 0x25]
test al, 1
jne 0x1007c181
jmp 0x1007c43a
mov ecx, dword [ebp - 0x34]
mov eax, dword [0x10287724]
xor edx, edx
div dword [str.AR_f]
add eax, 0x888a0bec
add eax, 0xdc8f991c
sub eax, 0xf2435c27
sub eax, 0xdc8f991c
or eax, 0x75c2dcba
mov ecx, dword [ecx]
cmp dword [ecx], 0
setne cl
mov byte [ebp - 0x39], cl
cmp eax, 0xac8e0457
jb 0x1007c465
mov al, byte [ebp - 0x39]
test al, 1
jne 0x1007c43a
jmp 0x1007c1d0
mov eax, dword [0x1028772c]
xor edx, edx
div dword [0x10287730]
imul eax, eax, 0xe6cba3c8
mov ecx, 0xf4bb4d20
xor edx, edx
div ecx
mov ecx, eax
mov eax, ecx
and eax, 0xe5c0de13
xor ecx, 0xffffffff
and ecx, 0x1a3f21ec
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
mov dword [ebp - 0x10], 0xffffffff
cmp eax, 0x323da7c2
jbe 0x1007c46a
mov eax, dword [0x10287734]
xor edx, edx
div dword [0x10287738]
mov ecx, 0xfd93c5c4
xor edx, edx
div ecx
sub eax, 0x5becc82f
sub eax, 0x1b41433c
add eax, 0x5becc82f
mov ecx, eax
and ecx, 0x37a38801
mov edx, eax
xor edx, 0xc85c77fe
add eax, edx
sub eax, ecx
mov dword [ebp - 0x44], eax
sub esp, 4
mov dword [esp], 8
call fcn.100b5a0e
mov ecx, dword [ebp - 0x2c]
add esp, 4
mov edx, eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x48], edx
mov byte [ecx], 1
mov ecx, dword [eax]
call fcn.100404f0
mov ecx, eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x40], ecx
cmp eax, 0xca73e614
jbe 0x1007c218
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x10], 0
sub esp, 4
mov eax, esp
mov dword [eax], edx
call fcn.10040940
jmp 0x1007c2ac
mov ecx, dword [0x1028773c]
and ecx, dword [0x10287740]
mov eax, ecx
and eax, 0x8932cdf9
shl eax, 1
add ecx, 0x8932cdf9
sub ecx, eax
mov eax, ecx
xor eax, 0xffffffff
or eax, 0x6a00bf76
xor eax, 0xffffffff
xor ecx, 0xffffffff
and ecx, 0x6a00bf76
or eax, ecx
xor eax, 0xffffffff
mov ecx, eax
and ecx, 0x2e6c5484
mov edx, eax
xor edx, 0xd193ab7b
add eax, edx
sub eax, ecx
cmp eax, 0xac799202
jb 0x1007c491
mov eax, dword [0x10287744]
sub eax, dword [0x10287748]
sub eax, 0x6ad83ce9
add eax, 0x95761441
add eax, 0x6ad83ce9
mov ecx, eax
xor ecx, 0x4ca954ba
and eax, 0xb356ab45
shl eax, 1
sub eax, ecx
sub eax, 0xbfd95816
cmp eax, 0xb1278f43
jae 0x1007c303
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x10], 1
sub esp, 8
mov eax, esp
mov dword [eax], edx
mov dword [eax + 4], 0
call fcn.1007c600
jmp 0x1007c363
mov eax, dword [0x1028774c]
xor edx, edx
div dword [0x10287750]
mov edx, eax
mov ecx, edx
xor ecx, 0xffffffff
mov eax, ecx
and eax, 0x2b7bf1e7
and edx, 0xd4840e18
or eax, edx
xor eax, 0xc4691486
or ecx, 0x10ed1a9e
xor ecx, 0xffffffff
or eax, ecx
add eax, 0x5fc58751
add eax, 0x5ca2c69
sub eax, 0x5fc58751
xor eax, 0xffffffff
or eax, 0xa1c9d19a
xor eax, 0xffffffff
cmp eax, 0x5d55a7c3
ja 0x1007c496
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x2c]
mov edi, dword [0x10287754]
xor edi, dword [0x10287758]
xor edi, 0xffffffff
or edi, 0x32826998
xor edi, 0xffffffff
mov eax, edi
and eax, 0x1efab2f7
mov ebx, edi
or ebx, 0x1efab2f7
xor ebx, 0xffffffff
imul ebx, eax
mov eax, edi
and eax, 0xe1054d08
or edi, 0xe1054d08
imul edi, eax
mov eax, dword [ebp - 0x34]
add edi, ebx
sub edi, 0xc0219d7
add edi, 0xa257183a
add edi, 0xc0219d7
mov dword [ebp - 0x4c], edi
mov byte [esi], 0
mov eax, dword [eax]
mov dword [eax], edx
call fcn.10040e10
mov eax, dword [ebp - 0x4c]
cmp eax, 0x1b8338c
jbe 0x1007c3bb
jmp 0x1007c43a
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, 2
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x24]
push eax
mov edx, esp
push eax
mov eax, esp
mov dword [edx], esi
mov dword [eax], ecx
jmp 0x1007c0ca
jmp 0x1007c181
sub esp, 4
mov dword [esp], 8
call fcn.100b5a0e
mov ecx, dword [ebp - 0x2c]
add esp, 4
mov eax, dword [ebp - 0x38]
mov byte [ecx], 1
mov ecx, dword [eax]
call fcn.100404f0
jmp 0x1007c218
jmp 0x1007c303
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x34]
mov esi, dword [ebp - 0x2c]
mov byte [esi], 0
mov eax, dword [eax]
mov dword [eax], edx
call fcn.10040e10
jmp 0x1007c3bb