Function at 0x41e7b2
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x2cc
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov dword [esp + 0x44], edx
mov ecx, 0xff
mov dword [esp + 0x38], edi
mov dword [esp + 0x24], 0x839a934c
xor edx, edx
mov byte [esp + 0x28], 0x51
mov dword [esp + 0x34], ecx
movzx eax, byte [esp + edx + 0x24]
sub ax, 0x27
and ax, cx
mov word [esp + edx*2 + 0x6c], ax
inc edx
cmp edx, 5
jl 0x41e7de
xor eax, eax
mov dword [esp + 0x2c], 0x8aa5baf3
mov word [esp + 0x76], ax
xor ecx, ecx
mov word [esp + 0x30], 0xbaf3
mov byte [esp + 0x32], 0xa5
mov al, byte [esp + ecx + 0x2c]
xor al, 0xd6
movzx eax, al
mov word [esp + ecx*2 + 0x78], ax
inc ecx
cmp ecx, 7
jl 0x41e812
mov cx, word [0x42cae0]
xor eax, eax
mov ebx, dword [esp + 0x2e4]
mov word [esp + 0x86], ax
mov eax, 0x85bb
xor cx, ax
test ebx, ebx
jne 0x41e874
xor ecx, 0xf3e7
and ecx, 0x8c1a
imul eax, ecx, 0x65d9
xor ecx, 0xb5c3
mov word [0x42cae0], cx
mov word [0x42cac8], ax
jmp 0x41f02f
xor ecx, 0x501d
lea eax, [esp + 0x6c]
mov word [0x42cae0], cx
xor ecx, 0xc112
push edi
push eax
mov word [0x42cac8], cx
call fcn.00423fac
mov ebp, eax
mov dword [esp + 0x50], 0x15
mov dword [esp + 0x2c], ebp
pop ecx
pop ecx
test ebp, ebp
je 0x41ec5b
mov eax, 0xfeff
mov ecx, 0xb127
xor ax, word [0x42cae0]
mov edx, 0x54e1cc7b
and ax, cx
mov ecx, 0x3007
or ax, cx
xor ecx, ecx
mov word [0x42cac8], ax
inc ecx
imul eax, eax, 0x1cfb
mov word [0x42cae0], ax
lea eax, [esp + 0x88]
push eax
push ebp
call fcn.00415f33
call eax
mov esi, eax
xor ecx, ecx
mov eax, 0x2231
mov dword [esp + 0x40], esi
and word [0x42cac8], ax
mov edx, 0x17299c7b
mov eax, 0xa5c2
inc ecx
or word [0x42cae0], ax
call fcn.00415f33
mov cx, word [0x42cae0]
mov dword [esp + 0x3c], eax
mov eax, 0xfe92
and cx, ax
cmp esi, 0xffffffff
je 0x41ec33
mov cx, word [0x42cac8]
mov eax, 0x5b45
mov ebp, dword [esp + 0x3c]
sub cx, ax
mov eax, 0xdd2d
mov word [esp + 0x10], 0x4343
xor cx, ax
push 0x2e
pop eax
mov word [esp + 0x3c], ax
xor eax, eax
mov word [esp + 0x3e], ax
xor edx, edx
movzx eax, byte [esp + edx + 0x10]
sub ax, word [esp + 0x48]
and ax, word [esp + 0x34]
mov word [esp + edx*2 + 0x2c], ax
inc edx
cmp edx, 2
jl 0x41e971
xor eax, eax
mov word [esp + 0x30], ax
mov eax, 0x99d
xor cx, ax
movzx eax, cx
xor eax, 0x2f02
mov word [0x42cae0], cx
mov word [0x42cac8], ax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0xb8]
push eax
call fcn.004066f6
pop ecx
pop ecx
test eax, eax
je 0x41ebd4
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0xb8]
push eax
call fcn.004066f6
pop ecx
pop ecx
test eax, eax
je 0x41ebd4
mov ax, word [0x42cae0]
mov ecx, 0x213
and ax, cx
test byte [esp + 0x88], 0x10
mov word [0x42cac8], ax
lea edx, [eax + 0x43a2]
mov word [0x42cae0], dx
je 0x41ebb9
mov dword [esp + 0x14], 0xe7fef7b0
xor ecx, ecx
mov word [esp + 0x18], 0xf7b0
mov byte [esp + 0x1a], 0xfe
movzx eax, byte [esp + ecx + 0x14]
add ax, 0x75
and ax, word [esp + 0x34]
mov word [esp + ecx*2 + 0x4c], ax
inc ecx
cmp ecx, 7
jl 0x41ea2c
xor eax, eax
mov cx, dx
mov word [esp + 0x5a], ax
mov eax, 0x7824
sub cx, ax
lea eax, [ecx - 0x6c65]
or ecx, 0x1528
mov word [0x42cac8], ax
lea eax, [esp + 0xb4]
push eax
lea eax, [esp + 0x50]
mov word [0x42cae0], cx
push edi
push eax
call fcn.00423fac
mov dx, word [0x42cae0]
mov edi, eax
mov eax, 0x7bb3
add esp, 0xc
xor dx, ax
mov eax, 0xd81
and word [0x42cac8], ax
mov word [0x42cae0], dx
test edi, edi
je 0x41ebb5
mov dword [esp + 0x1c], 0xdf839cd5
xor ecx, ecx
mov word [esp + 0x20], 0x9cd5
mov byte [esp + 0x22], 0x83
mov al, byte [esp + ecx + 0x1c]
xor al, 0xf0
movzx eax, al
mov word [esp + ecx*2 + 0x5c], ax
inc ecx
cmp ecx, 7
jl 0x41eac8
xor eax, eax
mov word [esp + 0x6a], ax
mov eax, 0x2ad4
or dx, ax
movzx eax, dx
and eax, 0xcfd6
mov word [0x42cae0], dx
mov word [0x42cac8], ax
lea eax, [esp + 0xb4]
push eax
push dword [esp + 0x48]
lea eax, [esp + 0x64]
push eax
call fcn.00423fac
mov esi, eax
mov ecx, 0xdafd
mov ax, word [0x42cae0]
add esp, 0xc
xor ax, cx
lea ecx, [eax - 0x33e4]
movzx edx, cx
mov word [0x42cae0], cx
test esi, esi
je 0x41eb90
lea eax, [edx + 0x49ca]
mov ecx, edi
mov word [0x42cac8], ax
mov edx, esi
lea eax, [ebx - 1]
push eax
push dword [esp + 0x2e4]
call fcn.0041e7b2
mov ax, word [0x42cac8]
mov ecx, 0xa2
xor ax, cx
mov word [0x42cac8], ax
movzx eax, ax
imul eax, eax, 0xa931
push esi
mov word [0x42cae0], ax
call fcn.004062f0
movzx eax, word [0x42cac8]
add esp, 0xc
mov ecx, 0xb59
add ax, cx
mov word [0x42cae0], ax
imul eax, eax, 0x6dc0
push edi
mov word [0x42cac8], ax
call fcn.004062f0
mov esi, dword [esp + 0x44]
pop ecx
mov edi, dword [esp + 0x38]
lea eax, [esp + 0x88]
push eax
push esi
call ebp
test eax, eax
je 0x41ebf7
mov cx, word [0x42cae0]
jmp 0x41e960
movzx eax, word [0x42cac8]
mov ecx, 0xd044
xor ax, cx
mov word [0x42cae0], ax
imul eax, eax, 0xf88a
mov word [0x42cac8], ax
jmp 0x41ebb9
mov cx, word [0x42cac8]
mov eax, 0x9372
and cx, ax
mov edx, 0x83fbc401
movzx ecx, cx
mov eax, 0x113b
imul ecx, eax
push esi
mov word [0x42cae0], cx
xor ecx, ecx
inc ecx
call fcn.00415f33
call eax
mov cx, word [0x42cae0]
mov ebp, dword [esp + 0x24]
movzx eax, cx
mov edx, 0x57bc
or ax, dx
mov word [0x42cac8], ax
xor eax, 0xefad
and eax, 0x91db
push ebp
mov word [0x42cae0], ax
call fcn.004062f0
pop ecx
mov ax, word [0x42cae0]
mov ecx, 0x2e96
push dword [esp + 0x2e0]
and ax, cx
mov ecx, 0xae53
xor ax, cx
mov word [0x42cac8], ax
lea eax, [esp + 0x7c]
push edi
push eax
call fcn.00423fac
movzx edx, word [0x42cac8]
mov ecx, 0x5cd6
imul edx, ecx
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x40], ebx
mov word [0x42cae0], dx
test ebx, ebx
je 0x41f02f
xor edx, 0xe45c
xor ecx, ecx
mov eax, edx
inc ecx
and eax, 0xed50
mov word [0x42cae0], ax
lea eax, [edx + 0x460c]
mov edx, 0x54e1cc7b
mov word [0x42cac8], ax
lea eax, [esp + 0x88]
push eax
push ebx
call fcn.00415f33
call eax
mov si, word [0x42cac8]
mov ebp, eax
mov cx, si
mov eax, 0x186
sub cx, ax
mov edx, 0x17299c7b
mov eax, 0x74f
and cx, ax
mov eax, 0x2a24
mov word [0x42cae0], cx
xor si, ax
xor ecx, ecx
mov word [0x42cac8], si
inc ecx
call fcn.00415f33
mov ecx, 0xd566
mov dword [esp + 0x24], eax
or cx, word [0x42cac8]
mov eax, 0x5f00
xor cx, ax
movzx esi, cx
mov edx, esi
and edx, 0xdc85
cmp ebp, 0xffffffff
je 0x41f00a
mov ebx, dword [esp + 0x24]
imul ecx, esi, 0x6400
mov word [esp + 0x10], 0x5757
xor ecx, 0x4253
push 0x2e
pop eax
mov word [esp + 0x34], ax
mov esi, 0xff
xor eax, eax
xor edx, edx
mov word [esp + 0x36], ax
movzx eax, byte [esp + edx + 0x10]
sub ax, 0x29
and ax, si
mov word [esp + edx*2 + 0x2c], ax
inc edx
cmp edx, 2
jl 0x41ed7f
xor eax, eax
mov word [esp + 0x30], ax
mov eax, 0xf9e4
add cx, ax
movzx eax, cx
imul eax, eax, 0xf917
mov word [0x42cae0], cx
mov word [0x42cac8], ax
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0xb8]
push eax
call fcn.004066f6
pop ecx
pop ecx
test eax, eax
je 0x41efc0
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0xb8]
push eax
call fcn.004066f6
pop ecx
pop ecx
test eax, eax
je 0x41efc0
mov ax, word [0x42cac8]
mov ecx, 0xa659
or ax, cx
mov cx, ax
mov word [0x42cac8], ax
xor ecx, 0xb984
add ecx, 0x42ca
test byte [esp + 0x88], 0xa7
mov word [0x42cae0], cx
je 0x41efa5
push 0x15
pop eax
mov word [esp + 0x1c], 0x25de
xor edx, edx
mov byte [esp + 0x1e], 0x2c
mov byte [esp + 0x1f], al
mov word [esp + 0x20], 0x25de
mov byte [esp + 0x22], 0x2c
movzx eax, byte [esp + edx + 0x1c]
add ax, 0x47
and ax, si
mov word [esp + edx*2 + 0x5c], ax
inc edx
cmp edx, 7
jl 0x41ee4c
xor eax, eax
mov word [esp + 0x6a], ax
mov eax, 0x99d
and cx, ax
lea eax, [esp + 0xb4]
push eax
lea eax, [esp + 0x60]
mov word [0x42cac8], cx
push edi
push eax
call fcn.00423fac
mov dx, word [0x42cae0]
mov edi, eax
mov eax, 0x6f23
add esp, 0xc
and dx, ax
mov word [0x42cac8], dx
test edi, edi
je 0x41efa1
mov dword [esp + 0x14], 0x6aaea760
xor ecx, ecx
mov word [esp + 0x18], 0xa760
mov byte [esp + 0x1a], 0xae
movzx eax, byte [esp + ecx + 0x14]
sub ax, 0x3b
and ax, si
mov word [esp + ecx*2 + 0x4c], ax
inc ecx
cmp ecx, 7
jl 0x41eec5
xor eax, eax
mov word [esp + 0x5a], ax
mov eax, 0x7d9
and dx, ax
movzx eax, dx
add eax, 0xffff8b5f
mov word [0x42cac8], dx
mov word [0x42cae0], ax
lea eax, [esp + 0xb4]
push eax
push dword [esp + 0x48]
lea eax, [esp + 0x54]
push eax
call fcn.00423fac
movzx ecx, word [0x42cae0]
mov esi, eax
sub cx, 0xd
add esp, 0xc
movzx edx, cx
mov word [0x42cac8], cx
test esi, esi
je 0x41ef8b
and edx, 0x4e54
add ecx, 0x6eb4
add edx, 0x36be
mov word [0x42cae0], cx
mov word [0x42cac8], dx
mov ecx, edi
mov edx, esi
call fcn.0041f03a
movzx eax, word [0x42cae0]
mov ecx, 0xbac9
and ax, cx
mov word [0x42cac8], ax
or eax, 0xcb0e
push esi
mov word [0x42cae0], ax
call fcn.004062f0
pop ecx
mov cx, word [0x42cac8]
mov eax, 0x3fdd
sub cx, ax
push edi
mov word [0x42cae0], cx
call fcn.004062f0
pop ecx
mov edi, dword [esp + 0x38]
lea eax, [esp + 0x88]
push eax
push ebp
call ebx
test eax, eax
je 0x41efd4
mov cx, word [0x42cae0]
jmp 0x41ed69
mov eax, 0x19df
add ax, word [0x42cae0]
mov word [0x42cac8], ax
jmp 0x41efa5
mov ax, word [0x42cae0]
mov esi, 0xc76b
xor ecx, ecx
and ax, si
push ebp
mov edx, 0x83fbc401
mov word [0x42cac8], ax
inc ecx
call fcn.00415f33
call eax
mov cx, word [0x42cac8]
mov dx, word [0x42cae0]
mov ebx, dword [esp + 0x40]
mov eax, 0x687b
xor cx, ax
mov eax, 0x3acc
or dx, ax
mov word [0x42cac8], cx
push ebx
mov word [0x42cae0], dx
call fcn.004062f0
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2cc
ret