Function at 0x10060040
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x94
mov eax, dword [ebp + 0x10]
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], 0x100637a0
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 - 0x64], ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x24], eax
call fcn.100578d0
mov ecx, eax
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
add eax, 4
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 8]
mov ecx, dword [ebp - 0x38]
sub eax, ecx
mov dword [ebp - 0x3c], eax
cmp dword [ebp + 0x10], 0
jne 0x100600d0
jmp 0x10060864
mov eax, dword [ebp + 0x10]
cmp eax, dword [ebp - 0x3c]
jbe 0x1006039b
mov ecx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
sub eax, edx
mov dword [ebp - 0x40], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x68], eax
call fcn.100583b0
mov ecx, eax
mov eax, dword [ebp - 0x68]
sub ecx, dword [ebp - 0x40]
cmp eax, ecx
jbe 0x1006010a
call fcn.10058410
mov ecx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp + 0x10]
add eax, edx
mov dword [ebp - 0x44], eax
mov edx, dword [ebp - 0x44]
mov eax, esp
mov dword [eax], edx
call fcn.1005b5f0
sub esp, 4
mov dword [ebp - 0x48], eax
mov ecx, dword [ebp - 0x28]
mov eax, esp
lea edx, [ebp - 0x48]
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.10058b30
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x34]
sub eax, ecx
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x50]
add eax, ecx
mov ecx, dword [ebp + 0x10]
add eax, ecx
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x58], eax
mov edi, dword [ebp - 0x28]
mov esi, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x50]
add esi, eax
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
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.10060da0
jmp 0x1006018f
mov eax, dword [ebp - 0x4c]
add eax, dword [ebp - 0x50]
mov dword [ebp - 0x58], eax
cmp dword [ebp + 0x10], 1
jne 0x1006021e
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x38]
jne 0x1006021e
mov edi, dword [ebp - 0x28]
mov esi, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x34]
mov eax, esp
mov dword [eax + 0xc], edi
mov dword [eax + 8], esi
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.1005be10
jmp 0x100601d1
mov ecx, dword [0x10284f8c]
xor ecx, dword [0x10284f90]
mov eax, ecx
xor eax, 0xffffffff
or eax, 0x6ece6f67
xor eax, 0xffffffff
or ecx, 0x91319098
xor ecx, 0xffffffff
or eax, ecx
xor eax, 0xffffffff
and eax, 0xb0e3315f
mov ecx, eax
and ecx, 0x46416429
shl ecx, 1
add eax, 0x46416429
sub eax, ecx
cmp eax, 0x6ed983ab
jbe 0x100608e4
jmp 0x10060337
mov eax, dword [0x10284f9c]
mov ecx, dword [0x10284fa0]
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
xor eax, 0xffffffff
mov ecx, 0x6b04bab8
xor edx, edx
div ecx
add eax, 0xf64b9c2d
and eax, 0xb51b0763
cmp eax, 0x5f12c133
jb 0x100608e9
mov edi, dword [ebp - 0x28]
mov esi, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x34]
mov eax, esp
mov dword [eax + 0xc], edi
mov dword [eax + 8], esi
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.1005be10
jmp 0x10060275
mov eax, dword [0x10284fb4]
xor eax, dword [0x10284fb8]
add eax, 0x10334195
add eax, 1
mov ecx, eax
xor ecx, 0x674165f6
and eax, 0x98be9a09
shl eax, 1
sub eax, ecx
xor eax, 0xf2449dfc
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x58], ecx
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x78], ecx
mov ecx, dword [ebp - 0x4c]
add ecx, dword [ebp - 0x50]
add ecx, dword [ebp + 0x10]
mov dword [ebp - 0x74], ecx
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x70], ecx
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x6c], ecx
cmp eax, 0xf28a6b3a
ja 0x10060275
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.1005be10
jmp 0x100602f7
mov eax, dword [0x10284fc4]
xor edx, edx
div dword [0x10284fc8]
mov ecx, 0xc0414fec
xor edx, edx
div ecx
mov ecx, eax
add ecx, 0xc90ae493
mov eax, ecx
xor eax, 0xffffffff
and eax, 0x3a4ccdc1
and ecx, 0xc5b3323e
or eax, ecx
cmp eax, 0xa69fc2bb
jb 0x100602f7
jmp 0x10060337
mov eax, dword [0x10284fcc]
imul eax, dword [0x10284fd0]
sub eax, 0xf01c9967
sub eax, 0xbdd673b6
add eax, 0xf01c9967
mov ecx, eax
and ecx, 0x38950e99
xor ecx, 0xffffffff
add eax, 0x38950e99
add eax, 1
add eax, ecx
add eax, 0xc06d8479
cmp eax, 0x6a06ebfa
je 0x100608ee
mov ecx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x4c]
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.1005c0c0
sub esp, 0xc
jmp 0x100607a3
mov eax, dword [0x10284fdc]
xor edx, edx
div dword [0x10284fe0]
mov edx, eax
and edx, 0xd13e0a
mov ecx, eax
or ecx, 0xd13e0a
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0xff2ec1f5
or eax, 0xff2ec1f5
imul eax, edx
add eax, ecx
mov ecx, 0xc450a81f
xor edx, edx
div ecx
xor eax, 0xf6902090
cmp eax, 0x5476a0e1
jbe 0x100608f3
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x24]
sub eax, ecx
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp + 0x10]
cmp eax, dword [ebp - 0x5c]
jae 0x100605bc
mov eax, dword [0x10284ff4]
add eax, dword [0x10284ff8]
add eax, 0xf60b7083
add eax, 0x166cf638
mov ecx, eax
and ecx, 0xb8c77cd
mov edx, eax
xor edx, 0xf4738832
add eax, edx
sub eax, ecx
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x38]
mov edi, 0x691d0e81
sub edi, dword [ebp + 0x10]
add edi, 0x96e2f17f
add esi, edi
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
call fcn.1005be10
mov ecx, eax
mov eax, dword [ebp - 0x30]
mov dword [eax], ecx
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x38]
xor edx, edx
sub edx, dword [ebp + 0x10]
add ecx, edx
mov edx, dword [ebp - 0x24]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.1005c340
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
add ecx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x24]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.100592f0
mov eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x88], ecx
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x84], ecx
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x80], ecx
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x7c], ecx
cmp eax, 0xb63813d7
jbe 0x10060400
mov ecx, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x80]
mov esi, dword [ebp - 0x84]
mov edi, dword [ebp - 0x88]
mov dword [ebp - 0x10], 2
mov eax, esp
mov dword [eax + 0xc], edi
mov dword [eax + 8], esi
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.10060da0
jmp 0x10060501
mov eax, dword [0x1028500c]
mov ecx, dword [0x10285010]
sub eax, 0x7e6da298
sub eax, ecx
add eax, 0x7e6da298
or eax, 0xc258dee
mov ecx, 0x2ecee0c8
xor edx, edx
div ecx
add eax, 0x5323a010
sub eax, 0xfc945f36
sub eax, 0x5323a010
cmp eax, 0x6472c444
ja 0x10060903
mov eax, dword [0x1028502c]
mov edx, dword [0x10285030]
mov esi, eax
xor esi, edx
xor esi, 0xffffffff
mov ecx, edx
and ecx, esi
shl ecx, 1
sub ecx, edx
sub eax, ecx
xor eax, 0x1280f3fd
add eax, 0x90b58952
sub eax, 0x9ec77403
cmp eax, 0x8aee7a5c
jbe 0x10060908
mov eax, dword [0x10285034]
xor edx, edx
div dword [0x10285038]
mov ecx, eax
mov eax, ecx
xor eax, 0x37c1635
xor eax, 0xffffffff
or ecx, 0x37c1635
and ecx, eax
or ecx, 0x7f57eb50
mov eax, ecx
and eax, 0xc17e5d37
or ecx, 0xc17e5d37
add eax, ecx
cmp eax, 0xfe95a248
ja 0x10060908
jmp 0x100606fd
mov eax, dword [0x1028503c]
mov ecx, dword [0x10285040]
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
xor eax, 0xffffffff
sub eax, 0xbcc1e591
mov ecx, 0xe0703e79
xor edx, edx
div ecx
xor eax, 0x645fd1d1
cmp eax, 0x1523097e
jb 0x1006090d
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp + 0x10]
add eax, ecx
mov dword [ebp - 0x60], eax
mov edi, dword [ebp - 0x28]
mov esi, dword [ebp - 0x60]
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x24]
mov eax, esp
mov dword [eax + 0xc], edi
mov dword [eax + 8], esi
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.1005be10
mov ecx, eax
mov eax, dword [ebp - 0x30]
mov dword [eax], ecx
mov esi, dword [ebp - 0x28]
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x24]
mov eax, esp
mov dword [eax + 8], esi
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.100592f0
mov edi, dword [ebp - 0x28]
mov esi, dword [ebp - 0x24]
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x10], 6
mov eax, esp
mov dword [eax + 0xc], edi
mov dword [eax + 8], esi
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.10060da0
jmp 0x10060662
mov eax, dword [0x10285054]
add eax, dword [0x10285058]
and eax, 0xeec803b7
or eax, 0xa17707b0
imul eax, eax, 0xd634031c
cmp eax, 0x329d8242
jb 0x10060662
mov ecx, dword [0x10285064]
mov edx, dword [0x10285068]
mov eax, ecx
and eax, edx
shl eax, 1
xor ecx, edx
add ecx, eax
mov edx, ecx
and edx, 0x256fe859
mov eax, ecx
or eax, 0x256fe859
xor eax, 0xffffffff
imul eax, edx
mov edx, ecx
and edx, 0xda9017a6
or ecx, 0xda9017a6
imul ecx, edx
add ecx, eax
mov eax, ecx
xor eax, 0x48b93a9b
xor eax, 0xffffffff
and eax, 0x48b93a9b
shl eax, 1
sub eax, 0x48b93a9b
sub ecx, eax
mov eax, ecx
and eax, 0x90a4154c
xor ecx, 0x90a4154c
or eax, ecx
cmp eax, 0x6f6f0a23
jbe 0x1006095b
jmp 0x100606fd
mov eax, dword [0x1028506c]
xor eax, dword [0x10285070]
xor eax, 0xc82dc9f
mov ecx, 0x9d80eb7f
xor edx, edx
div ecx
mov ecx, eax
xor ecx, 0x307517e9
xor ecx, 0xffffffff
and ecx, 0x307517e9
shl ecx, 1
sub ecx, 0x307517e9
sub eax, ecx
cmp eax, 0xab615738
ja 0x10060960
mov ecx, dword [ebp - 0x64]
mov eax, dword [0x10285074]
xor edx, edx
div dword [0x10285078]
or eax, 0x1ddf68fa
mov edx, eax
xor edx, 0xc6c7d815
xor edx, 0xffffffff
or eax, 0xc6c7d815
and eax, edx
sub eax, 0x8aa0342d
add eax, 0x6b1efe4b
add eax, 0x8aa0342d
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x24]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.1005c4e0
sub esp, 8
mov eax, dword [ebp - 0x90]
cmp eax, 0x581cdfb3
jbe 0x10060960
jmp 0x100607a3
mov edx, dword [0x1028507c]
sub edx, dword [0x10285080]
mov ecx, edx
and ecx, 0xe9d556c8
mov eax, edx
or eax, 0xe9d556c8
xor eax, 0xffffffff
imul eax, ecx
mov ecx, edx
and ecx, 0x162aa937
or edx, 0x162aa937
imul edx, ecx
add edx, eax
add edx, 0x3edf6594
add edx, 0x6393397b
sub edx, 0x3edf6594
mov ecx, edx
xor ecx, 0xffffffff
mov eax, ecx
and eax, 0x7c64b521
and edx, 0x839b4ade
or eax, edx
xor eax, 0x4babc5c9
or ecx, 0xc8308f17
xor ecx, 0xffffffff
or eax, ecx
cmp eax, 0xd2d8181
je 0x1006097d
mov eax, dword [0x10285084]
mov edx, dword [0x10285088]
mov ecx, eax
xor ecx, edx
xor ecx, 0xffffffff
or eax, edx
and eax, ecx
imul eax, eax, 0x1cb1b37f
mov ecx, 0x72c6f288
xor edx, edx
div ecx
mov ecx, eax
mov eax, ecx
and eax, 0xe9347ef4
xor ecx, 0xffffffff
and ecx, 0x16cb810b
or eax, ecx
xor eax, 0xffffffff
cmp eax, 0xe8696ec4
jbe 0x10060818
jmp 0x10060864
mov ecx, dword [0x10285094]
mov edx, dword [0x10285098]
mov eax, ecx
and eax, edx
or ecx, edx
xor eax, 0xffffffff
and eax, ecx
mov edx, eax
xor edx, 0xffffffff
and edx, 0x6650f91c
mov ecx, eax
and ecx, 0x99af06e3
imul ecx, edx
mov edx, eax
and edx, 0x6650f91c
or eax, 0x6650f91c
imul eax, edx
add eax, ecx
mov ecx, eax
xor ecx, 0x15a356bc
xor ecx, 0xffffffff
and ecx, 0x15a356bc
shl ecx, 1
sub ecx, 0x15a356bc
sub eax, ecx
and eax, 0xd87af6e7
cmp eax, 0x4c82fd1
ja 0x10060864
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
add esp, 0x94
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
jmp 0x10060219
jmp 0x10060252
jmp 0x10060377
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x24]
sub eax, ecx
mov dword [ebp - 0x5c], eax
jmp 0x100603e9
jmp 0x10060540
jmp 0x10060576
mov eax, dword [ebp - 0x24]
add eax, dword [ebp + 0x10]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x24]
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
call fcn.1005be10
mov ecx, eax
mov eax, dword [ebp - 0x30]
mov dword [eax], ecx
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x24]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.100592f0
jmp 0x100605f0
jmp 0x10060688
mov ecx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x24]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.1005c4e0
sub esp, 8
jmp 0x1006073c
jmp 0x10060818