Function at 0x497f9e
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
mov esi, dword [ebp]
add byte [ebx - 0x7cee74f2], cl
xor eax, dword [eax]
jg 0x4d5be9
xor al, byte [eax]
add al, al
jne 0x545bfc
cmp dword [ecx], 0x7fffffff
mov eax, dword [eax]
add byte [esp + ecx*2 + 0x220003dc], al
add byte [edx + edx*8 + 0x1c70875], al
add dword [eax], eax
add byte [eax], al
mov eax, dword [esi]
mov ecx, dword [ebp - 0x1d]
add cl, cl
je 0x498016
mov dword [eax + 0x210], 0
jle 0x49800b
add byte [ebp + 0x10], dl
mov eax, dword [esi]
lea edx, [edx + 4]
add byte [eax], al
mov edi, dword [eax - 0x3fffdf0]
add bh, bh
inc eax
jge 0x498011
mov dword [eax + edi*4], ebx
mov eax, dword [esi]
push es
call [eax + eax]
add al, byte [eax]
add byte [ebx + 0x7501e9], al
sub ecx, 1
jne 0x498016
add byte [esi], cl
mov ebx, dword [ecx + 8]
test dword [edi + 0xf18400], ecx
add byte [eax], al
mov edi, dword [ecx]
cmp edi, dword [ecx + 0xe810]
jne 0x498114
add byte [eax], al
test edi, edi
jle 0x498064
lea ecx, [eax + eax - 0x7d]
mov eax, 0x104
add byte [eax], al
add cl, cl
cmp dword [eax + 0x104], 0
add byte [eax], al
leave
add byte [eax], al
add byte [ebx + 0x100e9], cl
add byte [ebx], bh
xor byte [ebx - 0x72ffff8b], cl
mov eax, 0xf7000000
add al, al
add al, 0x3b
xlatb
jl 0x49803e
xor eax, dword [eax]
add byte [ebp + 0x10], dl
test edi, edi
jle 0x49800a
add byte [ecx + 0x110], al
mov dword [ebp], eax
add byte [esi], al
lea ebx, [ebx + 0x590000]
cmp dword [eax - 0x104], 0xea
jne 0x498104
mov eax, 0x2000d441
imul ebx
sar edx, 7
mov eax, dword [eax]
add bl, ch
pop ds
add ebx, edx
mov ebp, ebp
add byte [ebx + 0x8b1055], cl
imul eax, dword [eax]
add al, dl
mov eax, dword [ebp + 8]
or dword [ecx], 0
mov dword [ebp + 0x10], edx
mov dword [ebp + 8], eax
add dword [eax], 0
jne 0x49807e
test edx, edx
js 0x49811b
add byte [ecx + 4], al
lea ebx, [edx*4]
mov ecx, dword [ebx + eax]
test ecx, ecx
pop ds
add byte [ebp - 0x25], cl
add eax, dword [eax]
push 0x10
call fcn.004a80d9
add esp, 4
js 0x4980de
mov ecx, edi
push dword [ebp + 0xc]
mov dword [edi], 0
call fcn.004a3ace
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
mov dword [eax], eax
add byte [ebx + 0x4418b0e], cl
ja 0x4980fe
add ebx, dword [edi + 0x5e]
pop ebx
pop ebp
ret
mov eax, dword [eax]
add byte [ebp + 8], bl
cdq
idiv dword [ebx - 0xffa0]
mov ebx, eax
jmp 0x49809b
xor eax, dword [eax]
add bh, ah
push ebp
mov ebp, esp
xor dword [eax + 0x64ec8300], 0x53
mov ebx, dword [ebp + 8]
add byte [eax], al
dec esp
and al, 0x24
push edi
mov ebp, dword [ecx - 0x74cf7500]
into
call fcn.004983fe
mov eax, dword [esi + 8]
mov eax, dword [eax]
test byte [eax], al
and al, 0x10
mov eax, dword [ebx + 4]
mov esi, dword [eax]
add byte [eax], al
call fcn.004983fe
rol byte [eax], cl
or byte [ebx + 0x438b0478], cl
add al, 0
add byte [ebx + ecx*4], al
into
call int.004a38fe
mov eax, dword [esi + 8]
mov eax, dword [eax]
mov dword [eax], eax
add byte [eax], ah
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0x17317500]
mov dword [edx], eax
add byte [eax], al
add byte [eax], al
or byte [ebp + 0xe40244c], cl
add byte [eax + 4], dh
mov dword [esp + 0x20], esi
call fcn.00488189
mov edx, dword [ebp + 8]
cmp al, byte [eax]
xor eax, eax
mov dword [esp + 0x30], ebx
mov al, byte [eax]
add byte [eax - 0x7cf0dbb4], cl
rol byte [eax], cl
add ecx, dword [edi]
or byte [esi + 0x3da], 0
add al, 0x8b
dec eax
or al, ch
insb byte es:[edi], dx
add byte [eax], al
add byte [ebx + 0x40c033d0], cl
add byte [eax], al
and al, 0x30
test dl, 2
push es
add byte [edx - 0x26], ch
add eax, dword [eax]
mov cl, al
and eax, dword [eax]
add byte [esp + 0xf], cl
mov dword [esp + esi], edx
test esi, esi
je 0x4d5c3a
add dl, al
sub eax, ebx
je 0x4c82c2
sub eax, 1
jne 0x4c81e9
mov dword [esp + 0x23], ebx
add bh, bh
jle 0x498256
mov esi, dword [esp + 0x10]
add byte [eax], al
and al, 0x20
mov ecx, esi
push edi
lcall 1, 0xdbe81000
add byte [ebx + 0x24540000], cl
xor byte [ecx - 0x7b], bl
dec esi
add byte [eax + esi*4 - 0x74ffffff], al
inc esp
add byte [eax], al
mov ecx, edx
sub ecx, esi
shr dword [ebp + 0x7c89f900], 1
and al, 0x34
sub edi, eax
add byte [eax], al
cwde
add dword [eax], eax
add byte [eax + 0x15], dl
add byte [esp], ah
push edx
call fcn.004b72dc
add ah, al
or al, 0x85
ror byte [edi], 0x88
add dl, bl
add eax, dword [eax]
mov eax, dword [esp + 0x1c]
add byte [eax], al
and al, 0x14
lea ecx, [eax + eax]
rol byte [eax], cl
and al, 0x2c
add esi, ecx
test edi, edi
jg 0x498256
add byte [ebp + 8], bh
mov eax, dword [edi + 4]
add byte ds:[ebx + 0x199e8ce], cl
add byte [eax], al
add byte [eax], al
or byte [ebx - 0x16bb7700], cl
add byte [ebx + 0x308b0447], cl
mov ecx, esi
add byte [eax], al
add dword [eax], eax
add byte [ebx + 0x74005146], cl
and al, 0x14
mov edi, dword [eax + 4]
mov eax, dword [eax]
add al, ch
dec ebp
invalid
adc byte [edx + 1], ch
push dword [ebp + 0x20]
call esi
test eax, eax
je 0x4c82db
mov esi, dword [sym.imp.KERNEL32.dll_LCMapStringW]
push ebx
push ebx
push edi
push dword [ebp - 0xc]
push dword [ebp + 0xc]
push dword [ebp + 8]
call esi
mov ecx, eax
cmp ecx, ebx
mov dword [ebp - 8], ecx
je 0x4c82db
test word [ebp + 0xc], 0x400
je 0x4c824b
cmp dword [ebp + 0x1c], ebx
je 0x4c82db
cmp ecx, dword [ebp + 0x1c]
jg 0x4c82db
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push edi
push dword [ebp - 0xc]
push dword [ebp + 0xc]
push dword [ebp + 8]
call esi
jmp 0x4c82db
cmp ecx, ebx
jle 0x4c8294
push 0xffffffffffffffe0
xor edx, edx
pop eax
div ecx
cmp eax, 2
jb 0x4c8294
lea eax, [ecx + ecx + 8]
cmp eax, 0x400
ja 0x4c827c
call fcn.004c93e0
mov esi, esp
cmp esi, ebx
je 0x4c82db
mov dword [esi], 0xcccc
add esi, 8
jmp 0x4c8296
push eax
call fcn.004c86e1
cmp eax, ebx
pop ecx
je 0x4c8290
mov dword [eax], 0xdddd
add eax, 8
mov esi, eax
jmp 0x4c8296
xor esi, esi
cmp esi, ebx
je 0x4c82db
push dword [ebp - 8]
push esi
push edi
push dword [ebp - 0xc]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_LCMapStringW]
test eax, eax
je 0x4c82d4
cmp dword [ebp + 0x1c], ebx
push ebx
push ebx
jne 0x4c82bd
push ebx
push ebx
jmp 0x4c82c3
push dword [ebp + 0x1c]
jne 0x4c82dc
push dword [ebp + 0x18]
sbb bh, bh
jne 0x4c82be
push dword [ebp - 8]
push esi
push ebx
push dword [ebp + 0x20]
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov dword [ebp - 8], eax
inc ebp
clc
push esi
call fcn.004c809a
pop ecx
push dword [ebp - 0xc]
jne 0x4c82d2
call fcn.004c809a
mov eax, dword [ebp - 8]
pop ecx
jmp 0x4c8445
lea esp, [ebp - 0x20]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004c55ae
leave
ret
imul eax, dword [ebx - 0x13469c8c], 0xb6d9ac04
xor dword [ebx + 0x1f], eax
jmp 0xcdc8eaf2
jnp 0x4d5b9d
inc eax
loopne 0x4d5bfe
in al, 0xa0
push esp
mov byte [0x27c70f81], al
and byte [edx], dl
push esp
test edx, esi
call 0xb74c3bc
daa
or ecx, dword [eax + 0x2a]
dec ebx
inc edi
or ecx, dword [eax + 0x2a]
dec ebx
inc edi
invalid
xlatb
jmp 0x4d5bbe
sal byte [eax + 0x34], 1
call eax
jo 0x545c37
call eax
jo 0x545c3b
call eax
jo 0x545c3f
call eax
jo 0x545c43
call eax
jo 0x545c47
call eax
jo 0x545c4b
call eax
jo 0x545c4f
call eax
jo 0x545c53
call eax
jo 0x545c57
call eax
jo 0x545c5b
call eax
jo 0x545c5f
call eax
jo 0x545c63
call eax
jo 0x545c67
call eax
jo 0x545c6b
call eax
jo 0x545c6f
call eax
jo 0x545c73
call eax
jo 0x545c77
call eax
jo 0x545c7b
call eax
jo 0x545c7f
call eax
jo 0x545c83
call eax
jo 0x545c87
call eax
jo 0x545c8b
call eax
jo 0x545c8f
call eax
jo 0x545c93
call ebp
test eax, 0xe6e6ff88
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
out 0xe6, al
out 0xff, al
loop 0x545d53
jmp esi
jmp esi
jmp esi
jmp esi
jmp esi
jmp esi
jmp esi
jmp esi
jmp esi
jmp esi
jmp esi
jmp esi
jmp esi
jmp esi
jecxz 0x545d6f
dec dword [esi - 0x2f00864d]
jo 0x545dab
invalid
call eax
jo 0x545daf
call eax
jo 0x545db3
call eax
jo 0x545db7
call eax
jo 0x545dbb
call eax
jo 0x545dbf
call eax
jo 0x545dc3
call eax
jo 0x545dc7
invalid
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
mov ebp, 0xa7ffbebf
pop ebp
das
jmp dword [edi - 0x5800d0a3]
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
inc eax
rol al, 0xff
rol al, 0xc0
invalid