Function at 0x4803f4
Capabilities:
Encode data using xor

Disassembly:
add byte [ecx + 0x164ec], al
push eax
mov edx, dword [esp + 0x5e000174]
push ebx
mov ebx, dword [esp + 0x6c]
push ebp
mov ebp, dword [esp + 0x50000178]
mov al, dl
xor ecx, ecx
shr al, 2
push esi
mov esi, 0
add dword [ebp], esi
and al, 1
push edi
mov edi, dword [esp + 0x17c]
inc esp
je 0x480453
sub byte [eax - 0x74e8dbbc], cl
inc ebp
add byte [esp + esi*2 + 0x24], al
inc eax
mov esi, dword [edi + 4]
inc esp
dec esp
and al, 0x20
inc esp
dec esp
and byte [ebx + ecx*4], ch
add al, 0x86
and edx, 3
inc esp
dec esp
and byte [esp + eax*2 + 0x4c], ah
and byte [eax + ecx*4], dh
xor al, 0x88
dec esp
and al, 0x16
inc esp
dec esp
and byte [eax], bh
inc esp
dec esp
and byte [ecx + ecx*4 - 0x6c], al
and al, 0x84
add dword [eax], eax
add byte [esi + 0x39], ah
dec eax
or byte [ebp + 0x3b], dh
mov eax, dword [eax]
sub eax, 0x1e
je 0x48049a
sub eax, 1
je 0x48048c
sub eax, 0xb
jne 0x4804a8
push edx
push ebp
push edi
push ebx
call fcn.0047e8dc
jmp 0x5e480b49
push edx
push ebp
push edi
push ebx
call fcn.0047f6f0
jmp 0x5e480b49
push edx
push ebp
push edi
push ebx
call 0x8c47fea9
jmp 0x480b49
lea ecx, [eax + edx + 0x4c]
call 0x8c40c061
inc esp
inc edi
or dword [ebx + 0x148b534d], 0xffffff88
cmp word [edx + 8], 0x33
jne 0x480a02
mov ecx, dword [ebp + 0x53]
mov edx, dword [eax + ecx*4]
mov eax, dword [edx]
push eax
lea esp, [eax + ebp]
and al, 0x28
push eax
call 0x8c40df51
dec esp
and al, 0x10
xor al, 0x51
mov ecx, dword [esp + 0x188]
dec esp
push esp
adc byte [eax], ah
push edx
call 0x8c40c3e1
cmp dword [esp + 0x1c], 0
jne 0x5e480584
and byte [esp + esi], 0x17
add byte [edi], cl
test dword [0xbf000005], edx
call 0x4cb00551
pop esp
adc al, 0x20
call 0x8c40e6d1
je 0x4804cf
and al, 0x84
add byte [eax], al
add byte [ebx - 0x7436cc39], cl
shr eax, cl
mov esi, 0x8dfff814
inc esp
and al, 0x34
push eax
lea esp, [eax + edx]
and byte [ecx - 0x75], dl
iretd
inc esp
push ebp
push ebx
inc esp
inc edi
or dword [ebx - 0x40f06ff4], 0x51
or dl, byte [edx + 0x6a]
jg 0x480a66
jmp 0x480b3b
mov word [esp + edi*2], fs
add dword [eax], eax
add byte [ebx + 0x458b0451], cl
add byte [ebx - 0x40f07dfc], cl
dec eax
or dl, byte [ecx + 0x6a]
jno 0x480a61
mov bh, 0
add byte [esi - 0x75], bl
test byte [eax + edi*2], ah
add dword [eax], eax
push eax
push ebx
push 0x7b
push eax
jmp 0x50480b3b
call 0x8c45e62f
dec esp
and al, 0x10
dec esp
call 0x8c402621
dec esp
and al, 0x28
cmp al, ch
outsd dx, dword [esi]
xchg eax, edi
dec dword [esp + 0x28]
and al, ch
xchg ax, di
mov ebx, dword [esi + 0x5d]
pop ebp
add dword [ecx + 0x164c4], 0x10c250
mov eax, dword [esp + 4]
push ebx
push ss
pop esp
and al, 0xc
push esi
push ebx
mov esi, ecx
mov ecx, dword [eax + 8]
push ecx
push eax
push 1
push esi
call fcn.00457c09
je 0x480b9a
dec esp
inc edx
add al, 0x8d
inc esp
xor byte [eax + ebp*8], al
xor dword [0x7883fff8], 0x27750014
push 0
jl 0x480b68
mov dword [esi + 0x5e0000f8], 7
call 0x8c409561
inc esp
push cs
mov edx, dword [ecx + 4]
lea eax, [edx + esi + 4]
call fcn.00404111
push eax
call fcn.00409211
pop ebp
rcr byte [ebx - 0x7f], 0xc
add byte [ebx + 0x44], dl
and al, 0x40
add al, 0x53
push ss
pop esp
and al, 0xc
push esi
push ebx
push eax
push 1
mov esi, ecx
push 1
push esi
call 0x8c463f1a
inc esp
push cs
mov edx, dword [ecx + 4]
lea eax, [edx + esi + 4]
call fcn.00404111
cmp dword [eax + 0x14], 0
jne 0x480c17
push 0
jl 0x480bc2
mov dword [esi + 0x5e0000f8], 7
call 0x8c409561
inc esp
push es
mov ecx, dword [eax + 4]
lea eax, [ecx + esi + 4]
call fcn.00404111
push eax
call fcn.00409211
pop ebp
rcr byte [ebx - 0x7f], 0xc
add byte [ebx + 0x44], dl
and al, 0x40
add al, 0x53
push ss
pop esp
and al, 0xc
push esi
push ebx
push eax
push 0
mov esi, ecx
push 1
push esi
call 0x8c463f1a
inc esp
push cs
mov edx, dword [ecx + 4]
lea eax, [edx + esi + 4]
call fcn.00404111
cmp dword [eax + 0x14], 0
jne 0x480c71
push 0
jl 0x480c1c
mov dword [esi + 0x5e0000f8], 7
call 0x8c409561
inc esp
push es
mov ecx, dword [eax + 4]
lea eax, [ecx + esi + 4]
call fcn.00404111
push eax
call fcn.00409211
pop ebp
rcr byte [ebx - 0x7f], 0xc
add byte [ebx + 0x51], dl
mov esp, dword [eax + esi]
or byte [ebx - 0x74068375], cl
dec eax
or byte [ecx + 0x50], dl
push edi
call 0x85457eb6
sal byte [ebp + 0x74], 0x22
mov eax, dword [edi + 0x438]
lea ecx, [eax + edx + 0x10]
push ecx
lea esp, [esp]
or al, 0x52
push eax
mov byte [esp + 0x1c], 0
call fcn.00444234
add esp, 0xc
test al, al
jne 0x480ce0
mov esi, dword [esp + 0x14]
call fcn.004092c1
inc esi
or byte [eax], al
add byte [eax], al
add byte [esi + 6], bl
add byte [eax], al
add byte [eax], al
push eax
mov eax, dword [edi]
mov eax, dword [eax + 4]
add byte [edx], ch
add dword [ebx], eax
invalid
and byte [esp + esi], 0x10
add byte [ebp - 0x75], dh
dec esp
and byte [eax], cl
push ebx
push ecx
push 0
push 0x400
call dword [0x482188]
mov edx, dword [edi]
mov dword [edi - 0x7cfffbac], eax
dec esp
inc edx
add al, 3
invalid