Function at 0x10045039
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x10077b85
call fcn.100767c0
sub esp, 0x80
push ebx
push esi
push edi
mov ebx, ecx
mov dword [ebp - 0x10], esp
push 4
lea ecx, [ebp - 0x78]
mov dword [ebp - 0x24], ebx
call fcn.10024b0c
mov eax, 0xd8a94b2a
xor esi, esi
mov dword [ebp - 4], esi
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], eax
push 0x5814
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], eax
lea eax, [ebp - 0x78]
push 0x1378
push esi
push eax
lea eax, [ebp - 0x44]
mov dword [ebp - 0x20], 0xffffffff
push eax
push 0x7f29
mov dword [ebp - 0x20], esi
push 0x41b6
mov dword [ebp - 0x1c], 0x3b8c105a
mov dword [ebp - 0x1c], 8
push 0x71f8
call fcn.1004726a
mov eax, dword [ebp - 0x78]
xor edx, edx
mov eax, dword [eax]
test eax, eax
mov dword [ebp - 0x88], eax
setle dl
sub edx, eax
mov eax, dword [ebp - 0x20]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setge cl
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x78]
add ecx, 0x4c9a615c
push edx
mov eax, dword [edx]
add eax, ecx
mov dword [ebp - 0x1c], eax
or dword [ebp - 4], 0xffffffff
call fcn.1005e907
mov dword [ebp - 0x78], esi
add esp, 0x24
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x1c], 0x1719
cmp dword [ebp - 0x1c], 0x1acb
jle 0x1004515e
mov edi, esi
mov ebx, esi
mov dword [ebp - 0x20], esi
mov eax, ebx
mov ecx, 0x1061f218
cdq
idiv esi
xor edx, edi
mov eax, edx
cdq
push edx
push eax
call fcn.100248cc
inc esi
cmp esi, 0x3fb1
jl 0x1004511f
inc ebx
push 0
pop esi
cmp ebx, 0xfa6
jl 0x1004511c
inc edi
cmp edi, 0xd29
jl 0x1004511a
push esi
push esi
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
mov ebx, dword [ebp - 0x24]
cmp dword [ebx], 0
je 0x10045346
push dword [ebx]
push esi
push dword [ebx + 4]
call fcn.1002447d
add esp, 0xc
push esi
push ebx
push 0x5c38
call fcn.1004672a
add esp, 0xc
mov dword [ebp - 0x38], 5
mov dword [ebp - 0x34], 0x67a4bedc
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x30], 0xfffffff7
mov dword [ebp - 0x2c], 0xbed85728
push 4
call fcn.10024b0c
lea eax, [ebp - 0x48]
xor edi, edi
push eax
push esi
lea eax, [ebp - 0x60]
inc edi
push eax
mov dword [ebp - 4], edi
push 0xd9e
mov dword [ebp - 0x28], esi
call fcn.10045390
push 0x4f9d
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x34]
push eax
push 0x32d6
push 0x676b
lea eax, [ebp - 0x38]
push eax
push 0x54e5
lea eax, [ebp - 0x60]
push eax
push esi
call fcn.100454db
or dword [ebp - 4], 0xffffffff
add esp, 0x3c
cmp dword [ebp - 0x60], 0
je 0x10045217
push dword [ebp - 0x60]
call fcn.1005e907
pop ecx
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x58], esi
push 0x20f8
push 0x178c
push 0x4ed1
push 0x7ad
push esi
push ebx
push 0x7319
call fcn.10046627
add esp, 0x1c
lea ecx, [ebp - 0x6c]
push 4
call fcn.10024b0c
push edi
lea ecx, [ebp - 0x54]
mov dword [ebp - 4], 2
call fcn.10024b0c
lea eax, [ebp - 0x3c]
mov byte [ebp - 4], 3
push eax
push 0x371b
push 0x4728
lea eax, [ebp - 0x6c]
push eax
push esi
push 0xeab
push 0x29b8
call fcn.10045499
add esp, 0x1c
lea eax, [ebp - 0x3c]
push eax
push 0x2485
push 0x1841
lea eax, [ebp - 0x54]
push eax
push 0x3226
push 0x6819
push esi
call fcn.10045aa3
mov eax, dword [ebp - 0x54]
add esp, 0x1c
push 3
pop edi
mov dword [eax], edi
jmp 0x10045315
mov dword [ebp - 0x14], 0xfffffffc
mov dword [ebp - 0x14], esi
jmp 0x1004530b
mov dword [ebp - 0x18], 0x363f9e92
mov dword [ebp - 0x18], edi
cmp dword [ebp - 0x18], esi
jl 0x100452e5
lea eax, [ebp - 0x40]
mov dword [ebp - 0x40], 0xd8f6efba
push eax
push 0x6899
push esi
call fcn.10047d6d
add esp, 0xc
dec dword [ebp - 0x18]
jns 0x100452c7
push esi
lea eax, [ebp - 0x18]
push eax
push 0x3805
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x54]
push eax
push 0x6be0
call fcn.1004551a
add esp, 0x1c
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jle 0x100452b8
mov eax, dword [ebp - 0x54]
dec dword [eax]
mov eax, dword [ebp - 0x54]
cmp dword [eax], esi
jge 0x100452ac
push eax
call fcn.1005e907
cmp dword [ebp - 0x6c], 0
pop ecx
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x4c], esi
je 0x10045344
push dword [ebp - 0x6c]
call fcn.1005e907
pop ecx
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x68], esi
mov dword [ebp - 0x64], esi
mov dword [ebx], esi
mov dword [ebp - 4], 4
cmp dword [ebp - 0x1c], 0x16f1
jge 0x10045365
mov edx, 0x1000c768
mov ecx, 0x1061f218
call fcn.10028f8c
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret