Function at 0x449900
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
push ebx
push esi
mov esi, ecx
xor ebx, ebx
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x18], esi
push edi
mov edi, 0x20
mov dword [ebp - 4], ecx
cmp dword [esi + 4], 0xffffffff
je 0x44996d
mov eax, dword [esi + 4]
push 0
push edi
push ecx
push eax
call dword [0x454334]
cmp eax, 1
jge 0x449954
call dword [0x454314]
cmp eax, 0x2733
jne 0x449962
push 0x14
call dword [0x454110]
inc ebx
cmp ebx, 0xa
je 0x449962
mov ecx, dword [ebp - 4]
jmp 0x44995e
mov ecx, dword [ebp - 4]
sub edi, eax
add ecx, eax
mov dword [ebp - 4], ecx
test edi, edi
jg 0x449921
test edi, edi
je 0x449976
mov ecx, esi
call fcn.00447870
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 0x12c]
xor ecx, ecx
nop
mov eax, edx
inc edx
and eax, 0xf
movzx eax, byte [eax + esi + 0x164]
add al, byte [esi + 0x134]
xor byte [ebp + ecx - 0x38], al
movzx eax, byte [ebp + ecx - 0x38]
inc ecx
movsx eax, al
mov dword [esi + 0x134], eax
mov dword [esi + 0x12c], edx
cmp ecx, 0x20
jl 0x449980
lea ebx, [esi + 0x10]
mov byte [ebp - 0x2d], 0
mov dword [ebx], 0
cmp dword [ebx + 8], 1
jge 0x4499d2
push 2
mov ecx, ebx
call fcn.00445080
test eax, eax
je 0x4499dd
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov byte [ecx + eax], 0
inc dword [ebx]
mov edi, dword [0x484f14]
mov dword [ebp - 4], edi
mov dword [ebp - 0xc], 0
call dword [0x4540b8]
add eax, 0x7530
mov dword [ebp - 0x10], eax
test ebx, ebx
je 0x449c64
lea ecx, [esi + 0x148]
test ecx, ecx
je 0x449c64
push dword [ebp - 0x2c]
lea eax, [ebp - 0x38]
mov ecx, edi
push eax
call fcn.00432470
test eax, eax
je 0x449c64
lea eax, [ebp - 0x28]
push eax
call fcn.0041b18a
add esp, 4
test eax, eax
je 0x449c64
lea eax, [ebp - 0x24]
push eax
call fcn.0041b18a
add esp, 4
test eax, eax
je 0x449c64
mov esi, dword [0x454134]
push edi
call dword [0x454138]
push dword [ebp - 0x2c]
lea eax, [ebp - 0x38]
mov ecx, edi
push eax
call fcn.004327c0
mov dword [ebp - 8], eax
test eax, eax
je 0x449c61
lea edi, [eax + 0x798]
push edi
call dword [0x454138]
mov esi, dword [ebp - 8]
push edi
mov esi, dword [esi + 0x7c8]
call dword [0x454134]
mov edi, dword [ebp - 4]
push edi
test esi, esi
jne 0x449ac3
mov esi, dword [0x454134]
call esi
push 0xc8
call dword [0x454110]
call dword [0x4540b8]
cmp eax, dword [ebp - 0x10]
jae 0x449ac9
cmp dword [edi + 0x1bc], 0
je 0x449a55
jmp 0x449ac9
call dword [0x454134]
mov esi, dword [0x454138]
push edi
call esi
push dword [ebp - 0x2c]
lea eax, [ebp - 0x38]
mov ecx, edi
push eax
call fcn.004327c0
mov dword [ebp - 8], eax
test eax, eax
je 0x449b33
lea edi, [eax + 0x798]
push edi
call esi
mov esi, dword [ebp - 8]
push edi
mov esi, dword [esi + 0x7c8]
call dword [0x454134]
test esi, esi
jne 0x449b20
push dword [ebp - 0x2c]
lea eax, [ebp - 0x38]
push eax
push str.History:__s_d_returned_without_synchronization
push esi
push 1
push 0x4850d0
call fcn.00436d50
add esp, 0x18
mov ecx, dword [ebp - 8]
lea eax, [ebp - 0x38]
push ebx
push eax
call fcn.00433d40
mov edi, dword [ebp - 4]
mov dword [ebp - 0xc], eax
push edi
call dword [0x454134]
cmp dword [ebp - 0xc], 1
jne 0x449c64
mov eax, dword [ebx]
cmp eax, 5
jle 0x449c64
lea esi, [eax - 5]
mov dword [ebp - 0x10], esi
cmp esi, 1
jle 0x449c2d
cmp dword [ebx + 0xc], 0
jne 0x449b84
push 0x454420
push 4
call fcn.00408b10
add esp, 8
test eax, eax
je 0x449c16
mov dword [eax], 0
mov dword [ebx + 0xc], eax
lea eax, [esi*2 + 0x10]
push eax
call fcn.0041afdb
mov esi, eax
add esp, 4
test esi, esi
je 0x449c88
mov ecx, dword [ebx + 0xc]
lea eax, [ebp - 0x14]
push eax
mov eax, dword [ebx]
sub eax, 5
push esi
push eax
mov eax, dword [ebx + 4]
add eax, 5
push eax
call fcn.0044d100
test eax, eax
je 0x449bfd
mov edi, dword [ebp - 0x14]
mov eax, dword [ebx + 8]
sub eax, 5
lea ecx, [edi + 0x18]
cmp eax, ecx
jg 0x449bd8
push ecx
mov ecx, ebx
call fcn.00445080
test eax, eax
je 0x449bfd
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x10]
push edi
push esi
mov dword [eax + 5], ecx
mov eax, dword [ebx + 4]
mov dword [eax + 9], edi
mov eax, dword [ebx + 4]
add eax, 0xd
push eax
call fcn.0040bea0
lea eax, [edi + 0xd]
add esp, 0xc
mov dword [ebx], eax
push esi
call fcn.0041afc0
mov ecx, dword [ebp - 0x18]
add esp, 4
push ebx
call fcn.004470b0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x18]
push ebx
mov dword [ebx + 0xc], 0
call fcn.004470b0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
add eax, 4
cmp eax, dword [ebx + 8]
jle 0x449c42
push 8
mov ecx, ebx
call fcn.00445080
test eax, eax
je 0x449c88
mov ecx, dword [ebx + 4]
mov eax, dword [ebx]
push ebx
mov dword [ecx + eax], 0
mov ecx, dword [ebp - 0x18]
add dword [ebx], 4
call fcn.004470b0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push edi
call esi
mov dword [ebx], 0
cmp dword [ebx + 8], 1
jge 0x449c7d
push 2
mov ecx, ebx
call fcn.00445080
test eax, eax
je 0x449c88
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov byte [ecx + eax], 1
inc dword [ebx]
mov ecx, dword [ebp - 0x18]
push ebx
call fcn.004470b0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret