Function at 0x41e442
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x134
push ebx
push ebp
push esi
push edi
xor edi, edi
mov dword [esp + 0x2c], 0xbeb8b4b0
mov dword [esp + 0x30], 0xa9b3f6bc
mov ecx, edi
mov word [esp + 0x34], 0xbebc
mov al, byte [esp + ecx + 0x2c]
xor al, 0xd9
movzx eax, al
mov word [esp + ecx*2 + 0xb0], ax
inc ecx
cmp ecx, 0xa
jl 0x41e467
xor eax, eax
mov dword [esp + 0x50], 0x46
mov word [esp + 0xc4], ax
mov bl, 0x5e
movzx eax, byte [0x42bb60]
mov edx, 0x8f2e
imul ecx, eax, 0xe
movzx eax, byte [0x42bb68]
imul eax, eax, 0x4b
push edi
mov dword [esp + 0x20], edi
add cl, 0x1e
mov dword [esp + 0x7c], 1
mov byte [0x42bb6e], cl
sub bl, al
movzx ecx, cl
mov eax, 0xc35b
mov byte [0x42bb56], bl
or ax, word [0x42bb64]
movzx esi, ax
xor si, dx
mov dword [esp + 0x80], edi
mov word [0x42bb58], si
mov dword [esp + 0x84], edi
mov dword [esp + 0x88], edi
lea eax, [esi + 0x7c6f]
and esi, 0x1a19
movzx edx, ax
mov eax, 0xf17f
imul ecx, eax
or edx, 0x4fa14070
movzx eax, bl
mov dword [0x42bb5c], edx
mov word [0x42bb60], si
mov word [0x42bb64], cx
mov ecx, 0x4882
xor ax, cx
mov word [0x42bb6c], ax
imul eax, edx, 0x7405aad5
mov edx, 0xe7ea7d5c
mov dword [0x42bb68], eax
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x90]
push eax
push 6
pop ecx
call fcn.00415084
call eax
test eax, eax
jne 0x41f26f
mov dword [esp + 0x24], 0xbfc2b8b3
mov ecx, edi
mov word [esp + 0x28], 0xb0bb
mov byte [esp + 0x2a], 0xc8
movzx eax, byte [esp + ecx + 0x24]
mov edx, 0xff
sub ax, 0x6f
and ax, dx
mov word [esp + ecx*2 + 0x8c], ax
inc ecx
cmp ecx, 7
jl 0x41e581
xor eax, eax
mov ecx, 0x27f5
mov word [esp + 0x9a], ax
mov edx, 0xf09d96e3
movzx eax, word [0x42bb6c]
xor ax, cx
push edi
mov word [0x42bb58], ax
add eax, 0xffffe307
push edi
mov word [0x42bb60], ax
lea eax, [esp + 0x94]
push edi
push eax
push 7
pop ecx
call fcn.00415084
call eax
movzx edx, word [0x42bb6c]
mov ebp, eax
or edx, 0x50becef1
mov dword [esp + 0x48], ebp
mov dword [0x42bb5c], edx
lea ecx, [edx - 0x3ff1]
mov word [0x42bb64], cx
test ebp, ebp
je 0x41f26f
movzx eax, byte [0x42bb56]
mov ecx, 0x3ddb
add ax, cx
mov word [0x42bb64], ax
and al, 0xee
mov byte [0x42bb6e], al
imul eax, edx, 0x9265
mov edx, 0x271b5d23
push ebp
push 7
pop ecx
mov word [0x42bb60], ax
movzx eax, word [0x42bb58]
or eax, 0x96a27f57
mov dword [0x42bb5c], eax
call fcn.00415084
call eax
movzx ecx, word [0x42bb6c]
mov ebx, eax
and ecx, 0x384b3526
mov dword [esp + 0x54], ebx
mov dword [0x42bb68], ecx
movzx ecx, word [0x42bb58]
or ecx, 0xd84b8f9b
mov dword [0x42bb5c], ecx
test ebx, ebx
je 0x41f235
xor ecx, 0x12a4cb66
mov eax, 0x6a64
xor ax, word [0x42bb60]
mov edx, 0x763f
mov word [0x42bb6c], ax
imul eax, ecx, 0xa00d5d9f
push 0x8040
push edi
push edi
push 2
mov dword [0x42bb68], eax
movzx eax, byte [0x42bb6e]
add ax, dx
mov edx, 0x19e8f7ab
mov word [0x42bb58], ax
imul eax, ecx, 0x1593
mov ecx, 0x655d
push 0x7f00
push edi
push 5
sub eax, 0x2c11
movzx eax, ax
mov word [0x42bb60], ax
or al, 3
mov byte [0x42bb56], al
movzx eax, al
xor ax, cx
pop ecx
mov word [0x42bb64], ax
call fcn.00415084
call eax
mov ecx, dword [0x42bb5c]
mov esi, eax
or ecx, 0x39b8
mov word [0x42bb64], cx
mov cl, byte [0x42bb56]
xor cl, 0x91
mov byte [0x42bb6e], cl
test esi, esi
je 0x41e755
lea eax, [esp + 0x9c]
mov edx, 0x6b592b67
push eax
push esi
push 5
pop ecx
call fcn.00415084
call eax
test eax, eax
je 0x41e76d
lea eax, [esp + 0x2c]
mov edx, 0xfc7a7777
push eax
push 5
pop ecx
call fcn.00415084
call eax
test eax, eax
jne 0x41e79e
movzx eax, byte [0x42bb68]
mov esi, edi
mov cx, word [0x42bb60]
imul edx, eax, 0x68
movzx eax, cx
sub eax, 0x7712c389
mov dword [0x42bb68], eax
mov al, dl
mov byte [0x42bb6e], dl
or al, 0xf6
mov byte [0x42bb56], al
jmp 0x41e7ab
mov cx, word [0x42bb60]
mov dl, byte [0x42bb6e]
movzx eax, cx
movzx ecx, word [0x42bb58]
imul eax, eax, 0x3242fa28
push 8
push ebp
push 7
mov dword [0x42bb5c], eax
mov eax, 0x85f2
and cx, ax
movzx eax, dl
mov edx, 0x189b
mov word [0x42bb6c], cx
and ax, dx
mov edx, 0x1be3efe3
mov word [0x42bb58], ax
imul eax, ecx, 0xf47a
pop ecx
mov word [0x42bb64], ax
call fcn.00415084
call eax
mov ecx, dword [0x42bb68]
mov edx, 0x1be3efe3
add ecx, 0x554a6abc
mov dword [esp + 0x14], eax
mov dword [0x42bb5c], ecx
movzx ecx, byte [0x42bb60]
imul ecx, ecx, 0xda
push 0xa
push ebp
push 7
mov byte [0x42bb56], cl
pop ecx
call fcn.00415084
call eax
movzx ecx, byte [0x42bb56]
mov edx, 0x2c55
push eax
push dword [esp + 0x18]
add cx, dx
mov dword [esp + 0x28], eax
push ebp
mov word [0x42bb60], cx
mov edx, 0x8e1e617c
push 7
pop ecx
call fcn.00415084
call eax
mov dx, word [0x42bb58]
mov ecx, 0xd642
xor dword [0x42bb5c], 0xff0bd32c
or dx, cx
imul ecx, dword [0x42bb68], 0xe141cc83
mov dword [esp + 0x4c], eax
mov word [0x42bb64], dx
mov dword [0x42bb68], ecx
test eax, eax
je 0x41f1fe
push dword [esp + 0x4c]
movzx eax, dx
mov ecx, 0x457b
imul eax, eax, 0xc23681d6
push ebx
push 7
mov dword [0x42bb5c], eax
movzx eax, byte [0x42bb6e]
and ax, cx
mov word [0x42bb58], ax
imul eax, edx, 0x1af
mov edx, 0x93f47bf0
pop ecx
mov word [0x42bb6c], ax
call fcn.00415084
call eax
mov cl, byte [0x42bb5c]
mov edx, eax
sub cl, 0x4d
mov dword [esp + 0x24], edx
movzx eax, cl
mov cl, byte [0x42bb68]
and eax, 0x9e7b4833
add cl, 0x46
mov dword [0x42bb5c], eax
mov byte [0x42bb6e], cl
test edx, edx
je 0x41f1e1
mov ax, word [0x42bb60]
mov ecx, 0x26cf
mov dl, byte [0x42bb56]
add ax, cx
push 0x40cc0020
push edi
push edi
mov word [0x42bb64], ax
push ebp
push dword [esp + 0x30]
movzx eax, ax
push dword [esp + 0x28]
add eax, 0xd55327d
movzx ecx, dl
mov dword [0x42bb5c], eax
mov eax, 0x6743
imul ecx, eax
push edi
movzx eax, dl
and dl, 0xde
push edi
imul eax, eax, 0xac7bd087
mov word [0x42bb58], cx
xor cl, 0xd
push ebx
mov byte [0x42bb6e], cl
mov byte [0x42bb56], dl
mov edx, 0x14b1f8c4
push 7
pop ecx
mov dword [0x42bb68], eax
call fcn.00415084
call eax
test eax, eax
je 0x41f1a5
mov dx, word [0x42bb60]
mov eax, 0x3daf
add dx, ax
mov ecx, 0x69a6
mov ax, word [0x42bb58]
add ax, cx
mov word [0x42bb6c], dx
movzx ebp, ax
mov dword [esp + 0x14], ebp
mov word [0x42bb58], ax
test esi, esi
je 0x41ead0
mov ebx, dword [0x42bb5c]
imul eax, ebx, 0x4db8
movzx ecx, ax
movzx eax, ax
mov dword [esp + 0x18], eax
imul eax, ebp, 0xf09d
mov ebp, dword [esp + 0x2c]
sub ebp, dword [esp + 0xa0]
mov dword [esp + 0x20], ecx
movzx ecx, dx
movzx eax, ax
mov word [0x42bb64], ax
jns 0x41ea35
or bl, 0xa0
mov edx, 0x6a2f
movzx ecx, bl
mov ebp, edi
or cx, dx
lea ebx, [eax + 0x4c3308e]
mov word [0x42bb6c], cx
mov dword [0x42bb5c], ebx
movzx ecx, cx
mov eax, dword [esp + 0x14]
mov edx, 0xe9e0
movzx eax, ax
and eax, 0xb773f5b7
movzx ecx, cx
mov dword [0x42bb68], eax
movzx eax, byte [0x42bb6e]
and ax, dx
mov edx, dword [esp + 0x30]
mov word [0x42bb58], ax
mov eax, dword [esp + 0x20]
sub al, 0x57
sub edx, dword [esp + 0xa4]
mov byte [0x42bb56], al
mov eax, ecx
mov dword [esp + 0x14], eax
jns 0x41eaa6
mov eax, dword [esp + 0x18]
sub cl, 0x7b
xor ebx, 0xb69f0559
mov byte [0x42bb56], cl
add eax, 0x53d8
mov dword [0x42bb5c], ebx
mov word [0x42bb58], ax
mov edx, edi
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x54]
push esi
push edx
push ebp
imul eax, eax, 0x560b
mov edx, 0x7de53dfa
push ebx
push 5
pop ecx
mov word [0x42bb60], ax
call fcn.00415084
call eax
mov dx, word [0x42bb6c]
mov ecx, dword [0x42bb5c]
lea eax, [edx - 8]
mov byte [0x42bb56], al
xor ecx, 0x7577
movzx eax, al
mov esi, 0x74e1
add ax, si
mov word [0x42bb64], cx
mov word [0x42bb60], ax
movzx eax, cx
imul eax, eax, 0x768d99b5
mov dword [esp + 0x14], edi
mov dword [0x42bb68], eax
mov eax, 0x43dc
and dx, ax
lea eax, [esp + 0x14]
push eax
push edi
push dword [esp + 0x54]
mov word [0x42bb6c], dx
mov edx, 0x883893dc
push 6
pop ecx
call fcn.00415084
call eax
test eax, eax
jne 0x41f1a1
cmp dword [esp + 0x14], edi
je 0x41f1a1
mov dl, byte [0x42bb56]
mov ecx, 0x9c26
movzx eax, dl
xor dl, 0x42
xor ax, cx
mov byte [0x42bb6e], dl
movzx ecx, word [0x42bb64]
mov edx, 0x5ba82cd
mov word [0x42bb58], ax
mov eax, 0xd7ad
imul ecx, eax
movzx eax, word [0x42bb60]
xor eax, 0x1e71872e
mov dword [esp + 0x18], edi
mov dword [0x42bb5c], eax
mov dword [esp + 0x20], edi
movzx eax, cx
xor eax, 0x8ef2850e
mov word [0x42bb6c], cx
mov dword [0x42bb68], eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x1c]
push eax
push 6
pop ecx
call fcn.00415084
call eax
test eax, eax
jne 0x41f172
cmp dword [esp + 0x20], edi
je 0x41f172
cmp dword [esp + 0x18], edi
je 0x41f172
push dword [esp + 0x20]
call fcn.0040570b
mov ebx, eax
pop ecx
test ebx, ebx
je 0x41f172
mov eax, dword [0x42bb5c]
mov edx, 0x55220f7b
push ebx
push dword [esp + 0x24]
add eax, 0xffffb435
push dword [esp + 0x20]
movzx ecx, ax
add ecx, 0x12869834
mov word [0x42bb64], ax
mov dword [0x42bb5c], ecx
add eax, 0xffffe27f
push 6
pop ecx
mov word [0x42bb60], ax
call fcn.00415084
call eax
test eax, eax
jne 0x41ed0e
mov cx, word [0x42bb64]
mov edx, 0x370f
movzx eax, cx
mov ebp, edi
add eax, 0x3fef8fc3
mov dword [0x42bb68], eax
mov al, byte [0x42bb5c]
sub al, 0x3e
mov byte [0x42bb56], al
movzx eax, byte [0x42bb6e]
add ax, dx
mov word [0x42bb58], ax
cmp dword [esp + 0x18], edi
jbe 0x41ed0e
mov esi, ebx
push dword [esi + 0x30]
movzx eax, cl
imul eax, eax, 0xee
mov byte [0x42bb56], al
movzx eax, word [0x42bb6c]
xor eax, 0x5f68f710
mov dword [0x42bb5c], eax
movzx eax, cx
xor eax, 0x83429c06
mov dword [0x42bb68], eax
lea eax, [esp + 0xb4]
push eax
call fcn.00405af6
pop ecx
pop ecx
test eax, eax
je 0x41eccf
inc ebp
add esi, 0x4c
cmp ebp, dword [esp + 0x18]
jae 0x41ed0e
mov cx, word [0x42bb64]
jmp 0x41ec7a
mov cx, word [0x42bb60]
movzx eax, cx
add cl, 3
and eax, 0x9aa8bc15
mov byte [0x42bb56], cl
mov dword [0x42bb68], eax
xor eax, 0xccbc
push 0x10
mov word [0x42bb58], ax
lea eax, [esp + 0xcc]
push esi
push eax
call fcn.00401d70
add esp, 0xc
mov dword [esp + 0x18], edi
movzx eax, byte [0x42bb6e]
mov ecx, 0xefc
and eax, 0x4359d168
mov dword [0x42bb5c], eax
mov ax, word [0x42bb58]
and ax, cx
push ebx
mov word [0x42bb64], ax
call fcn.004056f0
mov al, byte [0x42bb68]
xor al, 0xae
mov byte [0x42bb56], al
movzx eax, word [0x42bb6c]
add eax, 0x480c94a1
pop ecx
mov dword [0x42bb5c], eax
cmp dword [esp + 0x18], edi
jne 0x41f172
lea eax, [esp + 0x1c]
xor ebp, ebp
push eax
inc ebp
mov edx, 0xb91d33f0
push ebp
push edi
push 8
pop ecx
call fcn.00415084
call eax
test eax, eax
jne 0x41f172
mov ebx, dword [esp + 0x1c]
test ebx, ebx
je 0x41f172
movzx eax, word [0x42bb58]
movzx esi, byte [0x42bb56]
movzx edx, word [0x42bb64]
imul eax, eax, 0x1124baa9
and edx, 0x4e1e53a4
mov dword [esp + 0x58], edi
lea ecx, [esi + 0x604c]
mov word [0x42bb60], cx
mov dword [0x42bb5c], eax
mov al, byte [0x42bb68]
sub al, 0xa
mov dword [0x42bb68], edx
mov byte [0x42bb6e], al
movzx eax, cx
cmp dword [esp + 0x50], edi
jbe 0x41ee99
mov eax, esi
xor esi, 0x71de
and eax, 0xe088
mov word [0x42bb6c], si
mov word [0x42bb58], ax
mov eax, edx
xor eax, 0x76e9
xor edx, 0x598d4556
push 0x10
mov word [0x42bb60], ax
lea eax, [esp + 0x60]
push 0x428f28
push eax
mov dword [0x42bb5c], edx
call fcn.00401d70
imul eax, dword [esp + 0x64], 0x1c
lea esi, [esp + 0x5c]
mov dx, word [0x42bb6c]
add esp, 0xc
mov cx, word [0x42bb58]
mov ebx, dword [esp + 0x1c]
mov dword [esp + eax + 0x70], 4
mov eax, 0x407a
sub dx, ax
imul eax, dword [esp + 0x58], 0x1c
mov word [0x42bb60], dx
mov dword [esp + eax + 0x6c], ebp
mov eax, 0x1963
or cx, ax
imul eax, dword [esp + 0x58], 0x1c
mov word [0x42bb6c], cx
mov dword [esp + eax + 0x74], esi
movzx eax, cx
imul eax, eax, 0x30a4faa9
inc dword [esp + 0x58]
mov dword [0x42bb5c], eax
movzx eax, dx
mov edx, dword [0x42bb68]
add al, 0x5a
mov byte [0x42bb56], al
lea eax, [edx - 0x6b5a]
mov word [0x42bb58], ax
movzx eax, dl
mov edx, 0x3a256861
imul eax, eax, 0xc5
mov byte [0x42bb6e], al
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0xcc]
push eax
push ebx
push dword [esp + 0x20]
push 6
pop ecx
call fcn.00415084
call eax
test eax, eax
je 0x41ef17
mov eax, dword [0x42bb68]
add eax, 0xc91d447
mov dword [0x42bb5c], eax
mov eax, 0x472
xor ax, word [0x42bb58]
mov word [0x42bb64], ax
mov eax, 0xa88c
or ax, word [0x42bb6c]
mov word [0x42bb58], ax
jmp 0x41f168
mov dx, word [0x42bb60]
mov eax, 0x88c4
add dx, ax
mov ecx, 0x5441
and cx, word [0x42bb64]
mov esi, 0x229e
movzx eax, byte [0x42bb56]
or cx, si
xor eax, 0x8ad57d8e
mov word [0x42bb60], dx
mov dword [0x42bb68], eax
and dl, 0x7c
mov eax, ecx
mov byte [0x42bb6e], dl
or eax, 0xc9dd
xor ecx, 0xd888
mov word [0x42bb6c], ax
imul eax, ecx, 0xb50f
push edi
push edi
push edi
mov word [0x42bb64], cx
mov word [0x42bb58], ax
mov eax, dword [esp + 0x28]
push edi
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov eax, 0xacb7
lea edx, [esp + 0xf8]
add word [0x42bb58], ax
mov ecx, 0xc37b
movzx eax, byte [0x42bb6e]
and ax, cx
mov word [0x42bb6c], ax
mov al, byte [0x42bb68]
xor al, 0x1e
mov byte [0x42bb56], al
mov eax, dword [esp + 0x1c]
push ebp
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x30]
test eax, eax
jne 0x41f132
cmp dword [esp + 0x104], edi
jne 0x41f132
movzx eax, word [0x42bb6c]
push dword [esp + 0x100]
imul eax, eax, 0x7be04ae6
mov dword [0x42bb5c], eax
movzx eax, word [0x42bb58]
xor eax, 0xc149a339
mov dword [0x42bb68], eax
call fcn.0040570b
mov esi, eax
mov eax, 0x7bd4
add word [0x42bb58], ax
pop ecx
test esi, esi
je 0x41f132
mov cx, word [0x42bb60]
lea edx, [esp + 0x100]
mov eax, 0x2869
sub cx, ax
mov al, byte [0x42bb68]
add al, 0x4e
mov word [0x42bb58], cx
mov byte [0x42bb56], al
mov eax, dword [0x42bb5c]
or eax, 0x9fd9275
mov dword [0x42bb68], eax
movzx eax, word [0x42bb6c]
and eax, 0x750d9ad0
mov dword [0x42bb5c], eax
mov eax, dword [esp + 0x1c]
push edx
push dword [esp + 0x104]
mov ecx, dword [eax]
push esi
push eax
call dword [ecx + 0xc]
test eax, eax
jne 0x41f108
mov dword [esp + 0x38], 0xa5b2a393
mov dword [esp + 0x3c], 0xa8b3aea5
mov dword [esp + 0x40], 0xaaeeb4af
mov word [esp + 0x44], 0xa5b0
mov byte [esp + 0x46], 0xa7
mov al, byte [esp + edi + 0x38]
xor al, 0xc0
movzx eax, al
mov word [esp + edi*2 + 0xd8], ax
inc edi
cmp edi, 0xf
jl 0x41f0ae
mov cx, word [0x42bb6c]
xor eax, eax
mov edx, dword [esp + 0x100]
mov word [esp + 0xf6], ax
movzx eax, cx
sub eax, 0x1d7c2c85
mov dword [0x42bb5c], eax
movzx eax, cl
mov ecx, esi
imul eax, eax, 0xe2
mov byte [0x42bb56], al
lea eax, [esp + 0xd8]
push eax
call fcn.0041e192
pop ecx
mov eax, 0x827d
or ax, word [0x42bb64]
mov word [0x42bb6c], ax
movzx eax, word [0x42bb64]
and eax, 0x8160570d
push esi
mov dword [0x42bb5c], eax
call fcn.004056f0
pop ecx
movzx eax, byte [0x42bb56]
imul eax, eax, 0x60f663b7
mov dword [0x42bb68], eax
mov eax, 0xd44e
xor ax, word [0x42bb64]
mov word [0x42bb6c], ax
movzx eax, byte [0x42bb6e]
imul eax, eax, 0x535cba9b
mov dword [0x42bb5c], eax
mov eax, dword [esp + 0x1c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov al, byte [0x42bb6c]
mov edx, 0xe32ee8f1
push dword [esp + 0x14]
xor al, 0x3a
mov byte [0x42bb56], al
mov al, byte [0x42bb5c]
and al, 0xec
push 6
pop ecx
mov byte [0x42bb6e], al
call fcn.00415084
call eax
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0x48]
movzx eax, byte [0x42bb6e]
mov edx, 0x93f47bf0
push dword [esp + 0x24]
sub eax, 0x6ed98f4a
mov dword [0x42bb5c], eax
mov eax, 0x5732
xor ax, word [0x42bb64]
push ebx
push 7
pop ecx
mov word [0x42bb58], ax
call fcn.00415084
call eax
mov eax, dword [0x42bb5c]
push dword [esp + 0x4c]
add eax, 0x9368b169
mov edx, 0xf93dcbf0
push 7
pop ecx
mov dword [0x42bb68], eax
call fcn.00415084
call eax
movzx ecx, word [0x42bb6c]
mov eax, 0xbcd5
imul ecx, eax
mov edx, 0x63cab623
movzx eax, byte [0x42bb6e]
push ebx
and eax, 0xa68482a5
push 7
mov word [0x42bb6c], cx
pop ecx
mov dword [0x42bb68], eax
call fcn.00415084
call eax
movzx eax, byte [0x42bb56]
mov esi, 0xf7aa
or ax, si
mov edx, 0x63cab623
mov word [0x42bb60], ax
mov esi, 0xa42c
movzx eax, byte [0x42bb6e]
push ebp
and ax, si
push 7
pop ecx
mov word [0x42bb64], ax
call fcn.00415084
call eax
mov ax, word [0x42bb64]
mov ecx, 0x6f01
pop edi
pop esi
and ax, cx
pop ebp
mov word [0x42bb58], ax
pop ebx
add esp, 0x134
ret