Function at 0x41ebcc
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x134
push ebx
push ebp
push esi
xor esi, esi
mov dword [esp + 0x28], 0xf7f1fdf9
push edi
mov dword [esp + 0x30], 0xe0fabff5
mov ecx, esi
mov word [esp + 0x34], 0xf7f5
mov al, byte [esp + ecx + 0x2c]
xor al, 0x90
movzx eax, al
mov word [esp + ecx*2 + 0xb0], ax
inc ecx
cmp ecx, 0xa
jl 0x41ebf1
xor eax, eax
mov dword [esp + 0x50], 0x46
mov word [esp + 0xc4], ax
mov edx, 0xe7ea7d5c
movzx eax, byte [0x42bbb8]
imul eax, eax, 0xf0
push esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x7c], 1
mov dword [esp + 0x80], esi
or al, 0x4d
mov dword [esp + 0x84], esi
movzx ecx, al
mov eax, 0x9071
or cx, ax
mov dword [esp + 0x88], esi
mov eax, 0x39d9
sub cx, ax
movzx eax, cl
xor eax, 0x20
mov word [0x42bbb4], cx
or eax, 0x4f
add eax, 0x1a6167a1
or eax, 0xc10bfbdc
mov dword [0x42bbb8], eax
movzx eax, cl
imul eax, eax, 0x6a
mov byte [0x42bbb2], al
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x90]
push eax
push 6
pop ecx
call fcn.0041568d
call eax
test eax, eax
jne 0x41f6f5
mov dword [esp + 0x24], 0xf0f3e9e4
mov ecx, esi
mov word [esp + 0x28], 0xe1ec
mov edx, 0xff
mov byte [esp + 0x2a], 0xf9
movzx eax, byte [esp + ecx + 0x24]
add ax, 0x60
and ax, dx
mov word [esp + ecx*2 + 0x8c], ax
inc ecx
cmp ecx, 7
jl 0x41ecc7
xor eax, eax
mov edx, 0xf09d96e3
mov word [esp + 0x9a], ax
mov eax, dword [0x42bbb8]
or eax, 0xd64e
mov word [0x42bbb4], ax
mov al, byte [0x42bbb2]
add al, 0x5e
movzx eax, al
or eax, 0x54d8a92d
push esi
mov dword [0x42bbb8], eax
add al, 0x5b
push esi
mov byte [0x42bbb2], al
lea eax, [esp + 0x94]
push esi
push eax
push 7
pop ecx
call fcn.0041568d
call eax
mov ecx, dword [0x42bbb8]
mov ebx, eax
mov dl, cl
mov dword [esp + 0x3c], ebx
or dl, 0xdd
test ebx, ebx
je 0x41f6fb
xor ecx, 0x2a41
movzx eax, dl
or ecx, 0x559e
and dl, 0xd2
push ebx
mov word [0x42bbb4], cx
and eax, 0xc41048a
mov byte [0x42bbb2], dl
mov edx, 0x271b5d23
push 7
pop ecx
mov dword [0x42bbb8], eax
call fcn.0041568d
call eax
mov dx, word [0x42bbb4]
mov ebp, eax
movzx ecx, dx
or ecx, 0xc9ec10f6
mov dword [esp + 0x20], ebp
mov dword [0x42bbb8], ecx
test ebp, ebp
je 0x41f6cd
mov eax, 0x3404
and dx, ax
mov eax, 0x2095
xor dx, ax
mov eax, 0x484a
push 0x8040
or dx, ax
movzx eax, byte [0x42bbb2]
push esi
push esi
imul eax, eax, 0x94
push 2
push 0x7f00
push esi
mov word [0x42bbb4], dx
mov edx, 0x19e8f7ab
mov byte [0x42bbb2], al
movzx eax, al
sub eax, 0x589f300
push 5
pop ecx
mov dword [0x42bbb8], eax
call fcn.0041568d
call eax
add byte [0x42bbb2], 0x7b
mov edi, eax
and dword [0x42bbb8], 0x6b7d7cd3
test edi, edi
je 0x41ee35
lea eax, [esp + 0x9c]
mov edx, 0x6b592b67
push eax
push edi
push 5
pop ecx
call fcn.0041568d
call eax
test eax, eax
je 0x41ee4d
lea eax, [esp + 0x2c]
mov edx, 0xfc7a7777
push eax
push 5
pop ecx
call fcn.0041568d
call eax
test eax, eax
jne 0x41ee6d
mov cl, byte [0x42bbb4]
mov edi, esi
or cl, 0x3e
movzx eax, cl
and eax, 0xc9b9fbec
mov byte [0x42bbb2], cl
mov dword [0x42bbb8], eax
jmp 0x41ee73
mov cl, byte [0x42bbb2]
movzx ecx, cl
mov eax, 0xb6af
imul ecx, eax
mov edx, 0x1be3efe3
push 8
push ebx
push 7
mov word [0x42bbb4], cx
pop ecx
call fcn.0041568d
call eax
movzx ecx, byte [0x42bbb8]
mov edx, 0x1be3efe3
imul ecx, ecx, 0x28
mov ebx, eax
push 0xa
push dword [esp + 0x40]
push 7
mov byte [0x42bbb2], cl
pop ecx
call fcn.0041568d
call eax
mov cl, byte [0x42bbb8]
mov edx, 0x8e1e617c
push eax
push ebx
push dword [esp + 0x44]
and cl, 0xfe
mov dword [esp + 0x28], eax
mov byte [0x42bbb2], cl
push 7
pop ecx
call fcn.0041568d
call eax
mov edx, eax
mov dword [esp + 0x54], edx
test edx, edx
je 0x41f699
mov cl, byte [0x42bbb2]
mov eax, 0x3fce
and cl, 0x99
sub cl, 0x35
mov byte [0x42bbb2], cl
mov cx, word [0x42bbb4]
add cx, ax
push edx
movzx eax, cx
mov edx, 0x93f47bf0
imul eax, eax, 0x284b738
push ebp
mov word [0x42bbb4], cx
push 7
pop ecx
mov dword [0x42bbb8], eax
call fcn.0041568d
call eax
mov ecx, dword [0x42bbb8]
add ecx, 0xffffb7b3
mov dword [esp + 0x24], eax
mov word [0x42bbb4], cx
lea edx, [ecx - 0x3d]
mov byte [0x42bbb2], dl
test eax, eax
je 0x41f679
push 0x40cc0020
push esi
push esi
push dword [esp + 0x48]
movzx eax, dl
add ecx, 0xffffc713
push dword [esp + 0x2c]
imul eax, eax, 0x74
mov edx, 0x14b1f8c4
push ebx
push esi
push esi
push ebp
sub al, 0x60
mov word [0x42bbb4], cx
xor al, 0x43
mov byte [0x42bbb2], al
movzx eax, cx
sub eax, 0x184914ca
push 7
pop ecx
mov dword [0x42bbb8], eax
call fcn.0041568d
call eax
test eax, eax
je 0x41f63e
mov eax, dword [0x42bbb8]
sub eax, 0x4583e0a
mov dword [0x42bbb8], eax
test edi, edi
je 0x41f05e
mov eax, 0x1c1f
add ax, word [0x42bbb4]
movzx edx, ax
mov eax, dword [esp + 0x2c]
add edx, 0xd8acc03d
sub eax, dword [esp + 0xa0]
push 0
pop ebx
cmovns ebx, eax
mov dword [0x42bbb8], edx
imul eax, edx, 0x762e
xor eax, 0x9753
movzx ecx, ax
mov word [0x42bbb4], ax
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0xa4]
jns 0x41f03d
sub cl, 0x5f
mov eax, 0x36ac
add edx, 0xc396b88b
movzx ecx, cl
imul ecx, eax
mov eax, esi
mov dword [0x42bbb8], edx
mov word [0x42bbb4], cx
push edi
push eax
push ebx
or dl, 0xdd
push ebp
mov byte [0x42bbb2], dl
mov edx, 0x7de53dfa
push 5
pop ecx
call fcn.0041568d
call eax
mov eax, dword [0x42bbb8]
sub al, 0x64
mov dword [esp + 0x1c], esi
mov byte [0x42bbb2], al
mov edx, 0x883893dc
lea eax, [esp + 0x1c]
push eax
push esi
push dword [esp + 0x5c]
push 6
pop ecx
call fcn.0041568d
call eax
test eax, eax
jne 0x41f63e
cmp dword [esp + 0x1c], esi
je 0x41f63e
mov ecx, dword [0x42bbb8]
mov edx, 0x5ba82cd
movzx eax, cl
or ecx, 0x1116
imul eax, eax, 0x2b
mov word [0x42bbb4], cx
mov dword [esp + 0x18], esi
mov dword [esp + 0x38], esi
mov byte [0x42bbb2], al
movzx eax, al
sub eax, 0x5c87f337
mov dword [0x42bbb8], eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x1c]
push eax
push 6
pop ecx
call fcn.0041568d
call eax
test eax, eax
jne 0x41f61f
cmp dword [esp + 0x38], esi
je 0x41f61f
cmp dword [esp + 0x18], esi
je 0x41f61f
push dword [esp + 0x38]
call fcn.0040570b
mov ebx, eax
pop ecx
test ebx, ebx
je 0x41f61f
movzx edx, byte [0x42bbb2]
mov ecx, 0x577
imul edx, ecx
mov eax, 0x4069
push ebx
push dword [esp + 0x3c]
push dword [esp + 0x20]
sub dx, ax
movzx eax, dx
mov word [0x42bbb4], dx
xor eax, 0x87133d64
push 6
mov edx, 0x55220f7b
mov dword [0x42bbb8], eax
pop ecx
call fcn.0041568d
call eax
test eax, eax
jne 0x41f403
movzx ecx, byte [0x42bbb2]
mov ebp, esi
and ecx, 0x13d8c249
cmp dword [esp + 0x18], esi
jbe 0x41f1c9
mov edi, ebx
push dword [edi + 0x30]
movzx eax, cl
imul ecx, eax, 0xec
movzx eax, cl
and eax, 0x9ae64d2d
mov byte [0x42bbb2], cl
mov dword [0x42bbb8], eax
movzx eax, cl
mov ecx, 0x1f67
sub ax, cx
mov word [0x42bbb4], ax
lea eax, [esp + 0xb4]
push eax
call fcn.00405af6
pop ecx
pop ecx
test eax, eax
je 0x41f3b8
mov ecx, dword [0x42bbb8]
inc ebp
add edi, 0x4c
cmp ebp, dword [esp + 0x18]
jb 0x41f172
mov ebp, dword [esp + 0x20]
lea eax, [ecx - 0x2f]
mov byte [0x42bbb2], al
mov eax, ecx
or eax, 0x9840
and ecx, 0x11c4471f
push ebx
mov word [0x42bbb4], ax
mov dword [0x42bbb8], ecx
call fcn.004056f0
movzx eax, word [0x42bbb4]
and eax, 0x3ff34ec0
pop ecx
mov dword [0x42bbb8], eax
cmp dword [esp + 0x18], esi
jne 0x41f61f
lea eax, [esp + 0x14]
mov edx, 0xb91d33f0
push eax
push 1
push esi
push 8
pop ecx
call fcn.0041568d
call eax
test eax, eax
jne 0x41f61f
mov edi, dword [esp + 0x14]
test edi, edi
je 0x41f61f
movzx ecx, byte [0x42bbb2]
mov eax, 0xa09a
or cx, ax
mov dword [esp + 0x58], esi
movzx ebx, cx
mov eax, 0xff18
movzx ecx, byte [0x42bbb2]
imul ebx, eax
add ecx, 0x36547e9f
movzx eax, bx
mov dword [esp + 0x20], eax
movzx eax, cl
or ecx, 0x2bdbdfc6
imul edx, eax, 0x9c
movzx eax, bx
cmp dword [esp + 0x50], esi
jbe 0x41f322
movzx eax, dl
xor bl, 0x61
xor eax, 0x7b8c00a9
add eax, 0x3ca79bcc
mov dword [0x42bbb8], eax
movzx eax, bl
imul eax, eax, 0xd1
push 0x10
push 0x428f28
mov byte [0x42bbb2], al
mov eax, dword [esp + 0x28]
add eax, 0xffffdd4c
mov word [0x42bbb4], ax
lea eax, [esp + 0x64]
push eax
call fcn.00401d70
imul eax, dword [esp + 0x64], 0x1c
lea edx, [esp + 0x5c]
mov ecx, dword [0x42bbb8]
add esp, 0xc
mov edi, dword [esp + 0x14]
and ecx, 0x152c
add ecx, 0xffffbb14
mov dword [esp + eax + 0x70], 4
imul eax, dword [esp + 0x58], 0x1c
mov dword [esp + eax + 0x6c], 1
imul eax, dword [esp + 0x58], 0x1c
mov dword [esp + eax + 0x74], edx
inc dword [esp + 0x58]
movzx eax, cx
movzx ecx, cx
sub ecx, 0x2d4233d7
or ecx, 0x93602c55
movzx eax, al
mov edx, 0x3a256861
imul eax, eax, 0xa9
mov byte [0x42bbb2], al
mov eax, ecx
or eax, 0x53f
mov word [0x42bbb4], ax
lea eax, [ecx + 0x78f8f09c]
mov dword [0x42bbb8], eax
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0xcc]
push eax
push edi
push dword [esp + 0x28]
push 6
pop ecx
call fcn.0041568d
call eax
test eax, eax
mov al, byte [0x42bbb4]
je 0x41f40e
add al, 0x17
mov edx, 0xc1ba
movzx ecx, al
or cx, dx
mov byte [0x42bbb2], al
movzx eax, cx
and ecx, 0x8b9a
imul eax, eax, 0x8fe2b98d
or ecx, 0xb02
mov word [0x42bbb4], cx
mov dword [0x42bbb8], eax
mov eax, dword [esp + 0x14]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
jmp 0x41f61f
movzx eax, word [0x42bbb4]
add eax, 0x69b1ae80
or eax, 0x3899046e
mov dword [0x42bbb8], eax
imul eax, eax, 0x423b
push 0x10
push edi
mov word [0x42bbb4], ax
lea eax, [esp + 0xd0]
push eax
call fcn.00401d70
movzx ecx, byte [0x42bbb2]
add esp, 0xc
or ecx, 0xae127224
mov dword [esp + 0x18], esi
jmp 0x41f1c9
mov ecx, dword [0x42bbb8]
jmp 0x41f1cd
imul ecx, dword [0x42bbb8], 0x6d528d19
add al, 0x15
or al, 0xaa
mov edx, 0x7b73
movzx eax, al
or ax, dx
mov word [0x42bbb4], ax
push esi
push esi
push esi
lea eax, [ecx + 0x3e]
or ecx, 0xc90020d5
mov byte [0x42bbb2], al
mov eax, dword [esp + 0x20]
mov dword [0x42bbb8], ecx
push esi
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov cl, byte [0x42bbb2]
lea edx, [esp + 0xf8]
xor cl, 0x60
movzx eax, cl
imul eax, eax, 0x5555f24
mov byte [0x42bbb2], cl
movzx ecx, cl
push 1
push edx
mov dword [0x42bbb8], eax
mov eax, 0x8b7d
imul ecx, eax
mov eax, dword [esp + 0x1c]
push eax
mov word [0x42bbb4], cx
mov ecx, dword [eax]
call dword [ecx + 0x30]
test eax, eax
jne 0x41f5e3
cmp dword [esp + 0x104], esi
jne 0x41f5e3
movzx eax, byte [0x42bbb2]
mov ecx, 0x2c5b
push dword [esp + 0x100]
sub ax, cx
mov word [0x42bbb4], ax
imul eax, dword [0x42bbb8], 0x48b32dd6
sub eax, 0xd5de3b9
mov dword [0x42bbb8], eax
call fcn.0040570b
mov edx, dword [0x42bbb8]
mov edi, eax
pop ecx
movzx ecx, dl
imul eax, ecx, 0x51
test edi, edi
je 0x41f5e8
lea ecx, [edx + 0x57b8]
movzx ecx, cx
lea edx, [esp + 0x100]
imul ecx, ecx, 0xff14bcb2
push edx
push dword [esp + 0x104]
push edi
mov al, cl
mov dword [0x42bbb8], ecx
xor al, 0xd7
mov byte [0x42bbb2], al
lea eax, [ecx - 0x6772]
mov word [0x42bbb4], ax
mov eax, dword [esp + 0x20]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
test eax, eax
jne 0x41f5bf
mov dword [esp + 0x40], 0xf5e2f3c3
mov dword [esp + 0x44], 0xf8e3fef5
mov dword [esp + 0x48], 0xfabee4ff
mov word [esp + 0x4c], 0xf5e0
mov byte [esp + 0x4e], 0xf7
mov al, byte [esp + esi + 0x40]
xor al, 0x90
movzx eax, al
mov word [esp + esi*2 + 0xd8], ax
inc esi
cmp esi, 0xf
jl 0x41f563
mov edx, dword [esp + 0x100]
xor eax, eax
and byte [0x42bbb2], 0x15
mov ecx, edi
mov word [esp + 0xf6], ax
mov eax, dword [0x42bbb8]
xor eax, 0xe9cc
mov word [0x42bbb4], ax
movzx eax, ax
xor eax, 0x76fd3653
mov dword [0x42bbb8], eax
lea eax, [esp + 0xd8]
push eax
call fcn.0041e8a4
pop ecx
mov al, byte [0x42bbb8]
xor al, 0x9f
mov byte [0x42bbb2], al
movzx eax, word [0x42bbb4]
sub eax, 0x209b0c45
push edi
mov dword [0x42bbb8], eax
call fcn.004056f0
pop ecx
mov al, byte [0x42bbb2]
movzx eax, al
mov edx, 0x280c
imul ecx, eax, 0xdc
movzx eax, cl
sub ax, dx
mov byte [0x42bbb2], cl
mov word [0x42bbb4], ax
movzx eax, cl
sub eax, 0x230a262f
mov dword [0x42bbb8], eax
mov eax, dword [esp + 0x14]
push eax
mov edx, dword [eax]
call dword [edx + 8]
push dword [esp + 0x1c]
mov al, byte [0x42bbb4]
mov edx, 0xe32ee8f1
xor al, 0x30
push 6
pop ecx
mov byte [0x42bbb2], al
call fcn.0041568d
call eax
movzx eax, byte [0x42bbb2]
mov edx, 0x93f47bf0
push dword [esp + 0x24]
and eax, 0xbb2e8306
mov dword [0x42bbb8], eax
and eax, 0x4e35
push ebp
add eax, 0x136c
push 7
pop ecx
mov word [0x42bbb4], ax
call fcn.0041568d
call eax
mov dl, byte [0x42bbb2]
push dword [esp + 0x54]
movzx eax, dl
mov edx, 0xf93dcbf0
or eax, 0x64c3334b
push 7
pop ecx
mov dword [0x42bbb8], eax
call fcn.0041568d
call eax
mov al, byte [0x42bbb4]
mov edx, 0x63cab623
sub al, 0x4f
mov byte [0x42bbb2], al
push ebp
movzx eax, al
xor eax, 0x7fa6228c
push 7
pop ecx
mov dword [0x42bbb8], eax
call fcn.0041568d
call eax
mov dx, word [0x42bbb4]
mov ebx, dword [esp + 0x3c]
mov eax, 0xdbb5
add dx, ax
mov word [0x42bbb4], dx
add dl, 0x46
push ebx
mov byte [0x42bbb2], dl
mov edx, 0x63cab623
push 7
pop ecx
call fcn.0041568d
call eax
mov ecx, dword [0x42bbb8]
imul ecx, ecx, 0xa7293fbe
pop edi
pop esi
pop ebp
pop ebx
mov dword [0x42bbb8], ecx
lea eax, [ecx + 0x529d]
add cl, 0x59
mov word [0x42bbb4], ax
mov byte [0x42bbb2], cl
add esp, 0x134
ret