Function at 0x904c22
Capabilities:
Encode data using base64

Disassembly:
pushfd
jmp 0x904cc0
pushal
mov word [esp + 0x1b], bx
jmp 0x904be5
pushal
jmp 0x904b59
push dx
lea esp, [esp + 2]
jmp 0x8c2b2d
cmp dl, 0x30
jb 0x8c2b0b
sub esp, 0x19
lea esp, [esp + 1]
jmp 0x904b31
jmp 0x9040b0
xchg cx, ax
lea eax, reloc.KERNEL32.dll_GetStartupInfoA
not cl
push eax
jmp 0x904086
sub esp, 0x18
add esp, 4
jmp 0x903fd2
lea ebx, [ecx - 1]
mov eax, dword [esp]
jmp 0x904034
test eax, edi
jmp 0x903ff7
mov eax, 0xc0000000
sub esp, 0xf
lea esp, [esp + 3]
lea esp, [esp + 0xc]
jmp 0x903f92
pop ecx
cmp eax, dword [ebp - 4]
jne 0x903f7c
je 0x903fa8
shl edi, 2
lea esp, [esp + 0x14]
dec ecx
jmp 0x903fff
jne 0x903f7c
je 0x903e69
dec ecx
call fcn.00903fdc
je 0x903e69
call fcn.0090407d
and ah, byte [edx + edi + 0x5469ac5d]
rol dword [ecx + 0x20], 1
shr dword [edi - 0x2a], cl
push edx
shl byte [edi - 0x35ac1dae], 0x65
mov cl, 0xb5
mov ecx, edi
push 0x20
mov cx, word [esp]
mov cx, ax
jmp 0x903fca
sub esp, 0x14
jmp 0x90405a
shr ebx, 1
mov ax, 0xf647
lea esp, [esp + 0x14]
inc ebx
jmp 0x903be4
pushal
mov byte [esp + 0x19], cl
xchg dword [esp + 0xb], ecx
lea esp, [esp + 0x20]
push eax
call 0x90409a
and ebx, ebp
cmp eax, 0x1770e26c
loop 0x9040f2
scasb al, byte es:[edi]
daa
mov bh, 0xd2
and dword [ebp - reloc.KERNEL32.dll_GetStartupInfoA], ebx
pop eax
wait
xor eax, 0xbfb96624
mov ch, 0xc8
mov cx, 0x66bf
mov ch, 0xc8
mov cl, byte [esp]
push dword [ebp + 0x18]
xchg cx, ax
jmp 0x903be9
or al, 0x9d
or eax, 0x7e15a754
out dx, al
jl 0x904117
test byte [eax + 0x7f], 0x46
int1
lea eax, [eax*4]
lea eax, [eax + ecx]
mov edi, dword [eax]
pop eax
bsr cx, dx
jmp 0x904025
mov ecx, 0xe82a02c2
xchg ch, cl
pushfd
jmp 0x9041b7
sub esp, 9
push dword [esp + 2]
lea esp, [esp + 1]
lea esp, [esp + 0xc]
popal
jmp 0x904101
bswap eax
pushal
rol ecx, 3
mov dword [esp + 0x1c], edi
popal
jmp 0x904192
push eax
mov ecx, eax
call fcn.008dfa0c
mov ah, byte [esp]
jmp 0x904162
sub esp, 0x1c
shr eax, 0x1e
lea esp, [esp + 0x1c]
add esp, 0x18
call fcn.0090416f
push esp
invalid
lea esp, [esp + 4]
push eax
not ecx
mov ecx, dword [esp]
jmp 0x904185
or al, 0xe9
test al, 0xf7
invalid
call 0x904d4a
xlatb
dec esp
ret 0x54a5
call 0x904c22
clc
outsb dx, byte [esi]
cld
wait
jbe 0x90445e
ljmp 0xc642:0x85761383
push di
lea esp, [esp + 2]
cmp cl, 0x30
jmp 0x904cb0
jmp 0x9054d2
add byte [ecx + 0x3acfa83a], bh
mov byte [ecx + 0x19ea8f1f], bl
jecxz 0x9044eb
in eax, dx
cld
iretd
pushfd
jmp 0x904dd9
call fcn.00904d6a
mov word [esi], gs
mov esp, 0xbfb136db
inc ebx
sal dword [esi + reloc.KERNEL32.dll_GetStartupInfoA], cl
xor byte [ebx], dh
sub bl, byte [ecx - 0x3f]
push ecx
xor bl, al
jg 0x9044f7
push eax
pushal
xchg edi, ebx
mov dword [esp + 0x1c], eax
jmp 0x904150
pushal
jmp 0x904e47
pop eax
jmp 0x90459f
cmp al, 0x2f
push ebp
pop word [esp]
jmp 0x904ef1
cmp al, 0x5a
call fcn.00904e58
das
fist dword ss:[eax - 0x3a]
mov eax, dword [reloc.KERNEL32.dll_GetStartupInfoA]
pop ebp
and al, 0xd7
push 0xffffffffffffffdc
jmp 0x904e96
sub eax, 0x47
jmp 0x90459f
cmp al, 0x2b
push eax
jmp 0x904de8
cmp dl, 0x5a
call fcn.00904b21
jmp 0x904b0b
cmp dl, 0x7a
jbe 0x8c2ade
ja 0x8c2b21
mov byte [0x2adfb82a], al
xchg ebp, eax
retf
lea esp, [esp + 4]
jb 0x8c2b21
jae 0x904ae3
hlt
lea esp, [esp + 0x18]
cmp dl, 0x39
jmp 0x904b6f
invalid
lea esp, [esp + 0x20]
cmp dl, 0x2b
call fcn.00904bc3
jl 0x904b57
add ax, si
xor ebp, dword [ebp + 0x7c]
dec edi
salc
jbe 0x8c2ade
ja 0x8c2b0b
dec esi
rcl dword [ecx + 0x30], 0xc3
add al, 0xd3
inc edi
xlatb
mov dl, 0x41
invalid
cmp cl, 0x41
jmp 0x904c0d
lea esp, [esp + 0x20]
mov cl, byte [ecx + 3]
jmp 0x904bcf
jb 0x904493
cmp cl, 0x5a
jbe 0x90447c
ja 0x904493
jmp 0x904c5e
cmp cl, 0x7a
jmp 0x904c6d
lea esp, [esp + 4]
cmp cl, 0x61
jb 0x9044a9
jmp 0x904c48
jbe 0x90447c
ja 0x9044a9
cli
hlt
lea esp, [esp + 0x10]
cmp cl, 0x39
call 0x904e21
sub ecx, dword [edi + reloc.KERNEL32.dll_GetStartupInfoA]
mov byte [0xf3f2cdd], al
or byte [ebx - 8], 0xff
inc dword [ebx - reloc.KERNEL32.dll_GetStartupInfoA]
and al, 3
jb 0x904501
sub esp, 0x13
stc
lea esp, [esp + 3]
jmp 0x904c9a
lea esp, [esp + 2]
lea esp, [esp + 2]
and al, 2
mov eax, 0x403
jmp 0x9044e7
lea esp, [esp + 4]
cmp cl, 0x3d
je 0x90447c
jne 0x8c2a3d
lea esp, [esp + 2]
jmp 0x904d33
lea esp, [esp + 4]
cmp dl, 0x3d
push ebp
pop word [esp]
call 0x904cf6
mov dword [edi], 1
jmp 0x90465b
lea esp, [esp + 4]
jne 0x904517
je 0x904d1d
push es
xchg dword [edi], edx
jb 0x904cc5
xor dword [edx - reloc.KERNEL32.dll_GetStartupInfoA], edi
push dword [esp + 2]
lea esp, [esp + 4]
jmp 0x904d0c
cmp cl, 0x2f
pushfd
lea esp, [esp + 4]
je 0x90447c
pushfd
jmp 0x904ce3
lea esp, [esp + 4]
cmp cl, 0x2b
je 0x90447c
jmp 0x904d98
push word [esp + 1]
pushfd
lea esp, [esp + 9]
lea esp, [esp + 1]
jmp 0x904e0a
jne 0x904573
je 0x904f37
sub esp, dword [esi + reloc.KERNEL32.dll_GetStartupInfoA]
push edi
mov esi, 0x8d4b2889
and al, 4
jbe 0x90447c
ja 0x904501
lea esp, [esp + 0x10]
movzx eax, al
cmc
jmp 0x904e6e
lea esp, [esp + 0x20]
cmp al, 0x39
ja 0x904589
sub esp, 0x10
jmp 0x904e31
add eax, 4
jmp 0x90459f
push 0x3f
jmp 0x904557
push edx
push dword [esp + 2]
call fcn.00904ed0
inc ebx
aam 0x4a
sub eax, 0x80c11ddc
inc ebx
cli
aad 0x44
ja 0x904622
sub eax, 0x41
jmp 0x90459f
push edx
lea esp, [esp + 2]
lea esp, [esp + 4]
jne 0x904541
jmp 0x904e8f
push 0x3e
jmp 0x904557
push eax
lea esp, [esp + 4]
leave
ret
mov edi, dword [esp]
mov bx, word [esp]
lea esp, [esp + 4]
pop ebx
jmp 0x905451