Function at 0x4108af
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x244
mov dword [esp + 0x44], 0x99eb9bcf
mov dword [esp + 0x48], 0xa5d1a71e
mov dword [esp + 0x4c], 0xa1d6a3d0
mov dword [esp + 0x50], 0xad9fafcf
mov dword [esp + 0x54], 0xa998ab97
mov dword [esp + 0x58], 0xb596b798
mov dword [esp + 0x5c], 0xb1ebb39c
mov dword [esp + 0x60], 0xbdccbfc7
mov dword [esp + 0x64], 0xb9cbbbd0
mov dword [esp + 0x68], 0xc5bbc7c1
mov dword [esp + 0x6c], 0xc190c3e4
mov dword [esp + 0x70], 0xcdeecf9c
mov dword [esp + 0x74], 0xc9facbf3
mov dword [esp + 0x78], 0xd5e6d7fa
mov dword [esp + 0x7c], 0xd1f2d391
mov dword [esp + 0x80], 0xdda9df89
mov dword [esp + 0x84], 0xd9e0dbae
mov dword [esp + 0x88], 0xe5a3e7e4
mov dword [esp + 0x8c], 0xe19ae3c4
mov dword [esp + 0x90], 0xedd2efda
mov dword [esp + 0x94], 0xe9caebdb
mov dword [esp + 0x98], 0xf586f7a7
mov dword [esp + 0x9c], 0xf186f384
mov dword [esp + 0xa0], 0xfda7ff9b
mov dword [esp + 0xa4], 0xf994fb97
mov dword [esp + 0xa8], 0x57107ad
mov dword [esp + 0xac], 0x1330378
mov dword [esp + 0xb0], 0xd330f3b
mov dword [esp + 0xb4], 0x9380b35
mov dword [esp + 0xb8], 0x152c1735
mov dword [esp + 0xbc], 0x113a1334
mov dword [esp + 0xc0], 0x1d561f45
mov dword [esp + 0xc4], 0x19491b40
mov dword [esp + 0xc8], 0x2512274c
mov dword [esp + 0xcc], 0x21562304
mov dword [esp + 0xd0], 0x2d5b2f57
mov dword [esp + 0xd4], 0x290a2b47
mov dword [esp + 0xd8], 0x355d3761
mov dword [esp + 0xdc], 0x31473359
mov dword [esp + 0xe0], 0x3d093f41
mov dword [esp + 0xe4], 0x39773b1c
mov dword [esp + 0xe8], 0x45384750
mov dword [esp + 0xec], 0x41314335
mov dword [esp + 0xf0], 0x4d7f4f2b
mov dword [esp + 0xf4], 0x49754b73
mov dword [esp + 0xf8], 0x5564570f
mov dword [esp + 0xfc], 0x51605364
mov dword [esp + 0x100], 0x5d6c5f60
mov dword [esp + 0x104], 0x597a5b6c
mov dword [esp + 0x108], 0x65096705
mov dword [esp + 0x10c], 0x610d630e
mov dword [esp + 0x110], 0x6d196f1e
mov dword [esp + 0x114], 0x69516b5d
mov dword [esp + 0x118], 0x754f7755
mov dword [esp + 0x11c], 0x714f7346
mov dword [esp + 0x120], 0x7d7e7f4a
mov byte [esp + 0x124], 0
mov eax, dword [0x44d130]
mov ecx, 0x1c
mov edx, 0xe4
nop
nop
nop
nop
movzx ebx, byte [esp + ecx + 0x28]
mov esi, ebx
not esi
or esi, edx
add esi, ecx
and ebx, edx
or ebx, esi
add bl, 0x79
mov byte [esp + ecx + 0x28], bl
inc ecx
dec edx
cmp ecx, 0xfd
jne case.default.0x41045a
lea ecx, [esp + 0x44]
push 0
push 0
push 0
push 0
push ecx
call eax
mov ebp, eax
xor eax, eax
test ebp, ebp
setne al
jmp dword [eax*4 + 0x447d1c]
xor ebx, ebx
jmp 0x4107f9
mov edi, dword [0x44d134]
mov dword [esp + 0x44], 0x111e1c51
mov byte [esp + 0x48], 0
mov eax, 0x974e7845
mov ecx, 0xba
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax + 0x68b187ff]
mov edx, ecx
xor edx, eax
and edx, esi
xor edx, eax
mov esi, edx
and esi, 1
or edx, 1
add edx, esi
add dl, 0xa6
mov byte [esp + eax + 0x68b187ff], dl
inc eax
dec ecx
cmp eax, 0x974e784a
jne 0x410490
mov ebx, dword [esp + 0x44]
jmp dword [0x447d28]
movzx eax, bx
push 0
push eax
push 0x44d164
push ebp
call edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, bx
push 0
push eax
push 0x44d164
push ebp
call edi
jmp dword [0x447d2c]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x447d34]
xor ebx, ebx
jmp 0x4107f2
mov dword [esp + 4], eax
mov dword [esp], ebp
mov eax, dword [0x44d138]
mov dword [esp + 0x40], eax
mov dword [esp + 0xc], 0x39ba3b3c
mov dword [esp + 0x10], 0
mov edx, 0x43be1b0b
mov edi, 0xbc41e4f4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + edx - 0x43be1aff]
mov ebx, edx
xor ebx, ecx
or ebx, edi
mov esi, ebx
not esi
mov eax, esi
and eax, 0x1d
and ebx, 2
imul ebx, eax
mov eax, esi
and eax, 2
or esi, 2
imul esi, eax
add esi, ebx
mov ebx, esi
not ebx
and ebx, edx
and esi, edi
sub ebx, esi
add ebx, ecx
mov eax, ebx
xor eax, 0x38
and ebx, 0x47
add ebx, ebx
sub ebx, eax
inc bl
mov byte [esp + edx - 0x43be1aff], bl
inc edx
dec edi
cmp edx, 0x43be1b13
jne 0x410540
mov eax, dword [esp + 0xc]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x44], 0x29db2bd4
mov dword [esp + 0x48], 0x2dda2fdd
mov dword [esp + 0x4c], 0xd32c
mov byte [esp + 0x50], 0
xor esi, esi
mov ecx, 0x57fe7e08
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, esi
not ebx
lea edx, [esi + esi]
and edx, 0xe
mov edi, esi
shr edi, 1
and edi, 1
movzx eax, byte [esp + esi + 0x44]
mov dword [esp + 8], eax
mov ebp, esi
and ebp, 5
and ebx, 2
imul ebx, ebp
or ebp, 2
imul ebp, edi
lea ebp, [ebx + ebp*2]
mov edi, esi
sub edi, edx
lea ebx, [edi + ebp]
add ebx, 0xa80181f7
mov eax, dword [esp + 8]
xor eax, ebx
lea edi, [eax + eax]
not edi
add edi, eax
add edx, ecx
sub edx, ebp
and edi, ebx
add edi, edi
xor ebx, edi
and edx, edi
add edx, edx
sub ebx, edx
add bl, byte [esp + 8]
add bl, 0x2d
mov byte [esp + esi + 0x44], bl
inc esi
dec ecx
cmp esi, 0xd
jne case.default.0x410666
push dword [esp + 0x3c]
push 0
push 0
push 0
push dword [esp + 0x268]
lea eax, [esp + 0x58]
push eax
push dword [esp + 0x1c]
call dword [esp + 0x5c]
mov edi, eax
xor eax, eax
test edi, edi
setne al
xor ebx, ebx
mov ebp, dword [esp]
jmp dword [eax*4 + 0x447d3c]
jmp dword [0x447d4c]
xor eax, eax
mov ecx, dword [esp + 0x270]
test ecx, ecx
setg al
jmp dword [eax*4 + 0x447d54]
movzx eax, byte [0x44d268]
mov esi, dword [esp + 0x268]
mov ebx, dword [esp + 0x26c]
jmp dword [eax*4 + 0x447d5c]
push ecx
push ecx
push ecx
push ecx
push edi
call dword [0x44d140]
movzx eax, byte [0x44d268]
mov esi, dword [esp + 0x268]
mov ebx, dword [esp + 0x26c]
jmp dword [eax*4 + 0x447d5c]
mov dword [esp + 0xc], 0x832d81c3
mov dword [esp + 0x10], 0x872d852b
mov dword [esp + 0x14], 0x8b2f8921
mov dword [esp + 0x18], 0x8fee8df6
mov dword [esp + 0x1c], 0x93cd91cf
mov dword [esp + 0x20], 0x97309537
mov dword [esp + 0x24], 0x9b3799c7
mov dword [esp + 0x28], 0x9fc19d2b
mov dword [esp + 0x2c], 0xe35be142
mov dword [esp + 0x30], 0xe79be554
mov dword [esp + 0x34], 0xe9e8
mov byte [esp + 0x38], 0
lea eax, [esp + 0xc]
mov ecx, 0xdf
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [eax]
lea esi, [ecx - 0x1ba05100]
or esi, edx
and edx, ecx
lea ebx, [edx + edx]
not ebx
add ebx, edx
and ebx, esi
lea edx, [ebx + ebx]
not edx
add edx, ebx
add dl, 0x60
mov byte [eax], dl
inc eax
dec ecx
cmp ecx, 0xb2
jne 0x410740
movzx eax, word [esp + 0xc]
test ax, ax
lea edx, [esp + 0x44]
je 0x410791
lea ecx, [esp + 0xe]
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x410780
mov word [edx], 0
movzx eax, word [0x44d26a]
test ax, ax
je 0x4107c5
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx + ecx], ax
movzx eax, word [ecx + 0x44d26c]
add ecx, 2
test ax, ax
jne 0x4107b0
add edx, ecx
mov word [edx], 0
jmp dword [0x447d64]
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x447d94]
mov bl, 1
jmp dword [0x447da0]
push dword [esp + 4]
call dword [0x44d15c]
push ebp
call dword [0x44d15c]
mov eax, ebx
add esp, 0x244
pop esi
pop edi
pop ebx
pop ebp
ret
push 0
push edi
call dword [0x44d14c]
nop
push 0
push edi
call dword [0x44d14c]
jmp dword [0x447d8c]
jmp dword [0x447da0]
lea ecx, [esp + 0x44]
push dword [esp + 0xc]
push 0xffffffffffffffff
push ecx
push edi
call eax
mov esi, dword [esp + 0x268]
mov ebx, dword [esp + 0x26c]
mov ebp, dword [esp]
xor eax, eax
mov edx, dword [esp + 0x25c]
mov ecx, edx
neg ecx
sbb eax, eax
push 0
push ebx
push dword [esp + 0x26c]
push dword [esp + 0x26c]
push eax
push edx
push edi
call dword [0x44d148]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x447d74]
xor ebx, ebx
jmp dword [0x447da0]
mov dword [esp + 0x44], 0
lea eax, [esp + 0x44]
push eax
push ebx
push esi
push edi
call dword [0x44d158]
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x447d7c]
jmp dword [0x447d84]
mov dword [esp + 0xc], 0x917e7f7c
mov word [esp + 0x10], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0xc]
mov esi, eax
and esi, 0xa
mov ebx, ecx
xor ebx, 0x1abbc66a
sub ebx, esi
xor ebx, edx
lea edx, [ebx + ebx]
not edx
add edx, ebx
mov esi, edx
and esi, 1
xor edx, 1
lea edx, [edx + esi*2]
add dl, 0x16
mov byte [esp + ecx + 0xc], dl
inc ecx
add eax, 2
cmp ecx, 6
jne 0x4108d0
mov eax, dword [0x44d144]
mov dword [esp + 0xc], 0x917e7f7c
mov word [esp + 0x10], 0
xor ecx, ecx
xor edx, edx
movzx esi, byte [esp + edx + 0xc]
mov ebx, ecx
and ebx, 0xa
mov ebp, edx
xor ebp, 0x1abbc66a
sub ebp, ebx
xor ebp, esi
lea esi, [ebp*2]
not esi
add esi, ebp
mov ebx, esi
and ebx, 1
xor esi, 1
lea ebx, [esi + ebx*2]
add bl, 0x16
mov byte [esp + edx + 0xc], bl
inc edx
add ecx, 2
cmp edx, 6
jne 0x410920
jmp dword [0x447d6c]
push edi
call dword [0x44d15c]
push edi
call dword [0x44d15c]
jmp dword [0x447da8]