Function at 0x418360
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x428
mov esi, esp
mov eax, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov dword [esi + 0x37c], 0x442d78
mov byte [esi + 7], 0
mov al, byte [esi + 0x8c]
mov byte [esi + 0x90], al
mov byte [esi + 0x168], 0x1b
mov byte [esi + 0x169], 0xb9
mov byte [esi + 0x16a], 0x1f
mov byte [esi + 0x16b], 0xbb
mov byte [esi + 0x16c], 0x21
mov byte [esi + 0x16d], 0xbd
mov byte [esi + 0x16e], 0x68
mov byte [esi + 0x16f], 0xbf
mov byte [esi + 0x170], 0x50
mov byte [esi + 0x171], 0xa1
mov byte [esi + 0x172], 4
mov byte [esi + 0x173], 0xa3
mov byte [esi + 0x174], 0
mov byte [esi + 0x175], 0xa5
mov byte [esi + 0x176], 0xa4
mov byte [esi + 0x177], 0xa7
mov dword [esi + 0x17b], 0
mov dword [esi + 0x178], 0
mov dword [esi + 0x14], 0
mov eax, dword [esi + 0x14]
cmp eax, 0x17
jae 0x418480
jmp 0x41842c
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x14]
movzx edx, byte [esi + ecx + 0x168]
mov ecx, eax
add ecx, 0xd6d07347
mov edi, edx
not edi
mov ebx, ecx
or ebx, edi
and ecx, edx
add ecx, ebx
neg ecx
lea eax, [eax + ecx - 0x292f8cba]
mov dword [esi + 0x380], eax
mov eax, dword [esi + 0x380]
add al, 0xf
mov ecx, dword [esi + 0x14]
mov byte [esi + ecx + 0x168], al
mov eax, dword [esi + 0x14]
inc eax
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0x14]
cmp eax, 0x17
jb 0x41842c
jmp 0x418480
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
sub esp, 0xc
lea edx, [esi + 0x168]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00415320
add esp, 0xc
mov cl, byte [esi + 7]
or cl, al
mov byte [esi + 7], cl
mov al, byte [esi + 0x88]
mov byte [esi + 0x94], al
mov byte [esi + 0xb0], 0xc3
mov byte [esi + 0xb1], 0x61
mov byte [esi + 0xb2], 0xc7
mov byte [esi + 0xb3], 0x63
mov byte [esi + 0xb4], 0xf6
mov byte [esi + 0xb5], 0x65
mov byte [esi + 0xb6], 0xf2
mov byte [esi + 0xb7], 0x67
mov byte [esi + 0xb8], 0xb1
mov byte [esi + 0xb9], 0x69
mov byte [esi + 0xba], 0x84
mov byte [esi + 0xbb], 0x6b
mov byte [esi + 0xbc], 0xc8
mov byte [esi + 0xbd], 0x6d
mov byte [esi + 0xbe], 0xcc
mov byte [esi + 0xbf], 0x6f
mov byte [esi + 0xc0], 0x50
mov byte [esi + 0xc1], 0x51
mov word [esi + 0xc6], 0
mov dword [esi + 0xc2], 0
mov dword [esi + 0x18], 0
mov eax, dword [esi + 0x18]
cmp eax, 0x18
jae 0x4185a9
jmp 0x418558
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x18]
movzx ecx, byte [esi + ecx + 0xb0]
mov edx, eax
and edx, 0x32854c10
xor eax, 0x32854c10
lea eax, [eax + edx*2]
mov edx, eax
add edx, ecx
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x384], edx
mov eax, dword [esi + 0x384]
add al, 0x90
mov ecx, dword [esi + 0x18]
mov byte [esi + ecx + 0xb0], al
mov eax, dword [esi + 0x18]
inc eax
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp eax, 0x18
jb 0x418558
jmp 0x4185a9
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
sub esp, 0xc
lea edx, [esi + 0xb0]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00415320
add esp, 0xc
movzx eax, al
movzx ecx, byte [esi + 7]
mov edx, eax
and edx, ecx
not edx
add ecx, eax
add ecx, edx
sub ecx, 0xffffffff
setne byte [esi + 7]
mov al, byte [esi + 0x84]
mov byte [esi + 0x98], al
mov byte [esi + 0x110], 0x56
mov byte [esi + 0x111], 0xb1
mov byte [esi + 0x112], 0x2d
mov byte [esi + 0x113], 0xb3
mov byte [esi + 0x114], 0x26
mov byte [esi + 0x115], 0xb5
mov byte [esi + 0x116], 0x2b
mov byte [esi + 0x117], 0xb7
mov byte [esi + 0x118], 0x30
mov byte [esi + 0x119], 0xa9
mov byte [esi + 0x11a], 0x33
mov byte [esi + 0x11b], 0xab
mov byte [esi + 0x11c], 0x3f
mov byte [esi + 0x11d], 0xad
mov byte [esi + 0x11e], 0x3a
mov byte [esi + 0x11f], 0xaf
mov byte [esi + 0x120], 0x3f
mov byte [esi + 0x121], 0xa1
mov byte [esi + 0x122], 0x30
mov byte [esi + 0x123], 0xa3
mov byte [esi + 0x124], 0x2d
mov byte [esi + 0x125], 0xa5
mov byte [esi + 0x126], pe_nt_image_headers32
mov byte [esi + 0x127], 0xa7
mov byte [esi + 0x128], 0xcb
mov byte [esi + 0x129], 0x59
mov byte [esi + 0x12a], 0xcb
mov byte [esi + 0x12b], 0x5b
mov byte [esi + 0x12c], 0xc0
mov byte [esi + 0x12d], 0x5d
mov byte [esi + 0x12e], 0xc7
mov byte [esi + 0x12f], 0x5f
mov byte [esi + 0x130], 0xc4
mov byte [esi + 0x131], 0x51
mov byte [esi + 0x132], 0xb7
mov byte [esi + 0x133], 0x53
mov byte [esi + 0x134], 0x54
mov byte [esi + 0x135], 0x55
mov byte [esi + 0x13a], 0
mov dword [esi + 0x136], 0
mov dword [esi + 0x1c], 0
mov eax, dword [esi + 0x1c]
cmp eax, 0x2b
jae 0x418767
jmp 0x41871b
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x1c]
movzx ecx, byte [esi + ecx + 0x110]
mov edx, eax
add edx, 0xe8
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x6eb911e8
mov dword [esi + 0x388], eax
mov eax, dword [esi + 0x388]
add al, 0xa8
mov ecx, dword [esi + 0x1c]
mov byte [esi + ecx + 0x110], al
mov eax, dword [esi + 0x1c]
inc eax
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x1c]
cmp eax, 0x2b
jb 0x41871b
jmp 0x418767
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
sub esp, 0xc
lea edx, [esi + 0x110]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00415320
add esp, 0xc
movzx eax, al
movzx ecx, byte [esi + 7]
mov edx, eax
not edx
mov edi, ecx
and edi, edx
mov edx, ecx
xor edx, eax
add ecx, edx
sub ecx, edi
setne byte [esi + 7]
mov al, byte [esi + 0x80]
mov byte [esi + 0x9c], al
mov byte [esi + 0x140], 0xbb
mov byte [esi + 0x141], 0x41
mov byte [esi + 0x142], 0xb1
mov byte [esi + 0x143], 0x43
mov byte [esi + 0x144], 0xb3
mov byte [esi + 0x145], 0x5d
mov byte [esi + 0x146], 0xa9
mov byte [esi + 0x147], 0x5f
mov byte [esi + 0x148], 0xa5
mov byte [esi + 0x149], 0x59
mov byte [esi + 0x14a], 0xa7
mov byte [esi + 0x14b], 0x5b
mov byte [esi + 0x14c], 0xd7
mov byte [esi + 0x14d], 0x55
mov byte [esi + 0x14e], 0x62
mov byte [esi + 0x14f], 0x57
mov byte [esi + 0x150], 0xdb
mov byte [esi + 0x151], 0x51
mov byte [esi + 0x152], 0xa3
mov byte [esi + 0x153], 0x53
mov byte [esi + 0x154], 0xa6
mov byte [esi + 0x155], 0x6d
mov byte [esi + 0x156], 0x97
mov byte [esi + 0x157], 0x6f
mov byte [esi + 0x158], 0xe2
mov byte [esi + 0x159], 0x69
mov byte [esi + 0x15a], 0x97
mov byte [esi + 0x15b], 0x6b
mov byte [esi + 0x15c], 0x6a
mov byte [esi + 0x15d], 0x65
mov dword [esi + 0x162], 0
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add bh, al
xchg byte [esi + 1], bl
add byte [eax], al
add byte [eax], al
add byte [eax], al