Function at 0x415fdb
Capabilities:
Encode data using xor
Encrypt data using aes
Reference aes constants

Disassembly:
push eax
mov eax, ebp
jmp 0x44d4e9
setne cl
push ebx
mov ebx, ebp
jmp 0x415f5b
lea ebx, [ebx - 4]
mov ecx, dword [ebx]
pop ebx
call fcn.0044d50b
mov edi, 0x78ac7094
cdq
adc al, 0x70
fiadd word [eax - 0x162a05bd]
jmp 0x415f39
mov ebx, dword [edi]
mov cl, 0xbd
lea edx, [ebx*4]
mov edx, dword [esp]
jmp 0x415fc0
add edi, 2
xchg cl, dl
or edx, edi
jg 0x44d5ce
jle 0x44d5ed
rep stosb byte es:[edi], al
call fcn.0041c474
mov ch, 0x55
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
push edi
mov dword [ebp - 0x18], edx
jmp 0x415ff2
mov eax, dword [ebp + 8]
movzx edx, byte [eax]
movzx esi, byte [eax + 1]
movzx edi, byte [eax + 5]
shl edx, 8
xor edx, esi
movzx esi, byte [eax + 2]
shl edx, 8
xor edx, esi
movzx esi, byte [eax + 3]
shl edx, 8
xor edx, esi
movzx esi, byte [eax + 4]
shl esi, 8
xor esi, edi
movzx edi, byte [eax + 6]
shl esi, 8
xor esi, edi
movzx edi, byte [eax + 7]
shl esi, 8
xor esi, edi
xor esi, dword [ecx + 4]
movzx edi, byte [eax + 8]
movzx ebx, byte [eax + 0xd]
mov dword [ebp - 0x14], esi
movzx esi, byte [eax + 9]
shl edi, 8
xor edi, esi
movzx esi, byte [eax + 0xa]
shl edi, 8
xor edi, esi
movzx esi, byte [eax + 0xb]
shl edi, 8
xor edi, esi
movzx esi, byte [eax + 0xc]
xor edi, dword [ecx + 8]
xor edx, dword [ecx]
shl esi, 8
xor esi, ebx
movzx ebx, byte [eax + 0xe]
movzx eax, byte [eax + 0xf]
shl esi, 8
xor esi, ebx
shl esi, 8
xor esi, eax
xor esi, dword [ecx + 0xc]
mov dword [ebp - 0xc], edi
shr edi, 8
mov ebx, esi
shr ebx, 0x10
mov eax, 0xff
and edi, eax
and ebx, eax
mov ebx, dword [ebx*4 + reloc.MSVBVM60.DLL__CIcos]
xor ebx, dword [edi*4 + reloc.MSVBVM60.DLL__CIcos]
mov edi, edx
shr edi, 0x18
xor ebx, dword [edi*4 + reloc.MSVBVM60.DLL__CIcos]
mov edi, dword [ebp - 0x14]
and edi, eax
xor ebx, dword [edi*4 + reloc.MSVBVM60.DLL__CIcos]
mov dword [ebp - 8], esi
xor ebx, dword [ecx + 0x10]
shr esi, 8
mov edi, edx
shr edi, 0x10
and edi, eax
and esi, eax
mov dword [ebp - 4], edi
mov edi, dword [esi*4 + reloc.MSVBVM60.DLL__CIcos]
mov esi, dword [ebp - 4]
xor edi, dword [esi*4 + reloc.MSVBVM60.DLL__CIcos]
mov esi, dword [ebp - 0x14]
mov dword [ebp + 8], edx
mov dword [ebp - 0x10], ebx
shr esi, 0x18
xor edi, dword [esi*4 + reloc.MSVBVM60.DLL__CIcos]
mov esi, dword [ebp - 0xc]
and esi, eax
xor edi, dword [esi*4 + reloc.MSVBVM60.DLL__CIcos]
mov esi, dword [ebp - 0x14]
shr esi, 0x10
shr edx, 8
and esi, eax
and edx, eax
mov dword [ebp - 4], edx
mov edx, dword [esi*4 + reloc.MSVBVM60.DLL__CIcos]
mov esi, dword [ebp - 4]
xor edx, dword [esi*4 + reloc.MSVBVM60.DLL__CIcos]
mov esi, dword [ebp - 0xc]
shr esi, 0x18
xor edx, dword [esi*4 + reloc.MSVBVM60.DLL__CIcos]
mov esi, dword [ebp - 8]
and esi, eax
xor edx, dword [esi*4 + reloc.MSVBVM60.DLL__CIcos]
mov esi, dword [ebp - 0x14]
xor edx, dword [ecx + 0x18]
xor edi, dword [ecx + 0x14]
mov dword [ebp - 4], edx
mov edx, dword [ebp - 0xc]
shr edx, 0x10
shr esi, 8
and edx, eax
mov edx, dword [edx*4 + reloc.MSVBVM60.DLL__CIcos]
and esi, eax
xor edx, dword [esi*4 + reloc.MSVBVM60.DLL__CIcos]
mov esi, dword [ebp - 8]
shr esi, 0x18
xor edx, dword [esi*4 + reloc.MSVBVM60.DLL__CIcos]
mov esi, dword [ebp + 8]
and esi, eax
xor edx, dword [esi*4 + reloc.MSVBVM60.DLL__CIcos]
mov esi, dword [ebp - 0x18]
xor edx, dword [ecx + 0x1c]
sar esi, 1
add ecx, 0x20
dec esi
mov dword [ebp - 8], edx
mov dword [ebp - 0x14], esi
je 0x41636c
mov esi, dword [ebp - 4]
shr esi, 8
and esi, eax
shr edx, 0x10
and edx, eax
mov edx, dword [edx*4 + reloc.MSVBVM60.DLL__CIcos]
xor edx, dword [esi*4 + reloc.MSVBVM60.DLL__CIcos]
mov esi, ebx
shr esi, 0x18
xor edx, dword [esi*4 + reloc.MSVBVM60.DLL__CIcos]
mov esi, edi
and esi, eax
xor edx, dword [esi*4 + reloc.MSVBVM60.DLL__CIcos]
mov esi, ebx
xor edx, dword [ecx]
shr esi, 0x10
mov dword [ebp + 8], edx
mov edx, dword [ebp - 8]
and esi, eax
shr edx, 8
and edx, eax
mov edx, dword [edx*4 + reloc.MSVBVM60.DLL__CIcos]
xor edx, dword [esi*4 + reloc.MSVBVM60.DLL__CIcos]
mov esi, edi
shr esi, 0x18
xor edx, dword [esi*4 + reloc.MSVBVM60.DLL__CIcos]
mov esi, dword [ebp - 4]
shr ebx, 8
and ebx, eax
and esi, eax
xor edx, dword [esi*4 + reloc.MSVBVM60.DLL__CIcos]
mov esi, edi
shr esi, 0x10
and esi, eax
mov esi, dword [esi*4 + reloc.MSVBVM60.DLL__CIcos]
xor esi, dword [ebx*4 + reloc.MSVBVM60.DLL__CIcos]
mov ebx, dword [ebp - 4]
shr ebx, 0x18
xor esi, dword [ebx*4 + reloc.MSVBVM60.DLL__CIcos]
mov ebx, dword [ebp - 8]
and ebx, eax
xor esi, dword [ebx*4 + reloc.MSVBVM60.DLL__CIcos]
mov ebx, dword [ebp - 4]
shr edi, 8
shr ebx, 0x10
and edi, eax
xor esi, dword [ecx + 8]
and ebx, eax
mov dword [ebp - 0x18], edi
mov edi, dword [ebx*4 + reloc.MSVBVM60.DLL__CIcos]
mov ebx, dword [ebp - 0x18]
xor edi, dword [ebx*4 + reloc.MSVBVM60.DLL__CIcos]
mov ebx, dword [ebp - 8]
shr ebx, 0x18
xor edi, dword [ebx*4 + reloc.MSVBVM60.DLL__CIcos]
mov ebx, dword [ebp - 0x10]
xor edx, dword [ecx + 4]
and ebx, eax
xor edi, dword [ebx*4 + reloc.MSVBVM60.DLL__CIcos]
mov ebx, esi
xor edi, dword [ecx + 0xc]
shr ebx, 8
mov dword [ebp - 8], edi
shr edi, 0x10
and edi, eax
mov edi, dword [edi*4 + reloc.MSVBVM60.DLL__CIcos]
and ebx, eax
xor edi, dword [ebx*4 + reloc.MSVBVM60.DLL__CIcos]
mov ebx, dword [ebp + 8]
shr ebx, 0x18
xor edi, dword [ebx*4 + reloc.MSVBVM60.DLL__CIcos]
mov ebx, edx
and ebx, eax
xor edi, dword [ebx*4 + reloc.MSVBVM60.DLL__CIcos]
mov ebx, dword [ebp + 8]
xor edi, dword [ecx + 0x10]
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x10], edi
mov edi, dword [ebp - 8]
shr edi, 8
and edi, eax
mov edi, dword [edi*4 + reloc.MSVBVM60.DLL__CIcos]
shr ebx, 0x10
and ebx, eax
xor edi, dword [ebx*4 + reloc.MSVBVM60.DLL__CIcos]
and esi, eax
mov ebx, edx
shr ebx, 0x18
xor edi, dword [ebx*4 + reloc.MSVBVM60.DLL__CIcos]
mov ebx, dword [ebp + 8]
xor edi, dword [esi*4 + reloc.MSVBVM60.DLL__CIcos]
mov esi, edx
shr esi, 0x10
and esi, eax
mov esi, dword [esi*4 + reloc.MSVBVM60.DLL__CIcos]
shr ebx, 8
and ebx, eax
xor esi, dword [ebx*4 + reloc.MSVBVM60.DLL__CIcos]
mov ebx, dword [ebp - 0xc]
shr ebx, 0x18
xor esi, dword [ebx*4 + reloc.MSVBVM60.DLL__CIcos]
mov ebx, dword [ebp - 8]
xor edi, dword [ecx + 0x14]
and ebx, eax
xor esi, dword [ebx*4 + reloc.MSVBVM60.DLL__CIcos]
mov ebx, dword [ebp - 0x10]
xor esi, dword [ecx + 0x18]
shr edx, 8
mov dword [ebp - 4], esi
mov esi, dword [ebp - 0xc]
shr esi, 0x10
and esi, eax
mov esi, dword [esi*4 + reloc.MSVBVM60.DLL__CIcos]
and edx, eax
xor esi, dword [edx*4 + reloc.MSVBVM60.DLL__CIcos]
mov edx, dword [ebp - 8]
shr edx, 0x18
xor esi, dword [edx*4 + reloc.MSVBVM60.DLL__CIcos]
mov edx, dword [ebp + 8]
and edx, eax
xor esi, dword [edx*4 + reloc.MSVBVM60.DLL__CIcos]
add ecx, 0x20
xor esi, dword [ecx - 4]
dec dword [ebp - 0x14]
mov dword [ebp - 8], esi
mov edx, esi
jne 0x41618f
shr edx, 0x10
and edx, eax
mov esi, dword [edx*4 + reloc.MSVBVM60.DLL__CIcos]
mov edx, dword [ebp - 4]
shr edx, 8
and edx, eax
mov edx, dword [edx*4 + reloc.MSVBVM60.DLL__CIcos]
and edx, 0xff00
and esi, 0xff0000
xor esi, edx
mov edx, ebx
shr edx, 0x18
mov edx, dword [edx*4 + reloc.MSVBVM60.DLL__CIcos]
and edx, 0xff000000
xor esi, edx
shr ebx, 0x10
mov edx, edi
and edx, eax
movzx edx, byte [edx*4 + 0x422364]
xor esi, edx
xor esi, dword [ecx]
and ebx, eax
mov dword [ebp + 8], esi
mov edx, esi
mov esi, dword [ebp + 0xc]
shr edx, 0x18
mov byte [esi], dl
mov edx, dword [ebp + 8]
shr edx, 0x10
mov byte [esi + 1], dl
mov edx, dword [ebp + 8]
shr edx, 8
mov byte [esi + 2], dl
mov dl, byte [ebp + 8]
mov byte [esi + 3], dl
mov edx, dword [ebx*4 + reloc.MSVBVM60.DLL__CIcos]
mov ebx, dword [ebp - 8]
shr ebx, 8
and ebx, eax
mov ebx, dword [ebx*4 + reloc.MSVBVM60.DLL__CIcos]
and ebx, 0xff00
and edx, 0xff0000
xor edx, ebx
mov ebx, edi
shr ebx, 0x18
mov ebx, dword [ebx*4 + reloc.MSVBVM60.DLL__CIcos]
and ebx, 0xff000000
xor edx, ebx
mov ebx, dword [ebp - 4]
and ebx, eax
movzx ebx, byte [ebx*4 + 0x422364]
xor edx, ebx
xor edx, dword [ecx + 4]
mov ebx, edx
shr ebx, 0x18
mov byte [esi + 4], bl
mov ebx, edx
shr ebx, 0x10
mov byte [esi + 5], bl
mov ebx, edx
shr ebx, 8
mov byte [esi + 6], bl
mov ebx, dword [ebp - 0x10]
mov byte [esi + 7], dl
shr ebx, 8
and ebx, eax
mov ebx, dword [ebx*4 + reloc.MSVBVM60.DLL__CIcos]
mov edx, edi
shr edx, 0x10
and edx, eax
mov edx, dword [edx*4 + reloc.MSVBVM60.DLL__CIcos]
and ebx, 0xff00
and edx, 0xff0000
xor edx, ebx
mov ebx, dword [ebp - 4]
shr ebx, 0x18
mov ebx, dword [ebx*4 + reloc.MSVBVM60.DLL__CIcos]
and ebx, 0xff000000
xor edx, ebx
mov ebx, dword [ebp - 8]
and ebx, eax
movzx ebx, byte [ebx*4 + 0x422364]
xor edx, ebx
xor edx, dword [ecx + 8]
shr edi, 8
mov ebx, edx
shr ebx, 0x18
mov byte [esi + 8], bl
mov ebx, edx
mov byte [esi + 0xb], dl
and edi, eax
shr ebx, 0x10
mov byte [esi + 9], bl
mov ebx, edx
mov edx, dword [ebp - 4]
shr edx, 0x10
and edx, eax
shr ebx, 8
mov byte [esi + 0xa], bl
mov edi, dword [edi*4 + reloc.MSVBVM60.DLL__CIcos]
mov edx, dword [edx*4 + reloc.MSVBVM60.DLL__CIcos]
and edi, 0xff00
and edx, 0xff0000
xor edx, edi
mov edi, dword [ebp - 8]
shr edi, 0x18
mov edi, dword [edi*4 + reloc.MSVBVM60.DLL__CIcos]
and edi, 0xff000000
xor edx, edi
mov edi, dword [ebp - 0x10]
and edi, eax
movzx eax, byte [edi*4 + 0x422364]
xor edx, eax
xor edx, dword [ecx + 0xc]
mov eax, edx
shr eax, 0x18
mov byte [esi + 0xc], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 0xd], al
mov eax, edx
shr eax, 8
mov byte [esi + 0xe], al
mov byte [esi + 0xf], dl
jmp 0x41652b
pop edi
pop esi
pop ebx
leave
ret 8
stc
cmc
call 0x44d49c
push eax
lea esp, [esp + 4]
add edi, 4
jmp 0x44d4dc
lea esp, [esp + 0x24]
call fcn.0043379d
pushal
lea esp, [esp + 0x20]
add dword [ebp - 4], 3
jmp 0x44d494
pop edi
jmp 0x415f21
dec dword [ebp - 8]
jne 0x415f4f
not edi
jmp 0x44d4c6
lea eax, [eax + 0x10]
mov ecx, dword [eax]
pop eax
mov eax, esi
jmp 0x44d524
add ecx, eax
mov eax, dword [esp]
push ebp
bsr eax, edi
jmp 0x44d50e
salc
dec ebp
frstor dword [edi + edx*2 - reloc.MSVBVM60.DLL__CIcos]
pushal
jmp 0x44d4b2
pushal
jmp 0x44d4b2
mov eax, dword [ebp + 8]
sub esp, 0
sub esp, 0xa
lea esp, [esp + 2]
jmp 0x44d52d
stc
imul eax, eax, 3
sub ebx, eax
cmc
jmp 0x44d4f3
shl esi, 2
add eax, esi
mov dword [esp + 8], ebx
call 0x44d618
mov edx, 0x8a04c683
cmp al, 0x24
add esi, 4
mov bh, byte [esp]
jmp 0x44d57a
mov eax, dword [ebp + 0xc]
pop ecx
lea ecx, [ebx + ebx]
jmp 0x44d53c
mov dword [eax], esi
sub bx, 0x84a3
pop esi
neg bl
mov bh, byte [esp]
jmp 0x44d59c
xor byte [esi - 0x7f], ah
jmp 0x44d504
pop ecx
mov ebx, 0xdcb1617f
mov bl, al
mov ebx, esi
jmp 0x44d55b
lea ebx, [ebx + edi]
mov ebx, dword [esp]
xor eax, eax
pop ebx
call fcn.0044d586
jo 0x44d55c
fscale
pop es
mov ebx, 0x2aacab3d
fidivr word [eax + ebx*4 + 0x53]
out 0xc4, eax
jl 0x44d60c
salc
inc ecx
lea esp, [esp + 0xc]
push eax
call fcn.00434b15
mov ch, byte [esp]
jmp 0x44d552
lea edx, [esp + edi]
jmp 0x44f04f
lea edx, [esp + edi]
jmp 0x44f04f
jmp 0x44e3b0
jmp 0x44e173
int 0x2f
adc al, 0x60
sbb al, 0x20
and al, 0xcd
ja 0x44d674
test eax, 0xf6a5ebc8
fsubp st(3)
imul ax, word [edx - 0x2109f3c3], 0xfff6
fidiv dword [esi + reloc.MSVBVM60.DLL__CIcos]
lahf
out 0x11, al
nop
neg dh
jmp 0x44d684
neg dh
neg dl
mov dh, 0x47
inc edx
jmp 0x44d66a
bsf edx, ebx
bswap edx
inc dh
jno 0x44d654
jo 0x44d654
adc dword [edi + reloc.MSVBVM60.DLL__CIcos], edx
mov ah, byte [0x796ec754]
movzx ecx, byte [esi]
mov dl, byte [esp]
bsf dx, sp
jne 0x44d61a
je 0x44d622
add cl, bl
jmp 0x44d6b9
bsf edx, ebx
jmp 0x44d632
sbb dword [ebp + 0xa], 0xffffff97
salc
xor ch, byte [esi + 0x22]
fnstcw word [edx - 0x1063d75d]
mul cl
neg dl
mov dh, 0x47
inc edx
jmp 0x44d62f
lea esp, [esp + 1]
jmp 0x44d6ce
btc edx, ebp
lea edx, [ecx + edx]
jmp 0x44d68b
sub esp, 1
jb 0x44d6a1
btc edx, ebp
lea edx, [ecx + edx]
lea esp, [esp + 1]
jmp 0x44d6ce
mov dl, cl
sub esp, 0x1a
jmp 0x44d713
sub esp, 0xe
pop word [esp + 0x21]
lea esp, [esp + 2]
jmp 0x44d752
mov cx, bx
lea esp, [esp + 1]
jmp 0x44d646
lea esp, [esp + 2]
jmp 0x44d752
jne 0x44d6d9
sub esp, 0xe
pop word [esp + 0x21]
jmp 0x44d6fd
lea esp, [esp + 0x24]
dec dl
call 0x44d735
jp 0x44d789
push dword [esp + 2]
lea esp, [esp + 1]
jmp 0x44d791
lea esp, [esp + 0x14]
xor dl, 0xae
sub esp, 8
js 0x44d793
mov word [esp + 3], sp
mov dword [esp + 1], eax
mov byte [esp + 2], dh
jmp 0x44d7c5
push dword [esp + 2]
lea esp, [esp + 1]
jmp 0x44d769
mov word [esp + 3], sp
jmp 0x44d79e
mov dword [esp + 1], eax
mov byte [esp + 2], dh
pop word [esp]
pop word [esp]
jmp 0x44d905
pop word [esp]
pop word [esp]
call fcn.0044d8c2
test dword [esi], eax
retf
sub esp, 0x19
je 0x44d6f1
mov cx, bx
lea esp, [esp + 1]
jmp 0x44d646
call fcn.0044d864
sub esp, 0x1c
ja 0x44d84e
lea esp, [esp + 2]
jmp 0x44d86a
lea esp, [esp + 2]
jmp 0x44d86a
lea esp, [esp + 0x1c]
xor dl, 0xb2
push sp
push word [esp + 1]
jg 0x44d89c
jle 0x44d89c
aad 0x63
inc ecx
cdq
cli
je 0x44d89c
test al, 0x6d
cmpsd dword [esi], dword es:[edi]
popfd
test byte [esi - 0x16dc1870], dh
leave
insb byte es:[edi], dx
cmp cl, bl
call fcn.0044d8dd
add bl, dl
inc dx
jmp 0x44d8c7
mov dh, ch
xor dl, ah
bswap edx
jmp 0x44d918
js 0x44d8ab
mov dh, ch
xor dl, ah
jmp 0x44d8df
bswap edx
jmp 0x44d918
jmp 0x44dd2f
call fcn.0044da35
add edi, 2
mov edx, dword [esp]
mov dx, 0x7ac6
not ch
jmp 0x42b9b9
lea esp, [esp + 4]
inc dl
stc
jns 0x44d825
js 0x44d825
inc esi
bswap edx
mov dh, byte [esp]
sbb dl, al
jl 0x44d8e3
jge 0x44dd2f
sub eax, 0xaa5f38aa
adc al, 0x4b
loop 0x44d94e
insb byte es:[edi], dx
mov word [esp], sp
lea esp, [esp + 2]
mov ax, word [edi]
not ecx
lea ecx, [ecx + edi]
jmp 0x44d7e7
not dx
mov ah, 0xf1
add edi, 2
mov edx, 0x271da1cf
add bh, byte [edx + 0x271da1cf]
bswap edx
jmp 0x44d994
mov al, byte [ecx]
mov edx, dword [esp]
lea edx, [edx + ebx]
bswap edx
call fcn.0044d97e
jns 0x44d96c
xchg ebx, eax
test byte [0xff146c2], 0xca
mov ecx, dword [esp]
mov eax, dword [esp + 7]
mov ecx, dword [edi]
rdtsc
jmp 0x44d947
ret 0xf146
xchg dx, ax
mov ax, word [esp]
jmp 0x44d958
mov byte [ecx + ebp], al
inc eax
jb 0x44d8e8
jae 0x44d8e8
bts bx, si
xchg dh, cl
jmp 0x436d27
lea edx, [esp + ecx]
mov word [edi], cx
inc cx
jge 0x44d5fa
bts bx, si
xchg dh, cl
jmp 0x436d27
mov cl, byte [ebx]
lea ebx, [ecx*4]
not edx
bts dx, di
jnp 0x44d5f5
lea edx, [esp + ecx]
jmp 0x44e3b3