Function at 0x41e6c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
mov eax, 0x21e4
call fcn.0040a2d0
mov dword [esp + 0x11e4], 0x8a7d8479
mov dword [esp + 0x11e8], 0x8e468842
mov dword [esp + 0x11ec], 0xb2468c42
mov dword [esp + 0x11f0], 0xb641b045
mov dword [esp + 0x11f4], 0xba47b44a
mov dword [esp + 0x11f8], 0xbe4ab842
mov dword [esp + 0x11fc], 0xa255bc76
mov word [esp + 0x1200], 0xa0a1
mov dword [esp + 0x1202], 0
mov byte [esp + 0x1206], 0
mov dword [esp + 0xa74], 0
mov eax, dword [esp + 0xa74]
cmp eax, 0x22
ja 0x41e798
nop
mov eax, dword [esp + 0xa74]
mov ecx, dword [esp + 0xa74]
movzx ecx, byte [esp + ecx + 0x11e4]
add eax, 0x9ee3be56
xor eax, ecx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x74]
add al, 0x2d
mov ecx, dword [esp + 0xa74]
mov byte [esp + ecx + 0x11e4], al
inc dword [esp + 0xa74]
mov eax, dword [esp + 0xa74]
cmp eax, 0x23
jb 0x41e750
lea eax, [esp + 0x34]
lea esi, [esp + 0x11e4]
push 0
push 0
push 0x20019
push eax
push esi
call fcn.0043f290
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x44560c]
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x40]
push 0
push 0
push 0
push 0
push eax
push ecx
push 0
push 0
push dword [esp + 0x54]
call fcn.0043f6f0
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x445614]
xor eax, eax
jmp 0x420048
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x28], 0
cmp ecx, dword [esp + 0x40]
setb al
xor ebx, ebx
jmp dword [eax*4 + 0x44561c]
mov word [esi], 0
mov eax, dword [esp + 0x28]
mov ecx, eax
and cl, 1
movzx ecx, cl
jmp dword [ecx*4 + 0x445624]
movzx ecx, word [esp + 0x11e4]
xor edx, edx
test cx, cx
je 0x41fe25
lea eax, [esp + 0x11e4]
jmp 0x41fdfd
push dword [esp + 0x48]
call fcn.0040a310
add esp, 4
inc ebx
xor eax, eax
cmp ebx, dword [esp + 0x40]
setb al
jmp dword [eax*4 + 0x44561c]
mov edi, dword [esp + 0x5c]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x41e87f
mov eax, 0xffffffff
push eax
call fcn.0040a300
add esp, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x58], edi
lea ecx, [esp + 0x58]
push ecx
push eax
push ebx
push dword [esp + 0x40]
mov edi, eax
call fcn.0043f3d0
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44562c]
jmp dword [0x44569c]
lea eax, [esp + 0x3c]
push dword [esp + 0x34]
push 0
push 0x20019
push eax
push edi
call fcn.0043f290
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x445634]
jmp dword [0x44569c]
mov dword [esp + 0x74], 0x76f0549
mov dword [esp + 0x78], 0xb78096b
mov dword [esp + 0x7c], 0xf7d0d63
mov dword [esp + 0x80], 0x1374117f
mov dword [esp + 0x84], 0x174a1560
mov dword [esp + 0x88], 0x1b73194f
mov dword [esp + 0x8c], 0x1f7a1d72
mov dword [esp + 0x90], 0x2355214f
mov dword [esp + 0x94], 0x27062557
mov dword [esp + 0x98], 0x2b4f2965
mov dword [esp + 0x9c], 0x2f5d2d5f
mov dword [esp + 0xa0], 0x33553151
mov dword [esp + 0xa4], 0x3758355d
mov dword [esp + 0xa8], 0x3b1a395f
mov dword [esp + 0xac], 0x3f4b3d6f
mov dword [esp + 0xb0], 0x43314122
mov dword [esp + 0xb4], 0x4735453d
mov dword [esp + 0xb8], 0x4b2f493c
mov dword [esp + 0xbc], 0x4f124d21
mov dword [esp + 0xc0], 0x53205100
mov dword [esp + 0xc4], 0x5730553b
mov dword [esp + 0xc8], 0x5b365931
mov dword [esp + 0xcc], 0x5f2d5d39
mov dword [esp + 0xd0], 0x635b613c
mov dword [esp + 0xd4], 0x67516557
mov dword [esp + 0xd8], 0x6b29695d
mov dword [esp + 0xdc], 0x6f286d2a
mov dword [esp + 0xe0], 0x73467140
mov dword [esp + 0xe4], 0x77457545
mov dword [esp + 0xe8], 0x7b4b7949
mov dword [esp + 0xec], 0x7f1a7d4d
mov dword [esp + 0xf0], 0x83c081b3
mov dword [esp + 0xf4], 0x87be85bc
mov dword [esp + 0xf8], 0x8bba89c9
mov dword [esp + 0xfc], 0x8fbf8dbc
mov dword [esp + 0x100], 0x93a691a0
mov dword [esp + 0x104], 0x97a495d6
mov dword [esp + 0x108], 0x9bac99d9
mov dword [esp + 0x10c], 0x9fa99daa
mov dword [esp + 0x110], 0xa3fea196
mov word [esp + 0x114], 0xa5a4
lea eax, [esp + 0x114]
mov word [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp + 0x874], 0
mov eax, dword [esp + 0x874]
cmp eax, 0xa7
ja 0x41eb2a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x874]
mov ecx, dword [esp + 0x874]
movzx ecx, byte [esp + ecx + 0x74]
add eax, 0x6b99284
xor eax, ecx
mov dword [esp + 0xa74], eax
mov eax, dword [esp + 0xa74]
add al, 0x80
mov ecx, dword [esp + 0x874]
mov byte [esp + ecx + 0x74], al
inc dword [esp + 0x874]
mov eax, dword [esp + 0x874]
cmp eax, 0xa8
jb 0x41eae0
lea edi, [esp + 0xe76]
lea eax, [esp + 0x74]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edx, [esp + 0x114]
mov eax, edx
mov ecx, 1
lea edi, [esp + 0xf16]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x74], 0x1b8b1dad
mov dword [esp + 0x78], 0x78619b7
mov dword [esp + 0x7c], 0x3990597
mov dword [esp + 0x80], 0xfaa0193
mov dword [esp + 0x84], 0xba80d92
mov dword [esp + 0x88], 0x779f09b3
mov dword [esp + 0x8c], 0x73d875e4
mov dword [esp + 0x90], 0x7fe971e3
mov dword [esp + 0x94], 0x7b1c7de3
mov dword [esp + 0x98], 0x67c479c8
mov dword [esp + 0x9c], 0x632965c2
mov dword [esp + 0xa0], 0x6ffe61f9
mov dword [esp + 0xa4], 0x6bc76df0
mov dword [esp + 0xa8], 0x57f469f8
mov dword [esp + 0xac], 0x53ff55ec
mov dword [esp + 0xb0], 0x5fcd51cc
mov dword [esp + 0xb4], 0x5bcd5dc9
mov dword [esp + 0xb8], 0x47fc59c8
mov dword [esp + 0xbc], 0x43d345ff
mov dword [esp + 0xc0], 0x4fec41d0
mov dword [esp + 0xc4], 0x4bd54ddf
mov dword [esp + 0xc8], 0xb72849d7
mov dword [esp + 0xcc], 0xb31fb505
mov dword [esp + 0xd0], 0xbf2db12f
mov dword [esp + 0xd4], 0xbb15bd11
mov dword [esp + 0xd8], 0xa72ab92d
mov dword [esp + 0xdc], 0xa3c4a50f
mov dword [esp + 0xe0], 0xaf3ba11f
mov dword [esp + 0xe4], 0xab31ad00
mov dword [esp + 0xe8], 0x9735a92d
mov dword [esp + 0xec], 0x933f950a
mov dword [esp + 0xf0], 0x9f349101
mov dword [esp + 0xf4], 0x9b029d2e
mov dword [esp + 0xf8], 0x8732990b
mov dword [esp + 0xfc], 0x83108511
mov dword [esp + 0x100], 0x8f1d8129
mov dword [esp + 0x104], 0x8b3d8d2a
mov dword [esp + 0x108], 0xf7148911
mov dword [esp + 0x10c], 0xf365f562
mov dword [esp + 0x110], 0xff65f163
mov dword [esp + 0x114], 0xfbbbfd5a
mov dword [esp + 0x118], 0xe7a1f9a7
mov dword [esp + 0x11c], 0xe3a9e5bd
mov dword [esp + 0x120], 0xefaae1a8
mov dword [esp + 0x124], 0xebb0edbe
mov dword [esp + 0x128], 0xd7b5e9b5
mov dword [esp + 0x12c], 0xd38bd589
mov dword [esp + 0x130], 0xdf7cd18d
mov dword [esp + 0x134], 0xdb92dd83
mov dword [esp + 0x138], 0xc780d982
mov dword [esp + 0x13c], 0xc394c589
mov dword [esp + 0x140], 0xcf9fc192
mov dword [esp + 0x144], 0xcb90cd9e
mov dword [esp + 0x148], 0x3796c984
mov dword [esp + 0x14c], 0x336e3579
mov dword [esp + 0x150], 0x3f693168
mov dword [esp + 0x154], 0x3b983d64
mov word [esp + 0x158], 0x393a
mov byte [edx + 0x4a], 0
mov dword [edx + 0x46], 0
mov dword [esp + 0x874], 0
mov eax, dword [esp + 0x874]
cmp eax, 0xea
ja 0x41ee51
mov eax, dword [esp + 0x874]
mov ecx, dword [esp + 0x874]
movzx ecx, byte [esp + ecx + 0x74]
lea edx, [eax + ecx]
add edx, 0xbe0ce329
add eax, 0xbe0ce329
and eax, ecx
mov ecx, edx
xor ecx, eax
add ecx, eax
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0xa74], eax
mov eax, dword [esp + 0xa74]
add al, 0xc9
mov ecx, dword [esp + 0x874]
mov byte [esp + ecx + 0x74], al
inc dword [esp + 0x874]
mov eax, dword [esp + 0x874]
cmp eax, 0xeb
jb 0x41edf0
lea edi, [esp + 0xf18]
lea eax, [esp + 0x74]
mov ecx, 0x39
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x158]
lea edi, [esp + 0xffc]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x74], 0x85ed87cb
mov dword [esp + 0x78], 0x89fe8bed
mov dword [esp + 0x7c], 0x8dfb8ffd
mov dword [esp + 0x80], 0x91fa93e1
mov dword [esp + 0x84], 0x95c897e2
mov dword [esp + 0x88], 0x99f29bc9
mov dword [esp + 0x8c], 0x9df59ff4
mov dword [esp + 0x90], 0xa1c5a3c5
mov dword [esp + 0x94], 0xa595a7fa
mov dword [esp + 0x98], 0xa99aab9d
mov dword [esp + 0x9c], 0xadf0af9e
mov dword [esp + 0xa0], 0xb1c5b3e1
mov dword [esp + 0xa4], 0xb5d8b7c2
mov dword [esp + 0xa8], 0xb9cbbbc9
mov dword [esp + 0xac], 0xbde0bfd1
mov dword [esp + 0xb0], 0xc1b6c392
mov dword [esp + 0xb4], 0xc5aec7b5
mov dword [esp + 0xb8], 0xc9a4cba3
mov dword [esp + 0xbc], 0xcdbbcfab
mov dword [esp + 0xc0], 0xd183d38e
mov dword [esp + 0xc4], 0xd5a0d7a3
mov dword [esp + 0xc8], 0xd9abdbb6
mov dword [esp + 0xcc], 0xddb3dfad
mov dword [esp + 0xd0], 0xe1d9e3be
mov dword [esp + 0xd4], 0xe5dfe7d1
mov dword [esp + 0xd8], 0xe9afebdf
mov dword [esp + 0xdc], 0xeda6efa4
mov dword [esp + 0xe0], 0xf1c4f3c2
mov dword [esp + 0xe4], 0xf5c3f7c7
mov dword [esp + 0xe8], 0xf9c9fbcb
mov dword [esp + 0xec], 0xfd98ffcf
mov dword [esp + 0xf0], 0x1460335
mov dword [esp + 0xf4], 0x53c073e
mov dword [esp + 0xf8], 0x9380b4b
mov dword [esp + 0xfc], 0xd3d0f3e
mov dword [esp + 0x100], 0x11241322
mov dword [esp + 0x104], 0x15221750
mov dword [esp + 0x108], 0x19221b5b
mov dword [esp + 0x10c], 0x1d271f24
mov dword [esp + 0x110], 0x217c2318
mov word [esp + 0x114], 0x2726
lea eax, [esp + 0x114]
mov byte [eax + 4], 0
mov word [eax + 2], 0
mov dword [esp + 0x874], 0
mov eax, dword [esp + 0x874]
cmp eax, 0xa4
ja 0x41f0aa
mov eax, dword [esp + 0x874]
mov ecx, dword [esp + 0x874]
movzx ecx, byte [esp + ecx + 0x74]
add eax, 0x10578804
xor eax, ecx
mov dword [esp + 0xa74], eax
mov eax, dword [esp + 0xa74]
add al, 0x7e
mov ecx, dword [esp + 0x874]
mov byte [esp + ecx + 0x74], al
inc dword [esp + 0x874]
mov eax, dword [esp + 0x874]
cmp eax, 0xa5
jb 0x41f060
lea edi, [esp + 0x1142]
lea eax, [esp + 0x74]
mov ebp, edi
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x114]
lea edi, [esp + 0x11e2]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x74], 0x4f274d39
mov dword [esp + 0x78], 0x4bd8492b
mov dword [esp + 0x7c], 0x77e575e3
mov dword [esp + 0x80], 0x731c71e7
mov dword [esp + 0x84], 0x7f1a7de0
mov dword [esp + 0x88], 0x7b14790f
mov dword [esp + 0x8c], 0x670f650a
mov dword [esp + 0x90], 0x630f6103
mov dword [esp + 0x94], 0x6f3f6d08
mov dword [esp + 0x98], 0x6b3c6934
mov dword [esp + 0x9c], 0x97f295c4
mov dword [esp + 0xa0], 0x930f91e7
mov dword [esp + 0xa4], 0x9f0a9d00
mov dword [esp + 0xa8], 0x9b0d990f
mov dword [esp + 0xac], 0x87e285ef
mov dword [esp + 0xb0], 0x831081f0
mov dword [esp + 0xb4], 0x8fe08d1b
mov dword [esp + 0xb8], 0x8b1e89e1
mov dword [esp + 0xbc], 0xb725b5d9
mov dword [esp + 0xc0], 0xb3c5b1d4
mov dword [esp + 0xc4], 0xbf22bd21
mov dword [esp + 0xc8], 0xbb2db92c
mov dword [esp + 0xcc], 0xa7cda533
mov dword [esp + 0xd0], 0xa3fba1c4
mov dword [esp + 0xd4], 0xaff1adff
mov dword [esp + 0xd8], 0xabe9a9f5
mov dword [esp + 0xdc], 0xd798d59a
mov dword [esp + 0xe0], 0xd38ed180
mov dword [esp + 0xe4], 0xdf8ddd8d
mov dword [esp + 0xe8], 0xdb8bd989
mov dword [esp + 0xec], 0xc7aac595
mov dword [esp + 0xf0], 0xc380c193
mov dword [esp + 0xf4], 0xcf96cd94
mov dword [esp + 0xf8], 0xcb9ac989
mov dword [esp + 0xfc], 0xf7a7f5a4
mov dword [esp + 0x100], 0xf3aef1a0
mov dword [esp + 0x104], 0xffacfdbe
mov dword [esp + 0x108], 0xfba4f9b9
mov dword [esp + 0x10c], 0xe7b9e5ba
mov dword [esp + 0x110], 0xe386e1be
mov word [esp + 0x114], 0xedec
lea eax, [esp + 0x114]
mov byte [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp + 0x874], 0
mov eax, dword [esp + 0x874]
cmp eax, 0xa6
ja 0x41f30a
nop
nop
nop
nop
mov eax, dword [esp + 0x874]
mov ecx, dword [esp + 0x874]
movzx ecx, byte [esp + ecx + 0x74]
add eax, 0xa0af0458
xor eax, ecx
mov dword [esp + 0xa74], eax
mov eax, dword [esp + 0xa74]
add al, 0xec
mov ecx, dword [esp + 0x874]
mov byte [esp + ecx + 0x74], al
inc dword [esp + 0x874]
mov eax, dword [esp + 0x874]
cmp eax, 0xa7
jb 0x41f2c0
mov dword [esp + 0x44], ebx
lea eax, [esp + 0x10a0]
lea edx, [esp + 0x74]
mov ecx, 0x28
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edx, [esp + 0x114]
lea edi, [esp + 0x1140]
mov ecx, 1
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 0x74], 0x48ce56e8
mov dword [esp + 0x78], 0x4cd94aea
mov dword [esp + 0x7c], 0x40dc4ed2
mov dword [esp + 0x80], 0x44e542de
mov dword [esp + 0x84], 0xb8eb46d1
mov dword [esp + 0x88], 0xbc1dba06
mov dword [esp + 0x8c], 0xb026be1b
mov dword [esp + 0x90], 0xb416b212
mov dword [esp + 0x94], 0xa8e6b619
mov dword [esp + 0x98], 0xacf5aafc
mov dword [esp + 0x9c], 0xa003aefd
mov dword [esp + 0xa0], 0xa436a21e
mov dword [esp + 0xa4], 0x983ba631
mov dword [esp + 0xa8], 0x9c049a06
mov dword [esp + 0xac], 0x90339e06
mov dword [esp + 0xb0], 0x94019221
mov dword [esp + 0xb4], 0x8831960a
mov dword [esp + 0xb8], 0x8c178a10
mov dword [esp + 0xbc], 0x801c8e28
mov dword [esp + 0xc0], 0x843c822d
mov dword [esp + 0xc4], 0xf8138610
mov dword [esp + 0xc8], 0xfc64fa65
mov dword [esp + 0xcc], 0xf064fe62
mov dword [esp + 0xd0], 0xf4baf25d
mov dword [esp + 0xd4], 0xe8a0f6a6
mov dword [esp + 0xd8], 0xeca8eabc
mov dword [esp + 0xdc], 0xe0a9eeab
mov dword [esp + 0xe0], 0xe4b7e2b1
mov dword [esp + 0xe4], 0xd8b4e6b4
mov dword [esp + 0xe8], 0xdc8ada88
mov dword [esp + 0xec], 0xd07bde8c
mov dword [esp + 0xf0], 0xd491d282
mov dword [esp + 0xf4], 0xc89fd69d
mov dword [esp + 0xf8], 0xcc9bca88
mov dword [esp + 0xfc], 0xc09ece9d
mov dword [esp + 0x100], 0xc497c291
mov dword [esp + 0x104], 0x3895c687
mov dword [esp + 0x108], 0x3c6d3a78
mov dword [esp + 0x10c], 0x30683e6b
mov dword [esp + 0x110], 0x349f3267
mov word [esp + 0x114], 0x3635
lea ecx, [esp + 0x114]
mov byte [ecx + 4], 0
mov word [ecx + 2], 0
mov dword [esp + 0x874], 0
mov ecx, dword [esp + 0x874]
cmp ecx, 0xa4
ja 0x41f57d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x874]
mov edx, dword [esp + 0x874]
movzx edx, byte [esp + edx + 0x74]
add ecx, 0xc311d2ed
xor ecx, edx
mov dword [esp + 0xa74], ecx
mov ecx, dword [esp + 0xa74]
add cl, 0x48
mov edx, dword [esp + 0x874]
mov byte [esp + edx + 0x74], cl
inc dword [esp + 0x874]
mov ecx, dword [esp + 0x874]
cmp ecx, 0xa5
jb 0x41f530
lea edx, [esp + 0xffe]
lea ebx, [esp + 0x74]
mov edi, edx
mov ecx, 0x28
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
lea ebx, [esp + 0x114]
lea edi, [esp + 0x109e]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
lea ecx, [esp + 0xe76]
mov dword [esp + 0x60], ecx
lea ecx, [esp + 0xf18]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], ebp
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], edx
xor ecx, ecx
xor eax, eax
cmp ecx, 0x14
setne al
jmp dword [eax*4 + 0x44563c]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x74], 0xc2c33c3d
mov word [esp + 0x78], 0
mov dword [esp + 0x874], 0
mov ecx, dword [esp + 0x874]
cmp ecx, 5
ja 0x41f66a
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x874]
mov edx, dword [esp + 0x874]
movzx edx, byte [esp + edx + 0x74]
add ecx, 0x205af7fe
xor ecx, edx
mov dword [esp + 0xa74], ecx
mov ecx, dword [esp + 0xa74]
add cl, 0x3c
mov edx, dword [esp + 0x874]
mov byte [esp + edx + 0x74], cl
inc dword [esp + 0x874]
mov ecx, dword [esp + 0x874]
cmp ecx, 6
jb 0x41f620
mov ecx, dword [0x44996c]
test ecx, ecx
je 0x41fde0
mov edx, dword [esp + 0x74]
xor edi, edi
mov ebx, dword [0x449970]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x625b6034
je 0x41fdc1
inc edi
cmp ecx, edi
jne 0x41f690
jmp 0x41fde0
add ecx, 4
xor eax, eax
cmp ecx, 0x14
setne al
jmp dword [eax*4 + 0x44563c]
mov edi, ecx
mov eax, dword [esp + ecx + 0x60]
mov dword [esp + 0x74], 0x42b140b7
mov dword [esp + 0x78], 0x4ebd4cb3
mov dword [esp + 0x7c], 0x4ab948bf
mov dword [esp + 0x80], 0x568d54bb
mov word [esp + 0x84], 0x5057
lea ecx, [esp + 0x114]
mov byte [ecx - 0x8c], 0
mov word [ecx - 0x8e], 0
mov dword [esp + 0x874], 0
mov ecx, dword [esp + 0x874]
cmp ecx, 0x14
ja 0x41f77a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x874]
mov edx, dword [esp + 0x874]
movzx edx, byte [esp + edx + 0x74]
add ecx, 0x27b64423
xor ecx, edx
mov dword [esp + 0xa74], ecx
mov ecx, dword [esp + 0xa74]
add cl, 0x9c
mov edx, dword [esp + 0x874]
mov byte [esp + edx + 0x74], cl
inc dword [esp + 0x874]
mov ecx, dword [esp + 0x874]
cmp ecx, 0x15
jb 0x41f730
movzx ecx, word [eax]
lea edx, [esp + 0x874]
test cx, cx
je 0x41f7a1
add eax, 2
nop
nop
nop
nop
mov word [edx], cx
add edx, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x41f790
mov word [edx], 0
movzx eax, word [esp + 0x74]
test ax, ax
je 0x41f7d1
lea ecx, [esp + 0x76]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41f7c0
mov word [edx], 0
mov bx, 0x31
mov eax, dword [case.0x41f5db.5]
mov ecx, edi
mov dword [esp + 0x4c], edx
jmp case.0x41f5db.2
mov eax, ebx
and eax, 1
xor ebx, 1
lea ebx, [ebx + eax*2]
mov eax, dword [case.0x41f5db.5]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
nop
jmp eax
xor eax, eax
cmp bx, 0x35
setb al
jmp dword [eax*4 + 0x445654]
mov dword [esp + 0x50], ecx
mov word [edx - 2], bx
lea eax, [esp + 0x38]
lea ecx, [esp + 0x874]
push dword [esp + 0x3c]
push 0
push 0x20019
push eax
push ecx
call fcn.0043f290
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44565c]
mov dword [esp + 0x54], 0x800
mov dword [esp + 0x2c], 0x400
xor edi, edi
mov dword [esp + 0x10], 0
jmp 0x41f87b
mov ebx, dword [esp + 4]
mov edx, dword [esp + 8]
mov word [esi], 0xa
add esi, 2
mov al, 1
mov dword [esp + 0x28], eax
inc edx
mov edi, edx
lea eax, [esp + 0x2c]
lea ebp, [esp + 0xa74]
lea ecx, [esp + 0x30]
lea edx, [esp + 0x54]
push eax
push ebp
push ecx
push edx
lea eax, [esp + 0x84]
push eax
mov dword [esp + 0x1c], edi
push edi
push dword [esp + 0x50]
call fcn.0043f9e0
add esp, 0x1c
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x445664]
test byte [esp + 0x10], 1
sete al
cmp dword [esp + 0x30], 1
sete cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x44566c]
xor eax, eax
cmp dword [esp + 0x30], 3
sete al
mov edx, dword [esp + 8]
jmp dword [eax*4 + 0x44568c]
mov dword [esp + 4], ebx
jmp dword [0x445674]
mov dword [esp + 0x14], 0xc4a0c680
mov dword [esp + 0x18], 0xc8b8caae
mov dword [esp + 0x1c], 0xccbfceb4
mov dword [esp + 0x20], 0xd0d1d2a7
lea eax, [esp + 0x24]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x12
ja 0x41f96e
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x14]
add eax, 0x1da57e44
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0x7d
mov ecx, dword [esp]
mov byte [esp + ecx + 0x14], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x13
jb 0x41f940
movzx ebx, word [esp + 0x14]
lea ebp, [esp + 0x74]
test bx, bx
je 0x41f9c2
lea eax, [esp + 0x74]
lea edx, [esp + 0x14]
mov ebp, eax
jmp 0x41f998
movzx ebx, word [edx]
test bx, bx
je 0x41f9c2
movzx edi, word [eax]
test di, di
je 0x41f9c0
add eax, 2
add edx, 2
lea ecx, [ebp + 2]
cmp di, bx
je 0x41f9b2
mov ebp, ecx
mov eax, ecx
je 0x41f990
lea edx, [esp + 0x14]
jmp 0x41f990
xor ebp, ebp
mov ebx, dword [esp + 4]
mov edx, dword [esp + 8]
jmp dword [0x44567c]
xor eax, eax
test ebp, ebp
setne al
jmp dword [eax*4 + 0x445684]
xor eax, eax
cmp dword [esp + 0x30], 3
sete al
jmp dword [eax*4 + 0x44568c]
mov dword [esp + 4], ebx
mov dword [esp + 0x14], 0x1abc1c4f
mov dword [esp + 0x18], 0x66a618a4
mov dword [esp + 0x1c], 0x62d664dc
mov dword [esp + 0x20], 0x6ecd60dd
mov dword [esp + 0x24], 0x6c6f
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x13
ja 0x41fa5e
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x14]
add eax, 0x31909f39
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0xda
mov ecx, dword [esp]
mov byte [esp + ecx + 0x14], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x14
jb 0x41fa30
movzx ebx, word [esp + 0x14]
test bx, bx
je 0x41fb9c
lea ecx, [esp + 0x74]
lea edx, [esp + 0x14]
mov eax, ecx
jmp 0x41fa8c
movzx ebx, word [edx]
test bx, bx
je 0x41fba4
movzx edi, word [ecx]
test di, di
je 0x41fba2
add ecx, 2
add edx, 2
lea ebp, [eax + 2]
cmp di, bx
je 0x41faaa
mov eax, ebp
mov ecx, ebp
je 0x41fa80
lea edx, [esp + 0x14]
jmp 0x41fa80
mov dword [esp + 0x14], 0xc4a0c680
mov dword [esp + 0x18], 0xc8b8caae
mov dword [esp + 0x1c], 0xccbfceb4
mov dword [esp + 0x20], 0xd0d1d2a7
lea eax, [esp + 0x24]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x12
ja case.0x41f5db.14
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x14]
add eax, 0x1da57e44
xor eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add al, 0x7d
mov ecx, dword [esp]
mov byte [esp + ecx + 0x14], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x13
jb 0x41fb00
jmp case.0x41f5db.14
mov ecx, dword [esp + 0x2c]
cmp ecx, 2
jb 0x41fc92
shr ecx, 1
mov eax, ecx
and eax, 3
je 0x41fc1a
xor edx, edx
lea ebp, [esp + 0xa74]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, word [ebp]
xor ebx, ebx
test di, di
setne bl
lea ebp, [ebp + ebx*2]
mov word [esi], di
add esi, 2
inc edx
cmp eax, edx
jne 0x41fb70
mov eax, ecx
sub eax, edx
mov ebx, dword [esp + 4]
mov edx, dword [esp + 8]
jmp 0x41fc23
lea eax, [esp + 0x74]
jmp 0x41fba4
xor eax, eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x445694]
mov edi, dword [esp + 8]
inc edi
mov ebx, dword [esp + 4]
jmp 0x41f87b
mov ebp, dword [esp + 0x2c]
cmp ebp, 2
mov ebx, dword [esp + 4]
mov edx, dword [esp + 8]
jb 0x41f86a
shr ebp, 1
mov ecx, ebp
and ecx, 3
je 0x41fcab
xor ebx, ebx
lea eax, [esp + 0xa74]
nop
nop
nop
nop
nop
movzx edi, word [eax]
xor edx, edx
test di, di
setne dl
lea eax, [eax + edx*2]
mov word [esi], di
add esi, 2
inc ebx
cmp ecx, ebx
jne 0x41fbf0
mov ecx, ebp
sub ecx, ebx
mov ebx, dword [esp + 4]
mov edx, dword [esp + 8]
jmp 0x41fcb4
mov eax, ecx
lea ebp, [esp + 0xa74]
dec ecx
cmp ecx, 3
jb 0x41fc92
nop
nop
nop
nop
nop
nop
nop
movzx ecx, word [ebp]
xor edx, edx
test cx, cx
setne dl
lea edi, [edx*2]
add edi, ebp
mov word [esi], cx
movzx ecx, word [ebp + edx*2]
xor edx, edx
test cx, cx
setne dl
lea ebx, [edi + edx*2]
mov word [esi + 2], cx
movzx ecx, word [edi + edx*2]
xor edx, edx
test cx, cx
setne dl
lea edi, [ebx + edx*2]
mov word [esi + 4], cx
movzx edx, word [ebx + edx*2]
xor ecx, ecx
test dx, dx
setne cl
mov word [esi + 6], dx
add esi, 8
lea ebp, [edi + ecx*2]
add eax, 0xfffffffc
jne 0x41fc30
mov ebx, dword [esp + 4]
mov edx, dword [esp + 8]
mov word [esi], 0x3a
mov word [esi + 2], 0x20
add esi, 4
mov al, 1
mov dword [esp + 0x10], eax
jmp case.0x41f5db.20
lea eax, [esp + 0xa74]
mov ecx, ebp
dec ebp
cmp ebp, 3
jb 0x41f86a
nop
nop
movzx edx, word [eax]
xor ebx, ebx
test dx, dx
setne bl
lea edi, [eax + ebx*2]
mov word [esi], dx
movzx eax, word [eax + ebx*2]
xor edx, edx
test ax, ax
setne dl
lea ebx, [edi + edx*2]
mov word [esi + 2], ax
movzx eax, word [edi + edx*2]
xor edx, edx
test ax, ax
setne dl
lea edi, [ebx + edx*2]
mov word [esi + 4], ax
movzx edx, word [ebx + edx*2]
xor eax, eax
test dx, dx
setne al
mov word [esi + 6], dx
add esi, 8
lea eax, [edi + eax*2]
add ecx, 0xfffffffc
jne 0x41fcc0
jmp 0x41f862
mov ebp, ebx
mov eax, dword [esp + 0x38]
mov dword [esp + 0x14], 0xc2c33c3d
mov word [esp + 0x18], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 5
ja 0x41fd70
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x14]
add ecx, 0x205af7fe
xor ecx, edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
add cl, 0x3c
mov edx, dword [esp]
mov byte [esp + edx + 0x14], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 6
jb 0x41fd40
mov ecx, dword [0x44996c]
test ecx, ecx
je 0x41fdba
mov edx, dword [esp + 0x14]
xor edi, edi
mov ebx, dword [0x449970]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x625b6034
je 0x41fda0
inc edi
cmp ecx, edi
jne 0x41fd90
jmp 0x41fdba
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je 0x41fdba
push eax
push 1
push dword [0x449974]
push ecx
call fcn.0043c800
add esp, 0x10
mov ebx, ebp
jmp case.0x41f5db.8
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je 0x41fde0
push eax
push 1
push dword [0x449974]
push ecx
call fcn.0043c800
add esp, 0x10
nop
nop
nop
nop
nop
mov ebx, dword [esp + 0x44]
jmp dword [0x44569c]
inc edx
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
je 0x41fe25
cmp eax, esi
jae 0x41fe25
cmp cx, 0x7f
jbe 0x41fdf0
movzx ecx, cx
cmp ecx, 0x7ff
ja 0x41fe20
mov ecx, edx
and ecx, 2
xor edx, 2
lea edx, [edx + ecx*2]
jmp 0x41fdf1
add edx, 3
jmp 0x41fdf1
lea eax, [edx + 1]
mov dword [esp + 8], eax
push eax
mov edi, edx
call fcn.0040a300
add esp, 4
lea ecx, [esp + 0x11e4]
cmp ecx, esi
setb cl
mov dword [esp + 0x10], eax
mov edx, edi
mov dword [esp + 0x28], edi
test edi, edi
jle 0x41ff33
mov eax, dword [esp + 0x10]
test cl, cl
je 0x41ff33
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
lea edi, [ecx + eax]
add dword [esp + 8], ecx
lea edx, [esp + 0x11e6]
mov eax, ecx
mov dword [esp + 4], edi
nop
nop
nop
movzx ecx, word [edx - 2]
test cx, cx
je 0x41ff33
cmp cx, 0x7f
ja 0x41fea0
mov byte [eax], cl
mov ebp, 1
jmp 0x41ff20
mov edi, dword [esp + 8]
sub edi, eax
mov ebx, edi
xor ebx, 1
and edi, 0xfffffffe
add edi, edi
sub edi, ebx
movzx ebx, cx
cmp edi, 2
jb 0x41fee0
cmp ebx, 0x7ff
ja 0x41fee0
mov ebx, ecx
shr ebx, 6
add bl, 0xc0
mov byte [eax], bl
and cl, 0x3f
or cl, 0x80
mov byte [eax + 1], cl
mov ebp, 2
mov edi, dword [esp + 4]
jmp 0x41ff20
xor ebp, ebp
cmp edi, 3
mov edi, dword [esp + 4]
jb 0x41ff20
mov ebp, ebx
shr ebx, 0xc
or bl, 0xe0
mov byte [eax], bl
mov ebx, ebp
shr ebx, 6
and bl, 0x3f
or bl, 0x80
mov byte [eax + 1], bl
and cl, 0x3f
or cl, 0x80
mov byte [eax + 2], cl
mov ebp, 3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add eax, ebp
cmp eax, edi
jae 0x41ff33
lea ecx, [edx + 2]
cmp edx, esi
mov edx, ecx
jb 0x41fe80
mov ecx, dword [esp + 0x21f8]
mov byte [eax], 0
mov dword [esp + 0x74], 0x7d707343
mov dword [esp + 0x78], 0x7165607f
mov dword [esp + 0x7c], 0x6e6a6863
mov dword [esp + 0x80], 0x69694c2d
mov dword [esp + 0x84], 0x6e63606e
mov dword [esp + 0x88], 0x66624725
mov dword [esp + 0x8c], 0x4c545250
mov dword [esp + 0x90], 0xa5581d59
mov word [esp + 0x94], 0x2356
mov dword [esp + 0x96], 0
mov dword [esp + 0x874], 0
mov eax, dword [esp + 0x874]
cmp eax, 0x25
ja 0x420008
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x874]
mov edx, dword [esp + 0x874]
movzx edx, byte [esp + edx + 0x74]
add eax, 0x50063808
xor eax, edx
mov dword [esp + 0xa74], eax
mov eax, dword [esp + 0xa74]
add al, 0xf6
mov edx, dword [esp + 0x874]
mov byte [esp + edx + 0x74], al
inc dword [esp + 0x874]
mov eax, dword [esp + 0x874]
cmp eax, 0x26
jb 0x41ffc0
lea eax, [esp + 0x74]
push dword [esp + 0x28]
mov esi, dword [esp + 0x14]
push esi
push eax
call fcn.0040ac30
jmp dword [0x4456a4]
push esi
mov esi, eax
call fcn.0040a310
mov eax, esi
add esp, 4
jmp dword [0x4456ac]
jmp dword [0x4456ac]
nop
nop
nop
nop
nop
nop
jmp dword [0x4456b4]
and al, 1
add esp, 0x21e4
pop esi
pop edi
pop ebx
pop ebp
ret