Function at 0x10048940
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100d58e9
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x28
mov eax, dword [0x1017de4c]
mov ecx, dword [0x100fbfac]
add eax, 4
push ebx
mov ebx, dword [0x1017de48]
push esi
mov esi, dword [0x1017de54]
add esi, eax
mov eax, dword fs:[0x2c]
mov dword [ebp - 0x10], esi
push edi
mov esi, dword [eax + ecx*4]
mov eax, dword [0x1017ebb0]
cmp eax, dword [esi + 4]
jle 0x100489db
push 0x1017ebb0
call fcn.100d136a
add esp, 4
cmp dword [0x1017ebb0], 0xffffffff
jne 0x100489db
mov dword [ebp - 4], 0
mov ecx, dword [0x100fc310]
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0x14], eax
call dword [ebp - 0x14]
push 0x1017ebb0
fstp dword [0x1017ebac]
mov dword [ebp - 4], 0xffffffff
call fcn.100d1320
add esp, 4
mov ecx, dword [0x100fc310]
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0x14], eax
call dword [ebp - 0x14]
mov eax, dword [0x1017ebf4]
fstp dword [ebp - 0x14]
movss xmm0, dword [ebp - 0x14]
subss xmm0, dword [0x1017ebac]
movss dword [ebp - 0x18], xmm0
cmp eax, dword [esi + 4]
jle 0x10048a3b
push 0x1017ebf4
call fcn.100d136a
add esp, 4
cmp dword [0x1017ebf4], 0xffffffff
jne 0x10048a3b
mov eax, dword [0x1017d950]
push 0x1017ebf4
mov dword [0x1017ebc0], eax
call fcn.100d1320
add esp, 4
mov ecx, dword [0x1017d950]
cmp ecx, dword [0x1017ebc0]
je 0x10048a6c
mov ecx, dword [0x100fc310]
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0x14], eax
call dword [ebp - 0x14]
mov ecx, dword [0x1017d950]
fstp dword [0x1017ebac]
mov dword [0x1017ebc0], ecx
test ecx, ecx
jne 0x10048abc
movss xmm0, dword [ebp - 0x18]
comiss xmm0, dword [0x100f05d0]
jbe 0x10048abc
cmp dword [0x1017e79c], 1
jne 0x10048abc
mov eax, dword [0x1017eb98]
cmp eax, ebx
jle 0x10048abc
mov esi, dword [ebp - 0x10]
lea edx, [ebx + 0x5a]
cmp eax, edx
jge 0x10048abf
mov edx, dword [0x1017eb9c]
cmp edx, esi
jle 0x10048abf
lea eax, [esi + 0xe]
cmp edx, eax
jge 0x10048abf
mov edi, dword [ebp + 8]
mov dword [0x1017d950], edi
mov dword [0x1017e79c], ecx
jmp 0x10048aca
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp + 8]
cmp ecx, edi
jne 0x10048c1b
mov ecx, dword [0x100fc310]
mov byte [0x1017de95], 1
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
mov dword [ebp + 8], eax
call dword [ebp + 8]
fstp dword [ebp + 8]
movss xmm0, dword [ebp + 8]
subss xmm0, dword [0x1017d94c]
comiss xmm0, dword [0x100f05d0]
jbe 0x10048c13
mov edx, 0xa0
mov dword [ebp + 8], 0x100
xor eax, eax
lea ecx, [edx + 1]
test ax, ax
jle 0x10048b1b
cmp ax, 7
jl 0x10048b4f
cmp ax, 0x40
jle 0x10048b27
cmp ax, 0x5b
jl 0x10048b4f
cmp ax, 0x2f
jle 0x10048b33
cmp ax, 0x3a
jl 0x10048b4f
cmp ax, dx
je 0x10048b4f
cmp ax, cx
je 0x10048b4f
cmp ax, 0x10
je 0x10048b4f
cmp ax, 0x1b
je 0x10048b4f
cmp ax, 0x24
jne 0x10048b61
movsx ecx, ax
cmp dword [ecx*4 + 0x1017e798], 1
je 0x10048b6a
mov ecx, 0xa1
inc eax
cmp ax, word [ebp + 8]
jl 0x10048b10
jmp 0x10048b90
cmp ax, 0x24
je 0x10048b86
cmp ax, 0x1b
jne 0x10048b84
cmp byte [ebp + 0xc], 0
je 0x10048b84
mov dword [edi], 0
jmp 0x10048b86
mov dword [edi], ecx
mov dword [0x1017d950], 0
mov dword [ebp - 0x34], 0x4ba0497
xor ecx, ecx
mov dword [ebp - 0x30], 0x4b904ac
mov dword [ebp - 0x2c], 0x4ec04b8
mov dword [ebp - 0x28], 0x4ee04ac
mov dword [ebp - 0x24], 0x4b50484
mov dword [ebp - 0x20], 0x4a8
mov byte [ebp - 0x1c], 1
lea eax, [ecx + 0x4c7]
xor word [ebp + ecx*2 - 0x34], ax
inc ecx
cmp ecx, 0xb
jb 0x10048bc0
lea eax, [ebp - 0x34]
mov byte [ebp - 0x1c], 0
push eax
push 0x100dae90
lea eax, [ebp + 0xc]
mov dword [ebp + 0xc], 1
push eax
push 0x100f92ec
add esi, 7
mov dword [ebp + 8], 8
push esi
lea eax, [ebx + 0x2d]
push eax
lea eax, [ebp + 8]
push eax
push 0x1017dbc8
call fcn.100cce90
add esp, 0x20
jmp 0x10048c97
add esi, 7
jmp 0x10048c97
test ecx, ecx
jne 0x10048c36
mov ecx, dword [0x100fc310]
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
mov dword [ebp + 0xc], eax
call dword [ebp + 0xc]
fstp dword [0x1017d94c]
movzx eax, word [edi]
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.10048d50
mov dword [ebp - 4], 1
cmp dword [eax + 0x14], 8
jb 0x10048c52
mov eax, dword [eax]
push eax
push 0x100dae90
lea eax, [ebp + 0xc]
mov dword [ebp + 0xc], 1
push eax
push 0x100f92ec
add esi, 7
mov dword [ebp + 8], 8
push esi
lea eax, [ebx + 0x2d]
push eax
lea eax, [ebp + 8]
push eax
push 0x1017dbc8
call fcn.100cce90
add esp, 0x20
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x34]
call fcn.1000d830
push dword [edi + 4]
lea ecx, [ebp + 0xc]
mov dword [ebp + 0xc], 2
push ecx
push 0x100f92ec
lea eax, [ebx + 0x5a]
mov dword [ebp + 8], 8
push esi
add eax, 4
push eax
lea eax, [ebp + 8]
push eax
push 0x1017dbc8
call fcn.100cd120
movzx eax, byte [0x100f92ff]
add esp, 0x1c
mov ecx, dword [0x100fc31c]
push eax
movzx eax, byte [0x100f92fe]
mov esi, dword [ecx]
push eax
mov eax, dword [0x100f92fc]
movzx edx, ah
movzx eax, al
push edx
push eax
mov eax, dword [esi + 0x2c]
call eax
mov esi, dword [ebp - 0x10]
mov ecx, dword [0x100fc31c]
lea eax, [esi + 0xe]
mov edx, dword [ecx]
push eax
lea eax, [ebx + 0x5a]
push eax
mov eax, dword [edx + 0x38]
push esi
push ebx
call eax
mov ecx, dword [ebp - 0xc]
xor al, al
pop edi
mov dword [0x1017de4c], esi
mov dword [0x1017de48], ebx
pop esi
mov dword [0x1017de50], 0x5a
mov dword [0x1017de54], 0xe
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8