Function at 0x1e98c0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
push ebx
push edi
push esi
mov eax, 0x21f4
call fcn.001ccbd0
mov dword [esp + 0x11f4], 0x61346700
mov dword [esp + 0x11f8], 0x7d3b633f
mov dword [esp + 0x11fc], 0x79137f27
mov dword [esp + 0x1200], 0x75287b14
mov dword [esp + 0x1204], 0x7112771f
mov dword [esp + 0x1208], 0x8d1f731f
mov dword [esp + 0x120c], 0x89dc8fd3
mov word [esp + 0x1210], 0x8b88
mov dword [esp + 0x1212], 0
mov byte [esp + 0x1216], 0
mov dword [esp + 0x84], 0
mov eax, dword [esp + 0x84]
cmp eax, 0x22
ja 0x1e97d0
nop
mov eax, dword [esp + 0x84]
movzx eax, byte [esp + eax + 0x11f4]
push dword [esp + 0x84]
push eax
call fcn.001ebb50
add esp, 8
mov ecx, dword [esp + 0x84]
mov byte [esp + ecx + 0x11f4], al
inc dword [esp + 0x84]
mov eax, dword [esp + 0x84]
cmp eax, 0x23
jb 0x1e9790
lea eax, [esp + 0x44]
lea ecx, [esp + 0x11f4]
push 0
push 0
push 0x20019
push eax
mov dword [esp + 0x14], ecx
push ecx
call fcn.0020b320
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x212cc8]
lea eax, [esp + 0x6c]
lea ecx, [esp + 0x40]
push 0
push 0
push 0
push 0
push eax
push ecx
push 0
push 0
push dword [esp + 0x64]
call fcn.0020b720
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x212cd0]
xor ebx, ebx
jmp 0x1eb1be
mov eax, dword [case.0x1e97f5.6]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor ecx, ecx
lea eax, [esp + 0x86]
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x26]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x126]
mov dword [esp + 0x58], eax
xor eax, eax
mov dword [esp + 0xc], 0
cmp ecx, dword [esp + 0x40]
setb al
xor esi, esi
jmp dword [eax*4 + 0x212ce8]
mov edx, dword [esp + 4]
mov word [edx], 0
mov ebx, dword [esp + 0xc]
mov eax, ebx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x212cf0]
movzx ecx, word [esp + 0x11f4]
xor ebp, ebp
test cx, cx
je 0x1eaf98
lea eax, [esp + 0x11f4]
jmp 0x1eaf72
mov eax, esi
and eax, 1
xor esi, 1
lea esi, [esi + eax*2]
xor eax, eax
cmp esi, dword [esp + 0x40]
setb al
jmp dword [eax*4 + 0x212ce8]
mov dword [esp + 0x48], esi
mov edi, dword [esp + 0x6c]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x1e98f1
mov eax, 0xffffffff
push eax
call fcn.001ccc70
add esp, 4
mov dword [esp + 0x68], edi
lea ecx, [esp + 0x68]
push ecx
mov dword [esp + 0x30], eax
push eax
mov esi, dword [esp + 0x50]
push esi
push dword [esp + 0x50]
call fcn.0020b430
add esp, 0x10
mov ecx, dword [case.0x1e97f5.15]
nop
jmp ecx
jmp dword [0x212d14]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x212d18]
mov eax, dword [case.0x1ead4d.20]
jmp 0x1ead60
lea eax, [esp + 0x3c]
push dword [esp + 0x44]
push 0
push 0x20019
push eax
push dword [esp + 0x3c]
call fcn.0020b320
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x212d20]
mov dword [esp + 0x84], 0x832b81cd
mov dword [esp + 0x88], 0x87348527
mov dword [esp + 0x8c], 0x8b398927
mov dword [esp + 0x90], 0x8f288d23
mov dword [esp + 0x94], 0x93ce9124
mov dword [esp + 0x98], 0x973f95c3
mov dword [esp + 0x9c], 0x9b3e9936
mov dword [esp + 0xa0], 0x9f299d33
mov dword [esp + 0xa4], 0xe382e153
mov dword [esp + 0xa8], 0xe743e5a9
mov dword [esp + 0xac], 0xeb59e95b
mov dword [esp + 0xb0], 0xef49ed4d
mov dword [esp + 0xb4], 0xf35cf159
mov dword [esp + 0xb8], 0xf796f553
mov dword [esp + 0xbc], 0xfb4ff9ab
mov dword [esp + 0xc0], 0xff4dfd5e
mov dword [esp + 0xc4], 0xc371c179
mov dword [esp + 0xc8], 0xc763c570
mov dword [esp + 0xcc], 0xcb96c965
mov dword [esp + 0xd0], 0xcf7ccd9c
mov dword [esp + 0xd4], 0xd374d17f
mov dword [esp + 0xd8], 0xd77ad57d
mov dword [esp + 0xdc], 0xdb69d97d
mov dword [esp + 0xe0], 0xdfa7dd80
mov dword [esp + 0xe4], 0x23552153
mov dword [esp + 0xe8], 0x27652551
mov dword [esp + 0xec], 0x2b6c296e
mov dword [esp + 0xf0], 0x2f5a2d5c
mov dword [esp + 0xf4], 0x33413141
mov dword [esp + 0xf8], 0x37473545
mov dword [esp + 0xfc], 0x3b9e3949
mov dword [esp + 0x100], 0x3f7c3d4f
mov dword [esp + 0x104], 0x37a0178
mov dword [esp + 0x108], 0x7760545
mov dword [esp + 0x10c], 0xb7b0978
mov dword [esp + 0x110], 0xf7a0d7c
mov dword [esp + 0x114], 0x13601152
mov dword [esp + 0x118], 0x17601555
mov dword [esp + 0x11c], 0x1b6d196e
mov dword [esp + 0x120], 0x1f421d6a
lea ebx, [esp + 0x124]
mov word [esp + 0x124], 0x6160
mov dword [esp + 0x126], 0
mov dword [esp + 0x884], 0
mov eax, dword [esp + 0x884]
cmp eax, 0xa5
ja 0x1e9bb2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x884]
movzx eax, byte [esp + eax + 0x84]
push dword [esp + 0x884]
push eax
call fcn.001ebbd0
add esp, 8
mov ecx, dword [esp + 0x884]
mov byte [esp + ecx + 0x84], al
inc dword [esp + 0x884]
mov eax, dword [esp + 0x884]
cmp eax, 0xa6
jb 0x1e9b70
lea edi, [esp + 0xd28]
lea eax, [esp + 0x84]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xdc8]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov dword [esp + 0x84], 0x91059f23
mov dword [esp + 0x88], 0x95009335
mov dword [esp + 0x8c], 0x89039705
mov dword [esp + 0x90], 0x8d2c8b19
mov dword [esp + 0x94], 0x81228f18
mov dword [esp + 0x98], 0x85198329
mov dword [esp + 0x9c], 0x7922871a
mov dword [esp + 0xa0], 0x7df37be9
mov dword [esp + 0xa4], 0x719e7fe9
mov dword [esp + 0xa8], 0x75c673ce
mov dword [esp + 0xac], 0x69b377d8
mov dword [esp + 0xb0], 0x6df86bff
mov dword [esp + 0xb4], 0x61c96ffe
mov dword [esp + 0xb8], 0x65f663fe
mov dword [esp + 0xbc], 0x59c167d2
mov dword [esp + 0xc0], 0x5dcf5bca
mov dword [esp + 0xc4], 0x51cf5fc7
mov dword [esp + 0xc8], 0x55fe53ce
mov dword [esp + 0xcc], 0x49cd57fd
mov dword [esp + 0xd0], 0x4dee4bd6
mov dword [esp + 0xd4], 0x41c74fdd
mov dword [esp + 0xd8], 0x45a243d5
mov dword [esp + 0xdc], 0x39e147fb
mov dword [esp + 0xe0], 0x3daf3bad
mov dword [esp + 0xe4], 0x31a73f9f
mov dword [esp + 0xe8], 0x35ac33ab
mov dword [esp + 0xec], 0x29d637ad
mov dword [esp + 0xf0], 0x2dbd2b9d
mov dword [esp + 0xf4], 0x21bb2f8e
mov dword [esp + 0xf8], 0x25b723ab
mov dword [esp + 0xfc], 0x198127b0
mov dword [esp + 0x100], 0x1db61b87
mov dword [esp + 0x104], 0x118c1fac
mov dword [esp + 0x108], 0x15b41381
mov dword [esp + 0x10c], 0x98a178f
mov dword [esp + 0x110], 0xd9f0baf
mov dword [esp + 0x114], 0x1bf0fa0
mov dword [esp + 0x118], 0x5960397
mov dword [esp + 0x11c], 0xf9970798
mov dword [esp + 0x120], 0xfd67fb69
mov dword [esp + 0x124], 0xf135ff50
mov dword [esp + 0x128], 0xf53bf325
mov dword [esp + 0x12c], 0xe933f723
mov dword [esp + 0x130], 0xed2ceb2e
mov dword [esp + 0x134], 0xe13aef3c
mov dword [esp + 0x138], 0xe537e333
mov dword [esp + 0x13c], 0xd935e737
mov dword [esp + 0x140], 0xdd7edb0b
mov dword [esp + 0x144], 0xd11cdf09
mov dword [esp + 0x148], 0xd51ad318
mov dword [esp + 0x14c], 0xc906d717
mov dword [esp + 0x150], 0xcd19cb18
mov dword [esp + 0x154], 0xc11acf1c
mov dword [esp + 0x158], 0xc510c302
mov dword [esp + 0x15c], 0xb910c707
mov dword [esp + 0x160], 0xbd73bb6e
mov dword [esp + 0x164], 0xb112bf6a
lea ebx, [esp + 0x168]
mov word [esp + 0x168], 0xb3b0
mov dword [esp + 0x16a], 0
mov dword [esp + 0x884], 0
mov eax, dword [esp + 0x884]
cmp eax, 0xe9
ja 0x1e9ed2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x884]
movzx eax, byte [esp + eax + 0x84]
push dword [esp + 0x884]
push eax
call fcn.001ebc40
add esp, 8
mov ecx, dword [esp + 0x884]
mov byte [esp + ecx + 0x84], al
inc dword [esp + 0x884]
mov eax, dword [esp + 0x884]
cmp eax, 0xea
jb 0x1e9e90
lea edi, [esp + 0xdca]
lea eax, [esp + 0x84]
mov ecx, 0x39
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xeae]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov dword [esp + 0x84], 0xe31be13d
mov dword [esp + 0x88], 0xe714e507
mov dword [esp + 0x8c], 0xfb09f907
mov dword [esp + 0x90], 0xff18fd03
mov dword [esp + 0x94], 0xf31ef104
mov dword [esp + 0x98], 0xf710f52b
mov dword [esp + 0x9c], 0x8b73896e
mov dword [esp + 0xa0], 0x8f6b8d6f
mov dword [esp + 0xa4], 0x83b3816c
mov dword [esp + 0xa8], 0x87b885b7
mov dword [esp + 0xac], 0x9b7699a8
mov dword [esp + 0xb0], 0x9f6b9d43
mov dword [esp + 0xb4], 0x936e9164
mov dword [esp + 0xb8], 0x9769956b
mov dword [esp + 0xbc], 0xab46a953
mov dword [esp + 0xc0], 0xaf5cad7c
mov dword [esp + 0xc4], 0xa344a15f
mov dword [esp + 0xc8], 0xa75aa55d
mov dword [esp + 0xcc], 0xbb49b95d
mov dword [esp + 0xd0], 0xbf61bd50
mov dword [esp + 0xd4], 0xb346b145
mov dword [esp + 0xd8], 0xb749b548
mov dword [esp + 0xdc], 0x4bb149b7
mov dword [esp + 0xe0], 0x4f874da0
mov dword [esp + 0xe4], 0x43754173
mov dword [esp + 0xe8], 0x47854571
mov dword [esp + 0xec], 0x5b9c599e
mov dword [esp + 0xf0], 0x5f6a5d6c
mov dword [esp + 0xf4], 0x53615161
mov dword [esp + 0xf8], 0x57675565
mov dword [esp + 0xfc], 0x6b8e6959
mov dword [esp + 0x100], 0x6fac6d5f
mov dword [esp + 0x104], 0x63aa61a8
mov dword [esp + 0x108], 0x675665a5
mov dword [esp + 0x10c], 0x7b4b7948
mov dword [esp + 0x110], 0x7f4a7d4c
mov dword [esp + 0x114], 0x734071b2
mov dword [esp + 0x118], 0x774075b5
mov dword [esp + 0x11c], 0xb3d093e
mov dword [esp + 0x120], 0xfe20d3a
lea ebx, [esp + 0x124]
mov word [esp + 0x124], 0x100
mov dword [esp + 0x126], 0
mov dword [esp + 0x884], 0
mov eax, dword [esp + 0x884]
cmp eax, 0xa5
ja 0x1ea132
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x884]
movzx eax, byte [esp + eax + 0x84]
push dword [esp + 0x884]
push eax
call fcn.001ebcc0
add esp, 8
mov ecx, dword [esp + 0x884]
mov byte [esp + ecx + 0x84], al
inc dword [esp + 0x884]
mov eax, dword [esp + 0x884]
cmp eax, 0xa6
jb 0x1ea0f0
lea edi, [esp + 0xc86]
lea eax, [esp + 0x84]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xd26]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov dword [esp + 0x84], 0xb925bb77
mov dword [esp + 0x88], 0xbd28bf5d
mov dword [esp + 0x8c], 0xb127b32d
mov dword [esp + 0x90], 0xb52cb721
mov dword [esp + 0x94], 0xa946ab20
mov dword [esp + 0x98], 0xad34af59
mov dword [esp + 0x9c], 0xa13da336
mov dword [esp + 0xa0], 0xa53da745
mov dword [esp + 0xa4], 0x598d5b48
mov dword [esp + 0xa8], 0x5d8c5f8c
mov dword [esp + 0xac], 0x51be538c
mov dword [esp + 0xb0], 0x55dd57a1
mov dword [esp + 0xb4], 0x49d64bc0
mov dword [esp + 0xb8], 0x4ddf4fd9
mov dword [esp + 0xbc], 0x41ae43d1
mov dword [esp + 0xc0], 0x45d047b0
mov dword [esp + 0xc4], 0x79e07bd5
mov dword [esp + 0xc8], 0x7de27fe7
mov dword [esp + 0xcc], 0x71e773e7
mov dword [esp + 0xd0], 0x7587779c
mov dword [esp + 0xd4], 0x69fe6bff
mov dword [esp + 0xd8], 0x6dff6ff4
mov dword [esp + 0xdc], 0x61ff63fd
mov dword [esp + 0xe0], 0x65a9678c
mov dword [esp + 0xe4], 0x19d31bb1
mov dword [esp + 0xe8], 0x1ddb1fd3
mov dword [esp + 0xec], 0x11e813e6
mov dword [esp + 0xf0], 0x15c217c0
mov dword [esp + 0xf4], 0x9df0bc3
mov dword [esp + 0xf8], 0xdd90fdf
mov dword [esp + 0xfc], 0x1e603db
mov dword [esp + 0x100], 0x5c007d5
mov dword [esp + 0x104], 0x39f23bcc
mov dword [esp + 0x108], 0x3dee3fff
mov dword [esp + 0x10c], 0x31e533ec
mov dword [esp + 0x110], 0x35e237e0
mov dword [esp + 0x114], 0x29fc2bf2
mov dword [esp + 0x118], 0x2de42fef
mov dword [esp + 0x11c], 0x21eb23e6
mov dword [esp + 0x120], 0x25ca27ea
lea ebx, [esp + 0x124]
mov word [esp + 0x124], 0xdb24
mov dword [esp + 0x126], 0
mov dword [esp + 0x884], 0
mov eax, dword [esp + 0x884]
cmp eax, 0xa5
ja 0x1ea392
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x884]
movzx eax, byte [esp + eax + 0x84]
push dword [esp + 0x884]
push eax
call fcn.001ebd30
add esp, 8
mov ecx, dword [esp + 0x884]
mov byte [esp + ecx + 0x84], al
inc dword [esp + 0x884]
mov eax, dword [esp + 0x884]
cmp eax, 0xa6
jb 0x1ea350
lea edi, [esp + 0xf52]
lea eax, [esp + 0x84]
mov esi, edi
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xff2]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov dword [esp + 0x84], 0x178f19ed
mov dword [esp + 0x88], 0x139c158b
mov dword [esp + 0x8c], 0xf811183
mov dword [esp + 0x90], 0xb900d9f
mov dword [esp + 0x94], 0x7e20984
mov dword [esp + 0x98], 0x39805f7
mov dword [esp + 0x9c], 0x3fa7019a
mov dword [esp + 0xa0], 0x3ba73da3
mov dword [esp + 0xa4], 0x37e739dc
mov dword [esp + 0xa8], 0x33e035f9
mov dword [esp + 0xac], 0x2fca31e0
mov dword [esp + 0xb0], 0x2ba72ddf
mov dword [esp + 0xb4], 0x27b229a4
mov dword [esp + 0xb8], 0x23b125b7
mov dword [esp + 0xbc], 0xdf3a21b7
mov dword [esp + 0xc0], 0xdb54dd2c
mov dword [esp + 0xc4], 0xd74cd94b
mov dword [esp + 0xc8], 0xd346d54d
mov dword [esp + 0xcc], 0xcf41d14d
mov dword [esp + 0xd0], 0xcb39cd28
mov dword [esp + 0xd4], 0xc74ac945
mov dword [esp + 0xd8], 0xc351c550
mov dword [esp + 0xdc], 0xff69c153
mov dword [esp + 0xe0], 0xfb33fd18
mov dword [esp + 0xe4], 0xf73df937
mov dword [esp + 0xe8], 0xf30df539
mov dword [esp + 0xec], 0xef14f10a
mov dword [esp + 0xf0], 0xeb26ed3c
mov dword [esp + 0xf4], 0xe729e939
mov dword [esp + 0xf8], 0xe333e535
mov dword [esp + 0xfc], 0x9f02e131
mov dword [esp + 0x100], 0x9b649d53
mov dword [esp + 0x104], 0x975e9950
mov dword [esp + 0x108], 0x93429555
mov dword [esp + 0x10c], 0x8f5f9140
mov dword [esp + 0x110], 0x8b468d5c
mov dword [esp + 0x114], 0x87488976
mov dword [esp + 0x118], 0x83488545
mov dword [esp + 0x11c], 0xbf75814a
mov dword [esp + 0x120], 0xbb5ebd76
lea ebx, [esp + 0x124]
mov word [esp + 0x124], 0xb9b8
mov eax, dword [esp + 0x58]
mov byte [eax + 2], 0
mov word [eax], 0
mov dword [esp + 0x884], 0
mov eax, dword [esp + 0x884]
cmp eax, 0xa4
ja 0x1ea5f2
nop
nop
nop
mov eax, dword [esp + 0x884]
movzx eax, byte [esp + eax + 0x84]
push dword [esp + 0x884]
push eax
call fcn.001ebda0
add esp, 8
mov ecx, dword [esp + 0x884]
mov byte [esp + ecx + 0x84], al
inc dword [esp + 0x884]
mov eax, dword [esp + 0x884]
cmp eax, 0xa5
jb 0x1ea5b0
lea eax, [esp + 0xeb0]
lea ebp, [esp + 0x84]
mov edx, ebp
mov edi, eax
mov ecx, 0x28
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xf50]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
lea ecx, [esp + 0xd28]
mov dword [esp + 0x70], ecx
lea ecx, [esp + 0xdca]
mov dword [esp + 0x74], ecx
lea ecx, [esp + 0xc86]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], esi
mov dword [esp + 0x80], eax
xor ecx, ecx
xor eax, eax
cmp ecx, 0x14
setne al
jmp dword [eax*4 + 0x212d28]
jmp dword [0x212d30]
mov ecx, dword [esp + 0x60]
add ecx, 4
xor eax, eax
cmp ecx, 0x14
setne al
jmp dword [eax*4 + 0x212d28]
mov dword [esp + 0x60], ecx
mov edi, dword [esp + ecx + 0x70]
mov dword [esp + 0x84], 0x61b667b4
mov dword [esp + 0x88], 0x5db263b0
mov dword [esp + 0x8c], 0x598e5f8c
mov dword [esp + 0x90], 0x55f25b88
mov dword [esp + 0x94], 0x5754
mov dword [esp + 0x884], 0
mov eax, dword [esp + 0x884]
cmp eax, 0x13
ja 0x1ea720
nop
nop
nop
nop
mov eax, dword [esp + 0x884]
movzx eax, byte [esp + eax + 0x84]
push dword [esp + 0x884]
push eax
call fcn.001ebe10
add esp, 8
mov ecx, dword [esp + 0x884]
mov byte [esp + ecx + 0x84], al
inc dword [esp + 0x884]
mov eax, dword [esp + 0x884]
cmp eax, 0x14
jb 0x1ea6e0
movzx eax, word [edi]
lea esi, [esp + 0xff4]
test ax, ax
je 0x1ea751
add edi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [edi]
add edi, 2
test ax, ax
jne 0x1ea740
mov word [esi], 0
movzx eax, word [esp + 0x84]
test ax, ax
je 0x1ea781
mov ecx, dword [esp + 0x5c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1ea770
mov word [esi], 0
mov di, 0x31
xor eax, eax
cmp di, 0x35
setb al
mov dword [esp + 0x4c], esi
jmp dword [eax*4 + 0x212d40]
inc edi
xor eax, eax
cmp di, 0x35
setb al
jmp dword [eax*4 + 0x212d40]
mov word [esi - 2], di
lea eax, [esp + 0x54]
lea ecx, [esp + 0xff4]
push dword [esp + 0x3c]
push 0
push 0x20019
push eax
push ecx
call fcn.0020b320
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x212d48]
mov dword [esp + 0x50], edi
mov dword [esp + 0x64], 0x800
mov dword [esp + 0x34], 0x400
xor esi, esi
mov dword [esp + 0x10], 0
jmp 0x1ea81f
mov dword [esp + 0xc], ecx
mov eax, esi
and eax, 1
xor esi, 1
lea esi, [esi + eax*2]
lea eax, [esp + 0x34]
lea ebx, [esp + 0x884]
lea ecx, [esp + 0x38]
lea edx, [esp + 0x64]
push eax
push ebx
push ecx
push edx
push ebp
push esi
push dword [esp + 0x6c]
call fcn.0020b9f0
add esp, 0x1c
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x212d50]
test byte [esp + 0x10], 1
sete al
cmp dword [esp + 0x38], 1
sete cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x212d58]
xor eax, eax
cmp dword [esp + 0x38], 3
sete al
mov ecx, dword [esp + 0xc]
jmp dword [eax*4 + 0x212d68]
mov dword [esp + 8], esi
mov dword [esp + 0x14], 0x33513171
mov dword [esp + 0x18], 0x3f493d5f
mov dword [esp + 0x1c], 0x3b4c3945
mov dword [esp + 0x20], 0x47464538
mov byte [esp + 0x24], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x10
ja 0x1ea8f6
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
movzx eax, byte [esp + eax + 0x14]
push dword [esp]
push eax
call fcn.001ebe90
add esp, 8
mov ecx, dword [esp]
mov byte [esp + ecx + 0x14], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x11
jb 0x1ea8d0
movzx edi, word [esp + 0x14]
test di, di
je 0x1ea93c
lea eax, [esp + 0x84]
lea edx, [esp + 0x14]
mov ebp, eax
jmp 0x1ea918
movzx edi, word [edx]
test di, di
je 0x1ea93c
movzx esi, word [eax]
test si, si
je 0x1ea93a
add eax, 2
add edx, 2
lea ecx, [ebp + 2]
cmp si, di
je 0x1ea932
mov ebp, ecx
mov eax, ecx
je 0x1ea910
lea edx, [esp + 0x14]
jmp 0x1ea910
xor ebp, ebp
xor eax, eax
test ebp, ebp
setne al
jmp dword [eax*4 + 0x212d60]
xor eax, eax
cmp dword [esp + 0x38], 3
sete al
mov ecx, dword [esp + 0xc]
lea ebp, [esp + 0x84]
mov esi, dword [esp + 8]
jmp dword [eax*4 + 0x212d68]
mov eax, dword [esp + 0x30]
jmp dword [0x212d74]
mov dword [esp + 0x14], 0x89358bdc
mov byte [esp + 0x18], 5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x14], 0x89358bdc
mov dword [esp + 0x18], 0x850b8705
mov dword [esp + 0x1c], 0x8133830d
mov dword [esp + 0x20], 0x9d229f0e
mov word [esp + 0x24], 0x9b9c
mov byte [eax + 2], 0
mov word [eax], 0
jmp dword [0x212d78]
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x14
ja 0x1eaa06
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
movzx eax, byte [esp + eax + 0x14]
push dword [esp]
push eax
call fcn.001ebf00
add esp, 8
mov ecx, dword [esp]
mov byte [esp + ecx + 0x14], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x15
jb 0x1ea9e0
mov dword [esp + 8], esi
movzx edi, word [esp + 0x14]
lea eax, [esp + 0x84]
test di, di
je 0x1eab6d
lea ecx, [esp + 0x84]
lea edx, [esp + 0x14]
mov eax, ecx
jmp 0x1eaa3c
movzx edi, word [edx]
test di, di
je 0x1eab6d
movzx esi, word [ecx]
test si, si
je 0x1eab6b
add ecx, 2
add edx, 2
lea ebx, [eax + 2]
cmp si, di
je 0x1eaa5a
mov eax, ebx
mov ecx, ebx
je 0x1eaa30
lea edx, [esp + 0x14]
jmp 0x1eaa30
mov eax, dword [esp + 0x34]
cmp eax, 2
mov esi, dword [esp + 8]
jae 0x1eaa8a
mov ebp, dword [esp + 4]
mov ecx, dword [esp + 0xc]
jmp 0x1eab4b
shr eax, 1
lea ecx, [eax - 1]
mov edx, eax
and edx, 3
je 0x1eaad8
mov dword [esp + 0x10], ecx
xor edi, edi
lea ebx, [esp + 0x884]
mov ebp, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [ebx]
xor ecx, ecx
test si, si
setne cl
lea ebx, [ebx + ecx*2]
mov word [ebp], si
add ebp, 2
inc edi
cmp edx, edi
jne 0x1eaab0
mov dword [esp + 4], ebp
sub eax, edi
mov esi, dword [esp + 8]
mov ecx, dword [esp + 0x10]
cmp ecx, 3
mov ebp, dword [esp + 4]
mov ecx, dword [esp + 0xc]
jb 0x1eab4b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, word [ebx]
xor edx, edx
test cx, cx
setne dl
lea esi, [ebx + edx*2]
mov word [ebp], cx
movzx ecx, word [ebx + edx*2]
xor edx, edx
test cx, cx
setne dl
lea edi, [esi + edx*2]
mov word [ebp + 2], cx
movzx ecx, word [esi + edx*2]
xor edx, edx
test cx, cx
setne dl
lea esi, [edi + edx*2]
mov word [ebp + 4], cx
movzx edx, word [edi + edx*2]
xor ecx, ecx
test dx, dx
setne cl
mov word [ebp + 6], dx
add ebp, 8
lea ebx, [esi + ecx*2]
add eax, 0xfffffffc
jne 0x1eaaf0
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 8]
mov dword [ebp], 0x20003a
add ebp, 4
mov dword [esp + 4], ebp
mov al, 1
mov dword [esp + 0x10], eax
lea ebp, [esp + 0x84]
jmp case.0x1ead4d.10
xor eax, eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x212d80]
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 8]
jmp case.0x1ead4d.10
mov eax, dword [esp + 0x34]
cmp eax, 2
jae 0x1eab9a
mov edx, dword [esp + 4]
jmp 0x1eac5c
shr eax, 1
lea esi, [eax - 1]
mov edi, eax
lea ecx, [esp + 0x884]
and edi, 3
mov edx, dword [esp + 4]
je 0x1eabeb
mov dword [esp + 0xc], esi
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [ecx]
mov ebp, edx
xor edx, edx
test si, si
setne dl
lea ecx, [ecx + edx*2]
mov edx, ebp
mov word [ebp], si
add edx, 2
inc ebx
cmp edi, ebx
jne 0x1eabc0
sub eax, ebx
lea ebp, [esp + 0x84]
mov esi, dword [esp + 0xc]
cmp esi, 3
mov esi, dword [esp + 8]
jb 0x1eac60
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebp, edx
movzx edx, word [ecx]
xor ebx, ebx
test dx, dx
setne bl
lea esi, [ecx + ebx*2]
mov word [ebp], dx
movzx ecx, word [ecx + ebx*2]
xor edx, edx
test cx, cx
setne dl
lea edi, [esi + edx*2]
mov word [ebp + 2], cx
movzx ecx, word [esi + edx*2]
xor edx, edx
test cx, cx
setne dl
lea esi, [edi + edx*2]
mov word [ebp + 4], cx
movzx edx, word [edi + edx*2]
xor ecx, ecx
test dx, dx
setne cl
mov word [ebp + 6], dx
lea edx, [ebp + 8]
lea ecx, [esi + ecx*2]
add eax, 0xfffffffc
jne 0x1eac00
lea ebp, [esp + 0x84]
mov esi, dword [esp + 8]
mov word [edx], 0xa
add edx, 2
mov dword [esp + 4], edx
mov cl, 1
jmp case.0x1ead4d.10
mov edi, dword [esp + 0x54]
mov dword [esp + 0x14], 0x80b0a0d
mov dword [esp + 0x18], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x1eacd6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
movzx eax, byte [esp + eax + 0x14]
push dword [esp]
push eax
call fcn.001ebf90
add esp, 8
mov ecx, dword [esp]
mov byte [esp + ecx + 0x14], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x1eacb0
mov eax, dword [0x217274]
test eax, eax
je 0x1ead10
mov ecx, dword [esp + 0x14]
xor edx, edx
mov ebx, dword [0x217278]
nop
nop
nop
nop
nop
cmp dword [ebx + edx*8], 0x625b6034
je 0x1ead00
inc edx
cmp eax, edx
jne 0x1eacf0
jmp 0x1ead10
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
jne case.default.0x1ead22
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esp + 0x50]
inc edi
xor eax, eax
cmp di, 0x35
setb al
mov esi, dword [esp + 0x4c]
jmp dword [eax*4 + 0x212d40]
push edi
push 1
push dword [0x21727c]
push eax
call fcn.002076d0
add esp, 0x10
mov edi, dword [esp + 0x50]
inc edi
xor eax, eax
cmp di, 0x35
setb al
mov esi, dword [esp + 0x4c]
jmp dword [eax*4 + 0x212d40]
mov ecx, dword [esp + 0x2c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x212d98]
push ecx
call fcn.001ccc80
add esp, 4
mov eax, esi
and eax, 1
xor esi, 1
lea esi, [esi + eax*2]
xor eax, eax
cmp esi, dword [esp + 0x40]
setb al
jmp dword [eax*4 + 0x212ce8]
mov eax, dword [case.0x1ead4d.20]
mov esi, dword [esp + 0x48]
jmp 0x1ead60
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x84], 0x80b0a0d
mov dword [esp + 0x88], 0
mov dword [esp + 0x884], 0
mov eax, dword [esp + 0x884]
cmp eax, 7
ja 0x1eae30
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x884]
movzx eax, byte [esp + eax + 0x84]
push dword [esp + 0x884]
push eax
call fcn.001ebf90
add esp, 8
mov ecx, dword [esp + 0x884]
mov byte [esp + ecx + 0x84], al
inc dword [esp + 0x884]
mov eax, dword [esp + 0x884]
cmp eax, 8
jb 0x1eadf0
mov eax, dword [0x217274]
test eax, eax
je case.0x1ea658.2
mov ecx, dword [esp + 0x84]
xor edx, edx
mov ebx, dword [0x217278]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edx*8], 0x625b6034
je 0x1eae60
inc edx
cmp eax, edx
jne 0x1eae50
jmp case.0x1ea658.2
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
je case.0x1ea658.2
push edi
push 1
push dword [0x21727c]
push eax
call fcn.002076d0
add esp, 0x10
nop
nop
nop
nop
nop
nop
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x84], 0x80b0a0d
mov dword [esp + 0x88], 0
mov dword [esp + 0x884], 0
mov eax, dword [esp + 0x884]
cmp eax, 7
ja 0x1eaf00
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x884]
movzx eax, byte [esp + eax + 0x84]
push dword [esp + 0x884]
push eax
call fcn.001ebf90
add esp, 8
mov ecx, dword [esp + 0x884]
mov byte [esp + ecx + 0x84], al
inc dword [esp + 0x884]
mov eax, dword [esp + 0x884]
cmp eax, 8
jb 0x1eaec0
mov eax, dword [0x217274]
test eax, eax
je 0x1eaf40
mov ecx, dword [esp + 0x84]
xor edx, edx
mov ebx, dword [0x217278]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edx*8], 0x625b6034
je 0x1eaf30
inc edx
cmp eax, edx
jne 0x1eaf20
jmp 0x1eaf40
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
jne 0x1eaf46
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x212d3c]
push edi
push 1
push dword [0x21727c]
push eax
call fcn.002076d0
add esp, 0x10
jmp dword [0x212d3c]
add ebp, edx
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
mov edx, dword [esp + 4]
je 0x1eaf98
cmp eax, edx
jae 0x1eaf98
movzx esi, cx
cmp esi, 0x800
mov ecx, 3
sbb ecx, 0
mov edx, 1
cmp esi, 0x80
jb 0x1eaf60
mov edx, ecx
jmp 0x1eaf60
lea esi, [ebp + 1]
push esi
call fcn.001ccc70
mov edx, dword [esp + 8]
add esp, 4
lea ecx, [esp + 0x11f4]
cmp ecx, edx
setb cl
mov dword [esp + 0x10], eax
test ebp, ebp
jle 0x1eb0c3
mov eax, dword [esp + 0x10]
test cl, cl
je 0x1eb0c3
mov eax, dword [esp + 0x10]
lea ecx, [eax + esi]
add ecx, 0xea418641
mov dword [esp + 0xc], ecx
mov esi, eax
add esi, ebp
lea ebx, [esp + 0x11f6]
mov dword [esp + 8], esi
nop
nop
nop
nop
movzx ecx, word [ebx - 2]
test cx, cx
je 0x1eb0c3
cmp cx, 0x7f
ja 0x1eb010
mov byte [eax], cl
mov edi, 1
jmp 0x1eb0b0
mov edx, dword [esp + 0xc]
sub edx, eax
lea esi, [edx + 0x15be79bf]
and edx, 1
and esi, 0xfffffffe
sub esi, edx
movzx edx, cx
cmp esi, 2
jb 0x1eb060
cmp edx, 0x7ff
ja 0x1eb060
mov edx, ecx
shr edx, 6
add dl, 0xc0
mov byte [eax], dl
and cl, 0x3f
or cl, 0x80
mov byte [eax + 1], cl
mov edi, 2
mov edx, dword [esp + 4]
mov esi, dword [esp + 8]
jmp 0x1eb0b0
mov dword [esp + 0x30], edx
xor edi, edi
cmp esi, 3
mov edx, dword [esp + 4]
mov esi, dword [esp + 8]
jb 0x1eb0b0
mov edi, dword [esp + 0x30]
mov edx, edi
shr edx, 0xc
or dl, 0xe0
mov byte [eax], dl
shr edi, 6
mov edx, edi
and dl, 0x3f
or dl, 0x80
mov byte [eax + 1], dl
mov edx, dword [esp + 4]
and cl, 0x3f
or cl, 0x80
mov byte [eax + 2], cl
mov edi, 3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add eax, edi
cmp eax, esi
jae 0x1eb0c3
lea ecx, [ebx + 2]
cmp ebx, edx
mov ebx, ecx
jb 0x1eaff0
mov byte [eax], 0
mov dword [esp + 0x84], 0xdd9e9f4f
mov dword [esp + 0x88], 0xe1d1d6db
mov dword [esp + 0x8c], 0xecd8e6df
mov dword [esp + 0x90], 0xe9edca29
mov dword [esp + 0x94], 0xccefeed0
mov dword [esp + 0x98], 0xf4f0d331
mov dword [esp + 0x9c], 0xcecaccc2
mov dword [esp + 0xa0], 0xf5fe05fd
mov word [esp + 0xa4], 0x6ff8
mov dword [esp + 0xa6], 0
mov dword [esp + 0x884], 0
mov eax, dword [esp + 0x884]
cmp eax, 0x25
ja 0x1eb190
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x884]
movzx eax, byte [esp + eax + 0x84]
push dword [esp + 0x884]
push eax
call fcn.001ec000
add esp, 8
mov ecx, dword [esp + 0x884]
mov byte [esp + ecx + 0x84], al
inc dword [esp + 0x884]
mov eax, dword [esp + 0x884]
cmp eax, 0x26
jb 0x1eb150
lea eax, [esp + 0x84]
mov ecx, dword [esp + 0x2208]
push ebp
mov esi, dword [esp + 0x14]
push esi
push eax
call fcn.001cdb10
mov ebx, eax
jmp dword [0x212da0]
push esi
call fcn.001ccc80
add esp, 4
and bl, 1
mov eax, dword [case.0x1ead4d.28]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, ebx
add esp, 0x21f4
pop esi
pop edi
pop ebx
pop ebp
ret