Function at 0x4187c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x3e0
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 + 0x338], 0x443a78
mov byte [esi + 0xa], 0
mov al, byte [esi + 0x7c]
mov byte [esi + 0x80], al
mov byte [esi + 0x180], 0x3b
mov byte [esi + 0x181], 0xad
mov byte [esi + 0x182], 7
mov byte [esi + 0x183], 0xab
mov byte [esi + 0x184], 0x31
mov byte [esi + 0x185], 0xa9
mov byte [esi + 0x186], 0xca
mov byte [esi + 0x187], 0x97
mov byte [esi + 0x188], 0xc6
mov byte [esi + 0x189], 0x95
mov byte [esi + 0x18a], 0x3e
mov byte [esi + 0x18b], 0x93
mov byte [esi + 0x18c], 0x3e
mov byte [esi + 0x18d], 0x91
mov byte [esi + 0x18e], 0x9e
mov byte [esi + 0x18f], 0x9f
mov byte [esi + 0x192], 0
mov word [esi + 0x190], 0
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x10]
cmp eax, 0x13
jae 0x4188cf
jmp 0x418885
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x10]
movzx edx, byte [esi + ecx + 0x180]
mov ecx, eax
add ecx, 0xfd1b359a
and ecx, edx
lea eax, [eax + edx - 0x2e4ca66]
add ecx, ecx
mov edx, ecx
xor edx, eax
not ecx
and eax, ecx
add eax, eax
sub eax, edx
add al, 0xca
mov ecx, dword [esi + 0x10]
mov byte [esi + ecx + 0x180], al
mov eax, dword [esi + 0x10]
inc eax
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
cmp eax, 0x13
jb 0x418885
jmp 0x4188cf
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
sub esp, 0xc
lea edx, [esi + 0x180]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00415490
add esp, 0xc
mov cl, byte [esi + 0xa]
or cl, al
mov byte [esi + 0xa], cl
mov al, byte [esi + 0x78]
mov byte [esi + 0x84], al
mov byte [esi + 0x210], 0x53
mov byte [esi + 0x211], 0xb1
mov byte [esi + 0x212], 0x57
mov byte [esi + 0x213], 0xb3
mov byte [esi + 0x214], 0x26
mov byte [esi + 0x215], 0xb5
mov byte [esi + 0x216], 0x22
mov byte [esi + 0x217], 0xb7
mov byte [esi + 0x218], 0x61
mov byte [esi + 0x219], 0xa9
mov byte [esi + 0x21a], 0x74
mov byte [esi + 0x21b], 0xab
mov byte [esi + 0x21c], 0x48
mov byte [esi + 0x21d], 0xad
mov byte [esi + 0x21e], 0x4c
mov byte [esi + 0x21f], 0xaf
mov byte [esi + 0x220], 0xa0
mov byte [esi + 0x221], 0xa1
mov dword [esi + 0x23a], 0
mov dword [esi + 0x236], 0
mov dword [esi + 0x232], 0
mov dword [esi + 0x22e], 0
mov dword [esi + 0x22a], 0
mov dword [esi + 0x226], 0
mov dword [esi + 0x222], 0
mov dword [esi + 0x14], 0
mov eax, dword [esi + 0x14]
cmp eax, 0x2e
jae 0x418a17
jmp 0x4189d7
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x14]
movzx ecx, byte [esi + ecx + 0x210]
mov edx, eax
add edx, 0x91d07368
lea eax, [eax + ecx - 0x6e2f8c98]
and edx, ecx
add edx, edx
sub eax, edx
add al, 0x28
mov ecx, dword [esi + 0x14]
mov byte [esi + ecx + 0x210], al
mov eax, dword [esi + 0x14]
inc eax
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0x14]
cmp eax, 0x2e
jb 0x4189d7
jmp 0x418a17
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
sub esp, 0xc
lea edx, [esi + 0x210]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00415490
add esp, 0xc
movzx edx, al
movzx eax, byte [esi + 0xa]
not eax
not edx
mov ecx, eax
xor ecx, edx
or eax, edx
not eax
or ecx, eax
mov byte [esi + 0xa], cl
mov al, byte [esi + 0x74]
mov byte [esi + 0x88], al
mov byte [esi + 0x110], 0x16
mov byte [esi + 0x111], 0x8d
mov byte [esi + 0x112], 0x11
mov byte [esi + 0x113], 0x83
mov byte [esi + 0x114], 0x16
mov byte [esi + 0x115], 0x81
mov byte [esi + 0x116], 0x1b
mov byte [esi + 0x117], 0x87
mov byte [esi + 0x118], 0x1c
mov byte [esi + 0x119], 0x85
mov byte [esi + 0x11a], 0x23
mov byte [esi + 0x11b], 0xbb
mov byte [esi + 0x11c], 0x2f
mov byte [esi + 0x11d], 0xb9
mov byte [esi + 0x11e], 0x2a
mov byte [esi + 0x11f], 0xbf
mov byte [esi + 0x120], 0x2f
mov byte [esi + 0x121], 0xbd
mov byte [esi + 0x122], 0x24
mov byte [esi + 0x123], 0xb3
mov byte [esi + 0x124], 0x39
mov byte [esi + 0x125], 0xb1
mov byte [esi + 0x126], 0xe4
mov byte [esi + 0x127], 0xb7
mov byte [esi + 0x128], 0x23
mov byte [esi + 0x129], 0xb5
mov byte [esi + 0x12a], 0x3b
mov byte [esi + 0x12b], 0xab
mov byte [esi + 0x12c], 0x34
mov byte [esi + 0x12d], 0xa9
mov byte [esi + 0x12e], 0x37
mov byte [esi + 0x12f], 0xaf
mov byte [esi + 0x130], 0x38
mov byte [esi + 0x131], 0xad
mov byte [esi + 0x132], 0xc7
mov byte [esi + 0x133], 0xa3
mov byte [esi + 0x134], 0xa0
mov byte [esi + 0x135], 0xa1
mov dword [esi + 0x14a], 0
mov dword [esi + 0x146], 0
mov dword [esi + 0x142], 0
mov dword [esi + 0x13e], 0
mov dword [esi + 0x13a], 0
mov dword [esi + 0x136], 0
mov dword [esi + 0x18], 0
mov eax, dword [esi + 0x18]
cmp eax, 0x3e
jae 0x418c05
jmp 0x418bb1
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x18]
movzx ecx, byte [esi + ecx + 0x110]
mov edx, eax
add edx, 0x9ad5b516
lea eax, [eax + ecx - 0x652a4aea]
and edx, ecx
add edx, edx
sub eax, edx
mov ecx, eax
or ecx, 0x65
and eax, 0x65
add ecx, eax
inc cl
mov eax, dword [esi + 0x18]
mov byte [esi + eax + 0x110], cl
mov eax, dword [esi + 0x18]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp eax, 0x3e
jb 0x418bb1
jmp 0x418c05
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.00415490
add esp, 0xc
movzx edx, al
movzx ecx, byte [esi + 0xa]
mov eax, ecx
or eax, edx
not ecx
not edx
and ecx, edx
not ecx
and eax, ecx
mov byte [esi + 0xa], al
mov al, byte [esi + 0x70]
mov byte [esi + 0x8c], al
mov byte [esi + 0xd0], 0x93
mov byte [esi + 0xd1], 0x39
mov byte [esi + 0xd2], 0x89
mov byte [esi + 0xd3], 0x3b
mov byte [esi + 0xd4], 0x8b
mov byte [esi + 0xd5], 0x3d
mov byte [esi + 0xd6], 0x91
mov byte [esi + 0xd7], 0x3f
mov byte [esi + 0xd8], 0x95
mov byte [esi + 0xd9], 1
mov byte [esi + 0xda], 0xa7
mov byte [esi + 0xdb], 3
mov byte [esi + 0xdc], 0xb7
mov byte [esi + 0xdd], 5
mov byte [esi + 0xde], 0xea
mov byte [esi + 0xdf], 7
mov byte [esi + 0xe0], 0xb3
mov byte [esi + 0xe1], 9
mov byte [esi + 0xe2], 0xbb
mov byte [esi + 0xe3], 0xb
mov byte [esi + 0xe4], 0xa6
mov byte [esi + 0xe5], 0xd
mov byte [esi + 0xe6], 0xa7
mov byte [esi + 0xe7], 0xf
mov byte [esi + 0xe8], 0xba
mov byte [esi + 0xe9], 0x11
mov byte [esi + 0xea], 0xb7
mov byte [esi + 0xeb], 0x13
mov byte [esi + 0xec], 0x12
mov byte [esi + 0xed], 0x15
mov dword [esi + 0xf9], 0
mov dword [esi + 0xf6], 0
mov dword [esi + 0xf2], 0
mov dword [esi + 0xee], 0
mov dword [esi + 0x1c], 0
mov eax, dword [esi + 0x1c]
cmp eax, 0x2d
jae 0x418dae
jmp 0x418d53
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x1c]
movzx ecx, byte [esi + ecx + 0xd0]
mov edi, eax
add edi, 0x6fbb55d7
mov edx, eax
add edx, 0xd7
mov ebx, edx
xor ebx, edi
and ebx, ecx
and edx, edi
and edx, ecx
lea eax, [eax + ecx + 0x6fbb55d7]
lea ecx, [ebx + edx*2]
sub eax, ecx
add al, 0x1f
mov ecx, dword [esi + 0x1c]
mov byte [esi + ecx + 0xd0], al
mov eax, dword [esi + 0x1c]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x1c]
cmp eax, 0x2d
jb 0x418d53
jmp 0x418dae
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
sub esp, 0xc
lea edx, [esi + 0xd0]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00415490
add esp, 0xc
movzx eax, al
movzx ecx, byte [esi + 0xa]
mov edx, eax
and edx, ecx
not edx
add ecx, eax
add ecx, edx
sub ecx, 0xffffffff
setne byte [esi + 0xa]
mov al, byte [esi + 0x6c]
mov byte [esi + 0x90], al
mov byte [esi + 0x1a0], 0x90
mov byte [esi + 0x1a1], 0x2d
mov byte [esi + 0x1a2], 0x91
mov byte [esi + 0x1a3], 0x23
mov byte [esi + 0x1a4], 0x9b
mov byte [esi + 0x1a5], 0x21
mov byte [esi + 0x1a6], 0x9f
mov byte [esi + 0x1a7], 0x27
mov byte [esi + 0x1a8], 0x96
mov byte [esi + 0x1a9], 0x25
mov byte [esi + 0x1aa], 0x8d
mov byte [esi + 0x1ab], 0x3b
mov byte [esi + 0x1ac], 0x4a
mov byte [esi + 0x1ad], 0x39
mov byte [esi + 0x1ae], 0x80
mov byte [esi + 0x1af], 0x3f
mov byte [esi + 0x1b0], 0x8b
mov byte [esi + 0x1b1], 0x3d
mov byte [esi + 0x1b2], 0x81
mov byte [esi + 0x1b3], 0x33
mov byte [esi + 0x1b4], 0x82
mov byte [esi + 0x1b5], 0x31
mov byte [esi + 0x1b6], 0x36
mov byte [esi + 0x1b7], 0x37
mov dword [esi + 0x1c0], 0
mov dword [esi + 0x1bc], 0
mov dword [esi + 0x1b8], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 0x24
jae 0x418f08
jmp 0x418ec8
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0x1a0]
mov edx, eax
add edx, 0x86
lea eax, [eax + ecx + 0x86]
and edx, ecx
add edx, edx
sub eax, edx
add al, 0x56
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x1a0], al
mov eax, dword [esi + 0x20]
inc eax
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
cmp eax, 0x24
jb 0x418ec8
jmp 0x418f08
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
sub esp, 0xc
lea edx, [esi + 0x1a0]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00415490
add esp, 0xc
mov cl, byte [esi + 0xa]
or cl, al
mov byte [esi + 0xa], cl
mov al, byte [esi + 0x68]
mov byte [esi + 0x94], al
mov byte [esi + 0x150], 0xa6
mov byte [esi + 0x151], 0x15
mov byte [esi + 0x152], 0xa8
mov byte [esi + 0x153], 0xeb
mov byte [esi + 0x154], 0x4d
mov byte [esi + 0x155], 0xe9
mov byte [esi + 0x156], 0x4d
mov byte [esi + 0x157], 0xef
mov byte [esi + 0x158], 0x55
mov byte [esi + 0x159], 0xed
mov byte [esi + 0x15a], 0x59
mov byte [esi + 0x15b], 0xe3
mov byte [esi + 0x15c], 0x10
mov byte [esi + 0x15d], 0xe1
mov byte [esi + 0x15e], 0x55
mov byte [esi + 0x15f], 0xe7
mov byte [esi + 0x160], 0x51
mov byte [esi + 0x161], 0xe5
mov byte [esi + 0x162], 0x58
mov byte [esi + 0x163], 0xfb
mov byte [esi + 0x164], 0x45
mov byte [esi + 0x165], 0xf9
mov byte [esi + 0x166], 0x4c
mov byte [esi + 0x167], 0xff
mov byte [esi + 0x168], 0x45
mov byte [esi + 0x169], 0xfd
mov byte [esi + 0x16a], 0xfc
mov byte [esi + 0x16b], 0xf3
mov dword [esi + 0x170], 0
mov dword [esi + 0x16c], 0
mov dword [esi + 0x24], 0
mov eax, dword [esi + 0x24]
cmp eax, 0x24
jae 0x41906f
jmp 0x419024
mov ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x24]
movzx edx, byte [esi + eax + 0x150]
mov eax, ecx
add eax, 0x33aebefd
add ecx, 0xfd
or ecx, eax
and ecx, edx
or eax, edx
sub eax, ecx
mov ecx, eax
xor ecx, 0x14
and eax, 0x14
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi + 0x24]
mov byte [esi + ecx + 0x150], al
mov eax, dword [esi + 0x24]
inc eax
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x24]
cmp eax, 0x24
jb 0x419024
jmp 0x41906f
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
sub esp, 0xc
lea edx, [esi + 0x150]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00415490
add esp, 0xc
mov cl, byte [esi + 0xa]
or cl, al
mov byte [esi + 0xa], cl
mov eax, dword [ebp + 0x10]
xor ecx, ecx
test eax, eax
sete cl
mov dword [esi + 0x334], ecx
mov eax, dword [esi + 0x338]
mov ecx, dword [esi + 0x334]
mov eax, dword [eax + ecx*4]
mov ecx, dword [0x443a80]
xor ecx, 0x5da7aee1
sub eax, ecx
push eax
mov ecx, esp
mov dword [ecx], 0x443900
mov edx, dword [0x443a84]
push eax
mov edi, esp
mov dword [esi + 0x248], edi
mov dword [edi], 0x443a8c
push eax
mov dword [esi + 0x244], esp
push eax
mov edi, esp
mov dword [esi + 0x250], edi
mov dword [edi], 0x443a98
push eax
mov dword [esi + 0x24c], esp
push eax
mov edi, esp
mov dword [esi + 0x258], edi
mov dword [edi], 0x443aa4
push eax
mov dword [esi + 0x254], esp
push eax
mov edi, esp
mov dword [esi + 0x264], edi
mov dword [edi], 0x443ab0
push eax
mov dword [esi + 0x25c], esp
push eax
mov edi, esp
mov dword [esi + 0x268], edi
mov dword [edi], 0x443900
mov edi, dword [0x443abc]
mov dword [esi + 0x260], edi
push eax
mov edi, esp
mov dword [esi + 0x104], edi
mov dword [edi], 0x443ac4
push eax
mov dword [esi + 0x300], esp
push eax
mov edi, esp
mov dword [esi + 0x2fc], edi
mov dword [edi], 0x443900
mov edi, dword [0x443ad0]
mov dword [esi + 0x2f8], edi
push eax
mov edi, esp
mov dword [esi + 0x2f4], edi
mov dword [edi], 0x443ad8
push eax
mov dword [esi + 0x2f0], esp
push eax
mov edi, esp
mov dword [esi + 0x2ec], edi
mov dword [edi], 0x443900
mov edi, dword [0x443ae4]
mov dword [esi + 0x2e4], edi
push eax
mov edi, esp
mov dword [esi + 0x2d8], edi
mov dword [edi], 0x443aec
push eax
mov dword [esi + 0x2cc], esp
push eax
mov edi, esp
mov dword [esi + 0x2c8], edi
mov dword [edi], 0x443900
mov edi, dword [0x443af8]
mov dword [esi + 0x2c4], edi
push eax
mov edi, esp
mov dword [esi + 0x2bc], edi
mov dword [edi], 0x443900
mov edi, dword [0x443b00]
mov dword [esi + 0x2b4], edi
push eax
mov edi, esp
mov dword [esi + 0x2ac], edi
mov dword [edi], 0x443900
mov edi, dword [0x443b08]
mov dword [esi + 0x2a0], edi
push eax
mov edi, esp
mov dword [esi + 0x29c], edi
mov dword [edi], 0x443b10
push eax
mov dword [esi + 0x290], esp
push eax
mov edi, esp
mov dword [esi + 0x284], edi
mov dword [edi], 0x443900
mov edi, dword [0x443b1c]
mov dword [esi + 0x27c], edi
push eax
mov edi, esp
mov dword [esi + 0x278], edi
mov dword [edi], 0x443900
mov edi, dword [0x443b24]
mov dword [esi + 0x274], edi
push eax
mov edi, esp
mov dword [esi + 0x288], edi
mov dword [edi], 0x443900
mov edi, dword [0x443b2c]
mov dword [esi + 0x280], edi
push eax
mov edi, esp
mov dword [esi + 0x294], edi
mov dword [edi], 0x443900
mov edi, dword [0x443b34]
mov dword [esi + 0x28c], edi
push eax
mov edi, esp
mov dword [esi + 0x2a4], edi
mov dword [edi], 0x443b3c
push eax
mov dword [esi + 0x298], esp
push eax
mov edi, esp
mov dword [esi + 0x2b0], edi
mov dword [edi], 0x443900
mov edi, dword [0x443b48]
mov dword [esi + 0x2a8], edi
push eax
mov edi, esp
mov dword [esi + 0x2c0], edi
mov dword [edi], 0x443b50
push eax
mov dword [esi + 0x2b8], esp
push eax
mov edi, esp
mov dword [esi + 0x100], edi
mov dword [edi], 0x443b5c
push eax
mov dword [esi + 0x2e0], esp
push eax
mov edi, esp
mov dword [esi + 0x2d4], edi
mov dword [edi], 0x443900
mov edi, dword [0x443b68]
mov dword [esi + 0x2d0], edi
push eax
mov edi, esp
mov dword [esi + 0x2e8], edi
mov dword [edi], 0x443900
mov edi, dword [0x443b70]
mov dword [esi + 0x2dc], edi
push eax
mov edi, esp
mov dword [esi + 0x308], edi
mov dword [edi], 0x443900
mov edi, dword [0x443b78]
mov dword [esi + 0x304], edi
push eax
mov edi, esp
mov dword [esi + 0x310], edi
mov dword [edi], 0x443b80
push eax
mov dword [esi + 0x30c], esp
push eax
mov edi, esp
mov dword [esi + 0x318], edi
mov dword [edi], 0x443900
mov edi, dword [0x443b8c]
mov dword [esi + 0x314], edi
push eax
mov edi, esp
mov dword [esi + 0x320], edi
mov dword [edi], 0x443900
mov edi, dword [0x443b94]
mov dword [esi + 0x31c], edi
push eax
mov edi, esp
mov dword [esi + 0x328], edi
mov dword [edi], 0x443900
mov edi, dword [0x443b9c]
mov dword [esi + 0x324], edi
push eax
mov edi, esp
mov dword [esi + 0x330], edi
mov dword [edi], 0x443900
mov edi, dword [0x443ba4]
mov dword [esi + 0x32c], edi
push eax
mov edi, esp
mov dword [edi], 0x443900
mov ebx, dword [0x443bac]
mov dword [esi + 0x26c], ebx
jmp eax