Function at 0x44246c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov eax, 0xd4d4
lea ebp, [esp - 0x70]
call fcn.00467bd0
push ebx
lea eax, [ebp + 0x78]
push esi
push eax
call fcn.0042609c
mov esi, dword [ebp + 0x78]
xor ebx, ebx
cmp word [esi], bx
pop ecx
jne 0x442498
xor eax, eax
jmp 0x44293f
push edi
mov edi, 0x47a8e8
push edi
lea ecx, [ebp + 0x60]
call fcn.00434695
push edi
lea ecx, [ebp + 0x5c]
call fcn.00434695
mov byte [ebp + 0x6e], 0
mov byte [ebp + 0x6f], 8
jmp 0x4425b5
push 2
push esi
push 0x47e0b8
call fcn.00426f79
add esp, 0xc
test al, al
je 0x4424e8
lea edi, [esi + 4]
movzx eax, word [edi]
push eax
call fcn.0046906c
test eax, eax
pop ecx
je 0x4424e8
mov byte [ebp + 0x6e], 1
jmp 0x442567
push 2
push esi
push 0x47d108
call fcn.00426f79
add esp, 0xc
test al, al
je 0x442513
lea edi, [esi + 4]
movzx eax, word [edi]
push eax
call fcn.0046906c
test eax, eax
pop ecx
je 0x442513
mov byte [ebp + 0x6f], 2
jmp 0x442567
push 2
push esi
push 0x480e84
call fcn.00426f79
add esp, 0xc
test al, al
je 0x44253e
lea edi, [esi + 4]
movzx eax, word [edi]
push eax
call fcn.0046906c
test eax, eax
pop ecx
je 0x44253e
mov byte [ebp + 0x6f], 1
jmp 0x442567
push 2
push esi
push 0x480e80
call fcn.00426f79
add esp, 0xc
test al, al
je 0x442575
lea edi, [esi + 4]
movzx eax, word [edi]
push eax
call fcn.0046906c
test eax, eax
pop ecx
je 0x442575
mov byte [ebp + 0x6f], 0x10
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x78], edi
call fcn.0042609c
jmp 0x4425b1
push 2
push esi
push 0x47aecc
call fcn.00426f79
add esp, 0xc
test al, al
je 0x442598
movzx eax, word [esi + 4]
push eax
call fcn.0046906c
test eax, eax
pop ecx
jne 0x4425c0
cmp word [esi], 0x2d
jne 0x4425d3
lea eax, [ebp + 0x78]
push eax
call fcn.00403adb
lea eax, [ebp + 0x78]
push eax
call fcn.0042609c
pop ecx
mov esi, dword [ebp + 0x78]
pop ecx
cmp word [esi], bx
jne 0x4424bd
jmp 0x4425d3
lea eax, [ebp + 0x78]
add esi, 4
push eax
mov dword [ebp + 0x78], esi
call fcn.0042609c
mov esi, dword [ebp + 0x78]
pop ecx
push 0x2c
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x64], esi
call fcn.0042d669
push dword [ebp + 0x60]
call fcn.0040ca55
mov dword [ebp + 0x68], eax
mov eax, dword [ebp + 0x78]
add esp, 0x10
cmp word [eax], 0x2c
lea eax, [ebp + 0x78]
jne 0x442625
add dword [ebp + 0x78], 2
push eax
call fcn.0042609c
push 0x2c
lea eax, [ebp + 0x5c]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042d669
push dword [ebp + 0x5c]
call fcn.0040ca55
add esp, 0x14
jmp 0x44267b
push 1
push eax
lea eax, [ebp + 0x64]
push eax
mov dword [ebp + 0x78], ebx
call fcn.00413db8
add esp, 0xc
push dword [ebp + 0x78]
lea ecx, [ebp + 0x60]
push dword [ebp + 0x64]
mov esi, eax
call fcn.00409fd6
mov eax, dword [ebp + 0x60]
mov dword [ebp + 0x68], eax
lea eax, [ebp + 0x64]
push eax
mov dword [ebp + 0x64], esi
call fcn.0042609c
push ebx
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp + 0x64]
push eax
call fcn.00413db8
add esp, 0x10
push dword [ebp + 0x78]
lea ecx, [ebp + 0x5c]
push dword [ebp + 0x64]
call fcn.00409fd6
mov eax, dword [ebp + 0x5c]
cmp word [eax], bx
mov dword [ebp + 0x58], eax
je 0x442929
mov edi, dword [ebp + 0x68]
cmp word [edi], bx
je 0x442929
cmp byte [ebp + 0x6f], 2
je 0x4426e1
push 0
call fcn.00468962
pop ecx
mov ebx, eax
call fcn.00427c6b
add ebx, eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
add ebx, eax
mov eax, dword [0x490a08]
shl eax, 4
add ebx, eax
xor dword [0x490a08], ebx
mov eax, ebx
and eax, 3
cmp al, 3
mov dword [ebp + 0x78], ebx
jne 0x442699
test bh, bh
je 0x442699
cmp byte [ebp + 0x7a], 0
je 0x442699
mov al, byte [ebp + 0x7b]
and al, 0x88
cmp al, 0x80
jne 0x442699
cmp byte [ebp + 0x6f], 0x10
je 0x44289a
lea ecx, [ebp - 0x28]
call fcn.0042e0dc
lea ecx, [ebp + 0x38]
call fcn.0042e0dc
xor edi, edi
push edi
mov esi, 0x80
push esi
push 3
push edi
push 7
push 1
push dword [ebp + 0x68]
lea ecx, [ebp - 0x24]
call fcn.00403b3c
cmp dword [ebp - 0x24], edi
jne 0x442736
mov ebx, 0x47fe44
lea ecx, [ebp + 0x3c]
mov dword [ebp + 0x38], ebx
call fcn.0042e0af
mov dword [ebp - 0x28], ebx
lea ecx, [ebp - 0x24]
jmp 0x442924
push edi
push esi
push 2
push edi
push 7
push 0x40000001
push dword [ebp + 0x58]
lea ecx, [ebp + 0x3c]
call fcn.00403b3c
cmp dword [ebp + 0x3c], edi
je 0x44271b
push edi
push edi
lea ecx, [ebp - 0xd464]
mov byte [ebp + 0x4c], 1
call fcn.00426811
lea eax, [ebp - 0x28]
mov dword [ebp - 0x30], eax
lea eax, [ebp + 0x38]
mov dword [ebp - 0x2c], eax
mov esi, 0x47ebc8
mov dword [ebp + 0x68], 7
mov al, byte [esi]
inc dword [ebp + 0x54]
mov byte [ebp + 0x7b], al
push 1
lea eax, [ebp + 0x7b]
push eax
lea ecx, [ebp + 0x3c]
call fcn.00428465
inc esi
dec dword [ebp + 0x68]
jne 0x44277b
cmp byte [ebp + 0x6f], 8
mov al, 0x53
jne 0x4427a1
add al, 0xee
inc dword [ebp + 0x54]
mov byte [ebp + 0x7b], al
push 1
lea eax, [ebp + 0x7b]
push eax
lea ecx, [ebp + 0x3c]
call fcn.00428465
push 8
mov ecx, ebx
and ecx, 0xfffffff
cmp ebx, edi
pop eax
mov dword [ebp + 0x54], eax
mov dword [ebp + 0x50], ecx
je 0x4427d0
xor ebx, 0x5aa59669
cmp byte [ebp + 0x6f], 8
mov dword [ebp + 0x68], ebx
jne 0x4427df
xor ebx, eax
mov word [ebp + 0x68], bx
push 4
lea esi, [ebp + 0x68]
pop edi
mov al, byte [esi]
inc dword [ebp + 0x54]
mov byte [ebp + 0x7b], al
push 1
lea eax, [ebp + 0x7b]
push eax
lea ecx, [ebp + 0x3c]
call fcn.00428465
inc esi
dec edi
jne 0x4427e5
xor eax, eax
lea edi, [ebp - 0xc46a]
mov dword [ebp + 0x54], 0xc
stosd dword es:[edi], eax
xor esi, esi
lea ecx, [ebp - 0x28]
call fcn.00428505
cmp eax, 0xffffffff
je 0x442835
movsx ecx, si
inc esi
mov byte [ebp + ecx - 0xc46a], al
inc byte [ebp - 0xc447]
cmp si, 4
jl 0x442811
push 4
lea esi, [ebp - 0xc46a]
pop edi
cmp byte [ebp + 0x6e], 0
je 0x44284b
mov al, byte [esi]
mov byte [ebp + 0x7b], al
jmp 0x44284f
mov byte [ebp + 0x7b], 0
inc dword [ebp + 0x54]
push 1
lea eax, [ebp + 0x7b]
push eax
lea ecx, [ebp + 0x3c]
call fcn.00428465
inc esi
dec edi
jne 0x44283e
lea ecx, [ebp - 0xd464]
mov dword [ebp + 0x54], 0x10
call fcn.00426a4b
push dword [ebp + 0x3c]
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
mov ebx, 0x47fe44
lea ecx, [ebp + 0x3c]
mov dword [ebp + 0x38], ebx
call fcn.0042e0af
mov dword [ebp - 0x28], ebx
lea ecx, [ebp - 0x24]
jmp 0x4429a9
xor esi, esi
lea ecx, [ebp + 0x18]
mov dword [ebp + 0x78], esi
call fcn.0042e138
lea ecx, [ebp - 8]
call fcn.0042e138
push esi
mov ebx, 0x80
push ebx
push 3
push esi
push 7
push 1
push edi
lea ecx, [ebp + 0x1c]
call fcn.00403b3c
cmp dword [ebp + 0x1c], esi
je 0x44290e
push 8
pop edi
lea ecx, [ebp + 0x18]
call fcn.0042855d
dec edi
jne 0x4428ce
xor edi, edi
lea ecx, [ebp + 0x18]
call fcn.0042855d
mov byte [ebp + edi + 0x78], al
inc edi
cmp edi, 4
jl 0x4428db
cmp dword [ebp + 0x78], esi
jne 0x44290e
push esi
push ebx
push 2
push esi
push 7
push 0x40000001
push dword [ebp + 0x58]
lea ecx, [ebp - 4]
call fcn.00403b3c
cmp dword [ebp - 4], esi
jne 0x442948
mov esi, 0x47fe54
lea ecx, [ebp - 4]
mov dword [ebp - 8], esi
call fcn.0042e0af
mov dword [ebp + 0x18], esi
lea ecx, [ebp + 0x1c]
call fcn.0042e0af
xor esi, esi
inc esi
lea ecx, [ebp + 0x5c]
call fcn.0042602e
lea ecx, [ebp + 0x60]
call fcn.0042602e
mov eax, esi
pop edi
pop esi
pop ebx
add ebp, 0x70
leave
ret 8
push esi
push esi
lea ecx, [ebp - 0xd464]
mov byte [ebp + 0xc], 1
call fcn.00426811
cmp dword [ebp + 0x30], esi
lea eax, [ebp + 0x18]
mov dword [ebp - 0x30], eax
lea eax, [ebp - 8]
mov dword [ebp - 0x2c], eax
je 0x442971
xor dword [ebp + 0x30], 0x5aa59669
push 4
pop esi
lea ecx, [ebp + 0x18]
call fcn.0042855d
dec esi
jne 0x442974
lea ecx, [ebp - 0xd464]
call fcn.00426cae
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
mov esi, 0x47fe54
lea ecx, [ebp - 4]
mov dword [ebp - 8], esi
call fcn.0042e0af
mov dword [ebp + 0x18], esi
lea ecx, [ebp + 0x1c]
call fcn.0042e0af
xor esi, esi
jmp 0x44292c