Function at 0x41d081
Capabilities:
Encode data using xor

Disassembly:
push esi
sub esp, 0x10
mov eax, dword [esp + 0x18]
mov dword [esp + 0xc], eax
mov cx, word [0x4a502c]
movsx eax, cx
add eax, 0x8a13ac77
mov edx, dword [0x49c1d8]
imul edx, eax
mov dword [0x49c1d8], edx
mov eax, dword [0x49ef1c]
mov edx, dword [0x49e41c]
inc edx
mov dword [0x49e41c], edx
xor eax, edx
cmp eax, 0xc79ef691
je 0x41d034
mov ax, word [0x4a54ee]
movsx ecx, ax
imul ecx, ecx, 0xcf739ca3
or ecx, 0x67d74686
cmp ecx, 0x3974e5c8
je 0x41d02f
mov eax, dword [0x4a0ad0]
inc eax
mov dword [0x4a0ad0], eax
and eax, 0x5a1d7848
cmp eax, 0x48a3801
jge 0x41d02a
jmp 0x41d02a
jmp 0x41d02f
jmp 0x41d034
mov eax, dword [0x4a0aac]
add eax, 0x28c850
mov dword [0x4a0aac], eax
mov eax, dword [esp + 0xc]
mov ecx, esp
mov dword [ecx], eax
call fcn.00451710
mov dword [esp + 4], eax
mov eax, dword [0x49f37c]
add eax, 0xe5000481
mov dword [0x49f37c], eax
mov eax, dword [esp + 4]
dec eax
mov dword [esp + 4], eax
mov eax, dword [0x4a0cd8]
xor eax, 0xb3366063
mov dword [0x4a0cd8], eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc]
movsx eax, byte [ecx + eax]
cmp eax, 0x22
jne 0x41d1ce
mov eax, 0xde64582
mov cx, word [0x4a1366]
mov dx, cx
dec edx
mov si, dx
mov word [0x4a1366], si
movsx edx, cx
imul edx, edx, 0x664d03d6
cmp eax, edx
jl 0x41d0da
mov eax, dword [0x498e38]
dec eax
mov dword [0x498e38], eax
imul eax, eax, 0x1b5a4e01
mov ecx, dword [0x49e28c]
or ecx, eax
mov dword [0x49e28c], ecx
mov eax, dword [esp + 0xc]
mov byte [eax], 0x22
mov cx, word [0x4a3570]
movsx eax, cx
imul eax, eax, 0x6a67e528
mov edx, dword [0x4a0800]
sub eax, edx
mov edx, dword [0x49fd24]
dec edx
mov dword [0x49fd24], edx
cmp eax, edx
jl 0x41d126
mov ax, word [0x4a2826]
mov cx, ax
add ecx, 0x79eb9a30
mov ax, cx
mov word [0x4a2826], ax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc]
mov byte [ecx + eax], 0
mov dword [0x49a668], 0x9e376893
mov eax, dword [0x49e8c4]
add eax, 0xb48def86
mov dword [0x49e8c4], eax
mov eax, dword [esp + 4]
dec eax
mov dword [esp + 4], eax
mov cx, word [0x4a3d9e]
mov ax, cx
inc eax
mov cx, ax
mov word [0x4a3d9e], cx
xor eax, 0x9dd5
mov cx, ax
mov word [0x4a4e2a], cx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc]
movsx eax, byte [ecx + eax]
cmp eax, 0x22
jne 0x41d13c
mov eax, dword [0x49d6d4]
add eax, 0x2a4ae113
mov dword [0x49d6d4], eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc]
lea eax, [eax + ecx + 1]
mov dword [esp + 8], eax
mov eax, dword [0x4a06ec]
not eax
mov dx, word [0x4a54f6]
mov cx, dx
or ecx, eax
mov dx, cx
mov word [0x4a54f6], dx
jmp 0x41d2ba
mov eax, dword [0x49d0cc]
shr eax, 3
mov ecx, 0xc77c065d
sub ecx, eax
or ecx, 0x3230
mov dx, word [0x4a422a]
mov ax, dx
imul eax, ecx
mov dx, ax
mov word [0x4a422a], dx
mov eax, dword [esp + 0xc]
mov byte [eax], 0x20
mov eax, dword [0x49e27c]
and eax, 0xbfb085bb
mov dword [0x49e27c], eax
mov ax, word [0x4a40b0]
mov cx, ax
add ecx, 0x38eca6ee
mov ax, cx
mov word [0x4a40b0], ax
mov ecx, dword [esp + 4]
dec ecx
mov dword [esp + 4], ecx
mov ecx, dword [0x49fe00]
imul ecx, ecx, 0x13c39e70
or ecx, 0x3ce32353
mov edx, dword [0x499a28]
imul edx, ecx
mov dword [0x499a28], edx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc]
movsx eax, byte [ecx + eax]
cmp eax, 0x20
jne 0x41d210
mov eax, dword [0x499c7c]
shr eax, 7
mov cx, word [0x4a4520]
mov dx, cx
and edx, eax
mov cx, dx
mov word [0x4a4520], cx
mov eax, dword [esp + 4]
mov edx, dword [esp + 0xc]
lea eax, [eax + edx + 1]
mov dword [esp + 8], eax
mov eax, dword [0x49d4bc]
mov edx, dword [0x49e018]
xor edx, eax
mov cx, word [0x4a547c]
mov ax, cx
xor edx, eax
not edx
mov cx, dx
mov word [0x4a547c], cx
mov eax, 0x540ebe94
mov ecx, dword [0x49cc6c]
mov edx, ecx
dec edx
mov dword [0x49cc6c], edx
mov edx, dword [0x49ebe0]
sar edx, 3
sub eax, edx
cmp ecx, eax
jge 0x41d2eb
mov dword [0x4992d4], 0x6feffffe
mov eax, dword [esp + 8]
add esp, 0x10
pop esi
ret