Function at 0x41f922
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
mov eax, 0x2200
call fcn.00408f50
mov dword [esp + 0x11f8], 0xb640d68
mov dword [esp + 0x11fc], 0x75d0955
mov dword [esp + 0x1200], 0x36d055d
mov dword [esp + 0x1204], 0x1f70016c
mov dword [esp + 0x1208], 0x1b7e1d75
mov dword [esp + 0x120c], 0x17791975
mov dword [esp + 0x1210], 0x137c1549
mov word [esp + 0x1214], 0x1110
mov dword [esp + 0x121a], 0
mov dword [esp + 0x1216], 0
mov dword [esp + 0xa88], 0
mov eax, dword [esp + 0xa88]
cmp eax, 0x25
ja 0x41f898
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xa88]
mov ecx, dword [esp + 0xa88]
movzx ecx, byte [esp + ecx + 0x11f8]
lea edx, [eax - 0x1d7c63fe]
add eax, 2
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x88], edx
mov eax, dword [esp + 0x88]
add al, 0xf2
mov ecx, dword [esp + 0xa88]
mov byte [esp + ecx + 0x11f8], al
mov eax, dword [esp + 0xa88]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp + 0xa88], eax
mov eax, dword [esp + 0xa88]
cmp eax, 0x26
jb 0x41f830
lea eax, [esp + 0x4c]
lea esi, [esp + 0x11f8]
push 0
push 0
push 0x20019
push eax
push esi
call fcn.0043baf0
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x443b48]
lea eax, [esp + 0x70]
lea ecx, [esp + 0x60]
push 0
push 0
push 0
push 0
push eax
push ecx
push 0
push 0
push dword [esp + 0x6c]
call fcn.0043bf20
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x443b50]
xor eax, eax
jmp 0x4214b7
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x14], 0
cmp ecx, dword [esp + 0x60]
setb al
mov dword [esp + 0x44], 0
jmp dword [eax*4 + 0x443b58]
mov eax, dword [case.0x41f8b9.9]
mov dword [esp + 8], esi
jmp eax
mov word [esi], 0
mov eax, dword [esp + 0x14]
mov ecx, eax
and cl, 1
movzx ecx, cl
jmp dword [ecx*4 + 0x443c38]
movzx ecx, word [esp + 0x11f8]
test cx, cx
je 0x421365
xor ebx, ebx
lea eax, [esp + 0x11f8]
jmp 0x421252
mov ecx, dword [esp + 0x44]
inc ecx
xor eax, eax
mov dword [esp + 0x44], ecx
cmp ecx, dword [esp + 0x60]
setb al
jmp dword [eax*4 + 0x443b58]
mov ebx, esi
mov edi, dword [esp + 0x70]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x41f98d
mov eax, 0xffffffff
push eax
call fcn.00408f80
add esp, 4
mov dword [esp + 0x6c], edi
lea ecx, [esp + 0x6c]
push ecx
push eax
push dword [esp + 0x4c]
push dword [esp + 0x58]
mov edi, eax
call fcn.0043bc30
add esp, 0x10
not eax
shr eax, 0x1f
mov esi, ebx
jmp dword [eax*4 + 0x443b70]
mov eax, 1
jmp dword [0x443b80]
lea eax, [esp + 0x5c]
push dword [esp + 0x4c]
push 0
push 0x20019
push eax
mov dword [esp + 0x60], edi
push edi
call fcn.0043baf0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x443b88]
xor eax, eax
mov ecx, dword [esp + 0x50]
jmp dword [0x443c08]
mov dword [esp + 0x88], 0x33a33545
mov dword [esp + 0x8c], 0x2fbe31af
mov dword [esp + 0x90], 0x2ba12dbf
mov dword [esp + 0x94], 0x27b229bb
mov dword [esp + 0x98], 0x234025aa
mov dword [esp + 0x9c], 0x5fb7214b
mov dword [esp + 0xa0], 0x5bc05dcc
mov dword [esp + 0xa4], 0x57d159cb
mov dword [esp + 0xa8], 0x537455db
mov dword [esp + 0xac], 0x4fcb5121
mov dword [esp + 0xb0], 0x4bc14dc3
mov dword [esp + 0xb4], 0x47d149d5
mov dword [esp + 0xb8], 0x43d645d1
mov dword [esp + 0xbc], 0x7f6041db
mov dword [esp + 0xc0], 0x7bf77d13
mov dword [esp + 0xc4], 0x77f579e4
mov dword [esp + 0xc8], 0x73f975f1
mov dword [esp + 0xcc], 0x6feb71fe
mov dword [esp + 0xd0], 0x6b086dfd
mov dword [esp + 0xd4], 0x67e6691a
mov dword [esp + 0xd8], 0x63fe65f7
mov dword [esp + 0xdc], 0x9ff461f5
mov dword [esp + 0xe0], 0x9b119d05
mov dword [esp + 0xe4], 0x97df99fe
mov dword [esp + 0xe8], 0x93dd95db
mov dword [esp + 0xec], 0x8fed91d9
mov dword [esp + 0xf0], 0x8bf68df4
mov dword [esp + 0xf4], 0x87c489da
mov dword [esp + 0xf8], 0x83c985c9
mov dword [esp + 0xfc], 0xbfcf81cd
mov dword [esp + 0x100], 0xbb20bdf1
mov dword [esp + 0x104], 0xb7c6b9f7
mov dword [esp + 0x108], 0xb3fcb5fe
mov dword [esp + 0x10c], 0xafe0b1cd
mov dword [esp + 0x110], 0xabe3adfe
mov dword [esp + 0x114], 0xa7e4a9fa
mov dword [esp + 0x118], 0xa3eaa5d8
mov dword [esp + 0x11c], 0xdfeaa1dd
mov dword [esp + 0x120], 0xdb95dd94
mov dword [esp + 0x124], 0xd7bcd990
mov word [esp + 0x128], 0xd5d6
lea eax, [esp + 0x128]
mov dword [eax + 5], 0
mov dword [eax + 2], 0
mov dword [esp + 0x888], 0
mov eax, dword [esp + 0x888]
cmp eax, 0xa8
ja 0x41fc79
mov ecx, dword [esp + 0x888]
mov eax, dword [esp + 0x888]
movzx edx, byte [esp + eax + 0x88]
lea eax, [ecx + edx]
add eax, 0xbafe02a9
mov esi, 0x4501fd56
sub esi, ecx
lea edi, [ecx + 0xa9]
and edi, edx
or esi, edx
add esi, ecx
lea ecx, [edi + esi]
add ecx, 0xbafe02aa
mov edx, eax
not edx
and edx, ecx
not ecx
and ecx, eax
sub ecx, edx
mov dword [esp + 0xa88], ecx
mov eax, dword [esp + 0xa88]
add al, 0x61
mov ecx, dword [esp + 0x888]
mov byte [esp + ecx + 0x88], al
inc dword [esp + 0x888]
mov eax, dword [esp + 0x888]
cmp eax, 0xa9
jb 0x41fc00
lea edi, [esp + 0xf2c]
lea eax, [esp + 0x88]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edx, [esp + 0x128]
mov eax, edx
mov ecx, 1
lea edi, [esp + 0xfcc]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x88], 0x638b61ad
mov dword [esp + 0x8c], 0x67f46587
mov dword [esp + 0x90], 0x6bf96987
mov dword [esp + 0x94], 0x6f886d83
mov dword [esp + 0x98], 0x13ee1184
mov dword [esp + 0x9c], 0x17ff15e3
mov dword [esp + 0xa0], 0x1bfe19f6
mov dword [esp + 0xa4], 0x1f891df3
mov dword [esp + 0xa8], 0x3220193
mov dword [esp + 0xac], 0x7f205ca
mov dword [esp + 0xb0], 0xbc909f4
mov dword [esp + 0xb4], 0xf9c0d99
mov dword [esp + 0xb8], 0x33d731a2
mov dword [esp + 0xbc], 0x37a235da
mov dword [esp + 0xc0], 0x3bdf39ce
mov dword [esp + 0xc4], 0x3fad3dae
mov dword [esp + 0xc8], 0x23cd21c9
mov dword [esp + 0xcc], 0x27da25ca
mov dword [esp + 0xd0], 0x2bc329df
mov dword [esp + 0xd4], 0x2fca2dc2
mov dword [esp + 0xd8], 0xd345d13f
mov dword [esp + 0xdc], 0xd7f6d547
mov dword [esp + 0xe0], 0xdb3fd915
mov dword [esp + 0xe4], 0xdf4ddd4f
mov dword [esp + 0xe8], 0xc325c121
mov dword [esp + 0xec], 0xc728c52d
mov dword [esp + 0xf0], 0xcbeac92f
mov dword [esp + 0xf4], 0xcf5bcd3f
mov dword [esp + 0xf8], 0xf361f112
mov dword [esp + 0xfc], 0xf765f56d
mov dword [esp + 0x100], 0xfb1ff96c
mov dword [esp + 0x104], 0xff02fd11
mov dword [esp + 0x108], 0xe370e110
mov dword [esp + 0x10c], 0xe700e50b
mov dword [esp + 0x110], 0xeb06e901
mov dword [esp + 0x114], 0xef7ded09
mov dword [esp + 0x118], 0x935d916c
mov dword [esp + 0x11c], 0x97029501
mov dword [esp + 0x120], 0x9b759974
mov dword [esp + 0x124], 0x9f759d73
mov dword [esp + 0x128], 0x835b817c
mov dword [esp + 0x12c], 0x87518557
mov dword [esp + 0x130], 0x8b49895d
mov dword [esp + 0x134], 0x8f488d4a
mov dword [esp + 0x138], 0xb366b160
mov dword [esp + 0x13c], 0xb765b565
mov dword [esp + 0x140], 0xbb6bb969
mov dword [esp + 0x144], 0xbf5abd6d
mov dword [esp + 0x148], 0xa360a173
mov dword [esp + 0x14c], 0xa77ea57c
mov dword [esp + 0x150], 0xab7aa969
mov dword [esp + 0x154], 0xaf7fad7c
mov dword [esp + 0x158], 0x53865180
mov dword [esp + 0x15c], 0x57845596
mov dword [esp + 0x160], 0x5b8c5999
mov dword [esp + 0x164], 0x5f895d8a
mov dword [esp + 0x168], 0x43be4196
mov word [esp + 0x16c], 0x4544
mov byte [edx + 0x4a], 0
mov dword [edx + 0x46], 0
mov dword [esp + 0x888], 0
mov eax, dword [esp + 0x888]
cmp eax, 0xea
ja 0x41ffac
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
movzx ecx, byte [esp + ecx + 0x88]
lea edx, [eax + 0xb0]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xe2290bb0
mov dword [esp + 0xa88], eax
mov eax, dword [esp + 0xa88]
add al, 0x30
mov ecx, dword [esp + 0x888]
mov byte [esp + ecx + 0x88], al
inc dword [esp + 0x888]
mov eax, dword [esp + 0x888]
cmp eax, 0xeb
jb 0x41ff50
lea edi, [esp + 0xfce]
lea eax, [esp + 0x88]
mov ecx, 0x39
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x16c]
mov ecx, 1
lea edi, [esp + 0x10b2]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x88], 0x937b9161
mov dword [esp + 0x8c], 0x9f0e9d7f
mov dword [esp + 0x90], 0x9b05990f
mov dword [esp + 0x94], 0x876a850b
mov dword [esp + 0x98], 0x8364811a
mov dword [esp + 0x9c], 0x8f628d73
mov dword [esp + 0xa0], 0x8b638960
mov dword [esp + 0xa4], 0xb75bb567
mov dword [esp + 0xa8], 0xb363b152
mov dword [esp + 0xac], 0xbf6abd6f
mov dword [esp + 0xb0], 0xbb5cb96e
mov dword [esp + 0xb4], 0xa73ba54b
mov dword [esp + 0xb8], 0xa334a13a
mov dword [esp + 0xbc], 0xaf3dad33
mov dword [esp + 0xc0], 0xab4ca93b
mov dword [esp + 0xc4], 0x57c6555a
mov dword [esp + 0xc8], 0x53be51c7
mov dword [esp + 0xcc], 0x5fc85db9
mov dword [esp + 0xd0], 0x5bc559b1
mov dword [esp + 0xd4], 0x47b545be
mov dword [esp + 0xd8], 0x43dc41d9
mov dword [esp + 0xdc], 0x4fdd4dd6
mov dword [esp + 0xe0], 0x4bdd49df
mov dword [esp + 0xe4], 0x77af75ae
mov dword [esp + 0xe8], 0x73a971ab
mov dword [esp + 0xec], 0x7fb17dad
mov dword [esp + 0xf0], 0x7bb679b0
mov dword [esp + 0xf4], 0x67b865aa
mov dword [esp + 0xf8], 0x63bd61b5
mov dword [esp + 0xfc], 0x6fbf6db1
mov dword [esp + 0x100], 0x6b8469bd
mov dword [esp + 0x104], 0x17d615b7
mov dword [esp + 0x108], 0x13c811ce
mov dword [esp + 0x10c], 0x1fcc1dd1
mov dword [esp + 0x110], 0x1bcb19ce
mov dword [esp + 0x114], 0x7d805ca
mov dword [esp + 0x118], 0x3d201c4
mov dword [esp + 0x11c], 0xfd20dc1
mov dword [esp + 0x120], 0xbd109d0
mov dword [esp + 0x124], 0x37d035d4
mov word [esp + 0x128], 0x3136
lea eax, [esp + 0x128]
mov dword [eax + 0xa], 0
mov dword [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp + 0x888], 0
mov eax, dword [esp + 0x888]
cmp eax, 0xad
ja 0x42024b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
movzx ecx, byte [esp + ecx + 0x88]
lea edx, [eax + ecx]
add eax, 0xc3
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0xaeae9fc3
mov dword [esp + 0xa88], edx
mov eax, dword [esp + 0xa88]
mov ecx, eax
xor ecx, 0xaa
and eax, 0x2a
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0x888]
mov byte [esp + ecx + 0x88], al
inc dword [esp + 0x888]
mov eax, dword [esp + 0x888]
cmp eax, 0xae
jb 0x4201e0
lea edi, [esp + 0xe8a]
lea eax, [esp + 0x88]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x128]
mov ecx, 1
lea edi, [esp + 0xf2a]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x88], 0x33c335e5
mov dword [esp + 0x8c], 0xcfbe31cf
mov dword [esp + 0x90], 0xcb41cd3f
mov dword [esp + 0x94], 0xc732c93b
mov dword [esp + 0x98], 0xc320c54a
mov dword [esp + 0x9c], 0xdf3ac113
mov dword [esp + 0xa0], 0xdb2bdd24
mov dword [esp + 0xa4], 0xd723d927
mov dword [esp + 0xa8], 0xd31bd532
mov dword [esp + 0xac], 0xefe2d11e
mov dword [esp + 0xb0], 0xeb08edde
mov dword [esp + 0xb4], 0xe763e93b
mov dword [esp + 0xb8], 0xe310e56a
mov dword [esp + 0xbc], 0xff11e113
mov dword [esp + 0xc0], 0xfb18fd0b
mov dword [esp + 0xc4], 0xf776f92a
mov dword [esp + 0xc8], 0xf30ef507
mov dword [esp + 0xcc], 0x8f04f105
mov dword [esp + 0xd0], 0x8b018d75
mov dword [esp + 0xd4], 0x8759896e
mov dword [esp + 0xd8], 0x8308850d
mov dword [esp + 0xdc], 0x9f718176
mov dword [esp + 0xe0], 0x9b699d6f
mov dword [esp + 0xe4], 0x975f997e
mov dword [esp + 0xe8], 0x935d955b
mov dword [esp + 0xec], 0xaf4d9159
mov dword [esp + 0xf0], 0xab76ad74
mov dword [esp + 0xf4], 0xa764a99a
mov dword [esp + 0xf8], 0xa369a569
mov dword [esp + 0xfc], 0xbf6fa16d
mov dword [esp + 0x100], 0xbb40bd71
mov dword [esp + 0x104], 0xb766b977
mov dword [esp + 0x108], 0xb37cb57e
mov dword [esp + 0x10c], 0x4f80b16d
mov dword [esp + 0x110], 0x4b834d7e
mov dword [esp + 0x114], 0x4784497a
mov dword [esp + 0x118], 0x438a4598
mov dword [esp + 0x11c], 0x5f8a419d
mov dword [esp + 0x120], 0x5b955d94
mov dword [esp + 0x124], 0x57bc5990
mov word [esp + 0x128], 0x5556
lea eax, [esp + 0x128]
mov byte [eax + 0xa], 0
mov dword [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp + 0x888], 0
mov eax, dword [esp + 0x888]
cmp eax, 0xaa
ja 0x4204cc
nop
nop
mov eax, dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
movzx ecx, byte [esp + ecx + 0x88]
lea edx, [eax + 0xf9]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x629a05f9
mov dword [esp + 0xa88], eax
mov eax, dword [esp + 0xa88]
add al, 0x31
mov ecx, dword [esp + 0x888]
mov byte [esp + ecx + 0x88], al
inc dword [esp + 0x888]
mov eax, dword [esp + 0x888]
cmp eax, 0xab
jb 0x420470
lea edx, [esp + 0x1156]
lea eax, [esp + 0x88]
mov ecx, 0x28
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x128]
mov ecx, 1
lea edi, [esp + 0x11f6]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x88], 0x433b4111
mov dword [esp + 0x8c], 0x5f2e5d3f
mov dword [esp + 0x90], 0x5bd5592f
mov dword [esp + 0x94], 0x572a552b
mov dword [esp + 0x98], 0x533451da
mov dword [esp + 0x9c], 0x6f126d03
mov dword [esp + 0xa0], 0x6b136910
mov dword [esp + 0xa4], 0x671b6517
mov dword [esp + 0xa8], 0x63536102
mov dword [esp + 0xac], 0x7f4a7d2d
mov dword [esp + 0xb0], 0x7b1c794e
mov dword [esp + 0xb4], 0x77fb752b
mov dword [esp + 0xb8], 0x730471fa
mov dword [esp + 0xbc], 0x8ffd8d03
mov dword [esp + 0xc0], 0x8bec89fb
mov dword [esp + 0xc4], 0x87f685da
mov dword [esp + 0xc8], 0x83fe81f7
mov dword [esp + 0xcc], 0x9fe89df9
mov dword [esp + 0xd0], 0x9b1599e1
mov dword [esp + 0xd4], 0x97c595fe
mov dword [esp + 0xd8], 0x931c9119
mov dword [esp + 0xdc], 0xafddade6
mov dword [esp + 0xe0], 0xabdda9df
mov dword [esp + 0xe4], 0xa7efa5ce
mov dword [esp + 0xe8], 0xa3e9a1eb
mov dword [esp + 0xec], 0xbfe1bded
mov dword [esp + 0xf0], 0xbbe6b9e0
mov dword [esp + 0xf4], 0xb7f8b58a
mov dword [esp + 0xf8], 0xb3fdb185
mov dword [esp + 0xfc], 0xcfffcd81
mov dword [esp + 0x100], 0xcbb4c9fd
mov dword [esp + 0x104], 0xc786c587
mov dword [esp + 0x108], 0xc388c18e
mov dword [esp + 0x10c], 0xdfecdd81
mov dword [esp + 0x110], 0xdbebd9ee
mov dword [esp + 0x114], 0xd798d5ea
mov dword [esp + 0x118], 0xd3e2d194
mov dword [esp + 0x11c], 0xefa2ed91
mov dword [esp + 0x120], 0xeba1e9a0
mov dword [esp + 0x124], 0xe780e5a4
mov word [esp + 0x128], 0xe1e6
lea eax, [esp + 0x128]
mov dword [eax + 5], 0
mov dword [eax + 2], 0
mov dword [esp + 0x888], 0
mov eax, dword [esp + 0x888]
cmp eax, 0xa8
ja 0x420754
nop
nop
nop
mov eax, dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
movzx ecx, byte [esp + ecx + 0x88]
lea esi, [eax + 0x84ca6cb]
add eax, 0xcb
and eax, ecx
or esi, ecx
sub esi, eax
mov dword [esp + 0xa88], esi
mov eax, dword [esp + 0xa88]
mov ecx, eax
or ecx, 0x72
and eax, 0x72
add eax, ecx
inc al
mov ecx, dword [esp + 0x888]
mov byte [esp + ecx + 0x88], al
inc dword [esp + 0x888]
mov eax, dword [esp + 0x888]
cmp eax, 0xa9
jb 0x4206f0
lea eax, [esp + 0x10b4]
lea esi, [esp + 0x88]
mov ecx, 0x28
mov edi, eax
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea esi, [esp + 0x128]
mov ecx, 1
lea edi, [esp + 0x1154]
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
lea ecx, [esp + 0xf2c]
mov dword [esp + 0x74], ecx
lea ecx, [esp + 0xfce]
mov dword [esp + 0x78], ecx
lea ecx, [esp + 0xe8a]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], eax
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x40], 0
cmp ecx, 5
setne al
mov edi, ebx
jmp dword [eax*4 + 0x443b90]
jmp dword [0x443b98]
mov eax, dword [esp + 0x40]
mov eax, dword [esp + eax*4 + 0x74]
mov dword [esp + 0x88], 0xa3f0a1f6
mov dword [esp + 0x8c], 0xdf8cddf2
mov dword [esp + 0x90], 0xdb88d98e
mov dword [esp + 0x94], 0xd7bcd58a
mov word [esp + 0x98], 0xd1d6
lea ecx, [esp + 0x128]
mov word [ecx - 0x86], 0
mov dword [ecx - 0x8a], 0
mov dword [ecx - 0x8e], 0
mov dword [esp + 0x20], 0
mov ecx, dword [esp + 0x20]
cmp ecx, 0x1b
ja 0x4208b8
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x20]
movzx edx, byte [esp + edx + 0x88]
lea esi, [ecx + 0x5022113b]
add ecx, 0x3b
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 0xa88], esi
mov ecx, dword [esp + 0xa88]
add cl, 0x63
mov edx, dword [esp + 0x20]
mov byte [esp + edx + 0x88], cl
inc dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
cmp ecx, 0x1c
jb 0x420870
movzx ecx, word [eax]
lea edx, [esp + 0x888]
test cx, cx
je 0x4208f1
add eax, 2
lea edx, [esp + 0x888]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], cx
add edx, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x4208e0
mov word [edx], 0
movzx eax, word [esp + 0x88]
test ax, ax
je 0x420921
lea ecx, [esp + 0x8a]
nop
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x420910
mov word [edx], 0
jmp dword [0x443ba0]
mov si, 0x31
xor eax, eax
cmp si, 0x35
setb al
mov dword [esp + 0x18], edx
jmp dword [eax*4 + 0x443ba8]
inc esi
xor eax, eax
cmp si, 0x35
setb al
mov edx, dword [esp + 0x18]
jmp dword [eax*4 + 0x443ba8]
mov word [edx - 2], si
lea eax, [esp + 0x58]
lea ecx, [esp + 0x888]
push dword [esp + 0x5c]
push 0
push 0x20019
push eax
push ecx
call fcn.0043baf0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x443bb0]
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], 0x800
mov dword [esp + 0x48], 0x400
xor esi, esi
mov dword [esp + 0x10], 0
jmp 0x4209d0
mov dword [edi], 0x20003a
add edi, 4
mov al, 1
mov dword [esp + 0x10], eax
inc esi
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0xa8c]
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x74]
push eax
lea eax, [esp + 0x98]
push eax
push esi
push dword [esp + 0x70]
call fcn.0043c250
add esp, 0x1c
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x443bb8]
mov eax, dword [esp + 0x10]
and al, 1
movzx ecx, al
xor eax, eax
jmp dword [ecx*4 + 0x443bc0]
xor ecx, ecx
cmp dword [esp + 0x54], 1
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x443bc8]
movzx eax, al
jmp dword [eax*4 + 0x443bd0]
mov eax, dword [esp + 0x54]
xor ecx, ecx
cmp eax, 3
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x443bd8]
mov dword [esp + 0x20], 0x43a34196
mov dword [esp + 0x24], 0x5fd15dcf
mov dword [esp + 0x28], 0x5ba959d7
mov dword [esp + 0x2c], 0x57a855a8
mov word [esp + 0x30], 0x5156
mov dword [esp + 0x36], 0
mov dword [esp + 0x32], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x19
ja 0x420ae0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x20]
lea edx, [eax + ecx]
add edx, 0x1162110b
add eax, 0x1162110b
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x1c]
add al, 0xb3
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x1a
jb 0x420aa0
mov dword [esp + 0xc], esi
mov dword [esp + 8], edi
movzx edi, word [esp + 0x20]
lea esi, [esp + 0x88]
test di, di
je 0x420c44
lea esi, [esp + 0x88]
mov edx, esi
lea ecx, [esp + 0x20]
jmp 0x420b1c
movzx edi, word [ecx]
test di, di
je 0x420c44
movzx eax, word [edx]
test ax, ax
je 0x420c42
add edx, 2
add ecx, 2
lea ebx, [esi + 2]
cmp ax, di
je 0x420b38
mov esi, ebx
je 0x420b10
lea ecx, [esp + 0x20]
mov edx, ebx
jmp 0x420b10
mov dword [esp + 0x20], 0x7b9d79a5
mov dword [esp + 0x24], 0x7f8d7d9f
mov dword [esp + 0x28], 0x738e7189
mov dword [esp + 0x2c], 0x77747586
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0xc], esi
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x17
ja 0x420bea
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx edx, byte [esp + ecx + 0x20]
lea ecx, [eax + edx]
add ecx, 0x1df3922f
add eax, 0x1df3922f
and eax, edx
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
add al, 0xb7
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x18
jb 0x420ba0
movzx edi, word [esp + 0x20]
lea eax, [esp + 0x88]
test di, di
je 0x420cd5
lea eax, [esp + 0x88]
mov edx, eax
lea ecx, [esp + 0x20]
jmp 0x420c1c
movzx edi, word [ecx]
test di, di
je 0x420cd5
movzx esi, word [edx]
test si, si
je 0x420cd3
add edx, 2
add ecx, 2
lea ebx, [eax + 2]
cmp si, di
je 0x420c38
mov eax, ebx
je 0x420c10
lea ecx, [esp + 0x20]
mov edx, ebx
jmp 0x420c10
xor esi, esi
test esi, esi
setne al
mov ecx, dword [case.0x420f5d.12]
mov edi, dword [esp + 8]
mov esi, dword [esp + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
movzx eax, al
jmp dword [eax*4 + 0x443bf0]
mov eax, dword [esp + 0x48]
cmp eax, 2
jb 0x420e38
shr eax, 1
lea edx, [eax - 1]
mov ecx, eax
and ecx, 3
je 0x420dcd
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], esi
xor edx, edx
mov dword [esp + 8], ecx
lea ecx, [esp + 0xa88]
nop
nop
movzx esi, word [ecx]
xor ebx, ebx
test si, si
setne bl
lea ecx, [ecx + ebx*2]
mov word [edi], si
add edi, 2
inc edx
cmp dword [esp + 8], edx
jne 0x420ca0
sub eax, edx
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
cmp edx, 3
jae 0x420dd9
jmp 0x420e38
xor eax, eax
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esp + 8]
mov esi, dword [esp + 0xc]
jmp dword [ecx*4 + 0x443bd0]
mov eax, dword [esp + 0x48]
cmp eax, 2
jb 0x4209c0
mov dword [esp + 0xc], esi
shr eax, 1
lea edx, [eax - 1]
mov esi, eax
and esi, 3
je 0x420d55
mov dword [esp + 0x10], eax
mov dword [esp + 8], edx
xor ebx, ebx
lea ecx, [esp + 0xa88]
nop
nop
nop
nop
nop
nop
nop
mov eax, esi
movzx esi, word [ecx]
xor edx, edx
test si, si
setne dl
lea ecx, [ecx + edx*2]
mov word [edi], si
mov esi, eax
add edi, 2
inc ebx
cmp eax, ebx
jne 0x420d20
mov eax, dword [esp + 0x10]
sub eax, ebx
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 8]
cmp edx, 3
jae 0x420d70
jmp 0x4209c0
lea ecx, [esp + 0xa88]
mov esi, dword [esp + 0xc]
cmp edx, 3
jb 0x4209c0
nop
nop
nop
nop
nop
nop
nop
mov esi, edi
movzx edx, word [ecx]
xor ebx, ebx
test dx, dx
setne bl
mov word [edi], dx
lea edx, [ecx + ebx*2]
movzx ecx, word [ecx + ebx*2]
xor ebx, ebx
test cx, cx
setne bl
mov word [edi + 2], cx
lea ecx, [edx + ebx*2]
movzx edx, word [edx + ebx*2]
xor ebx, ebx
test dx, dx
setne bl
mov word [edi + 4], dx
lea edx, [ecx + ebx*2]
movzx edi, word [ecx + ebx*2]
xor ecx, ecx
test di, di
setne cl
lea ecx, [edx + ecx*2]
mov word [esi + 6], di
lea edi, [esi + 8]
add eax, 0xfffffffc
jne 0x420d70
mov esi, dword [esp + 0xc]
jmp 0x4209c0
lea ecx, [esp + 0xa88]
cmp edx, 3
jb 0x420e38
mov dword [esp + 0xc], esi
nop
nop
nop
mov esi, edi
movzx edx, word [ecx]
xor ebx, ebx
test dx, dx
setne bl
mov word [edi], dx
lea edx, [ecx + ebx*2]
movzx ecx, word [ecx + ebx*2]
xor ebx, ebx
test cx, cx
setne bl
mov word [edi + 2], cx
lea ecx, [edx + ebx*2]
movzx edx, word [edx + ebx*2]
xor ebx, ebx
test dx, dx
setne bl
mov word [edi + 4], dx
lea edx, [ecx + ebx*2]
movzx edi, word [ecx + ebx*2]
xor ecx, ecx
test di, di
setne cl
lea ecx, [edx + ecx*2]
mov word [esi + 6], di
lea edi, [esi + 8]
add eax, 0xfffffffc
jne 0x420de0
mov esi, dword [esp + 0xc]
mov word [edi], 0xa
add edi, 2
mov al, 1
mov dword [esp + 0x14], eax
inc esi
jmp 0x4209d0
mov dword [esp + 8], edi
mov eax, dword [esp + 0x58]
mov dword [esp + 0x20], 0x8090e0f
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2b], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xe
ja 0x420ee0
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx edi, byte [esp + ecx + 0x20]
lea ecx, [esi + 0xaa]
mov edx, 0x55
sub edx, esi
sub edx, edi
add esi, edi
add esi, 0x507959aa
and ecx, edi
add ecx, ecx
and edx, ecx
not ecx
and ecx, esi
sub ecx, edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x1c]
add cl, 0x5a
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x20], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xf
jb 0x420e90
mov ecx, dword [0x449688]
test ecx, ecx
mov esi, dword [esp + 0x64]
je 0x420f20
mov edx, dword [esp + 0x20]
xor edi, edi
mov ebx, dword [0x44968c]
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x420f10
inc edi
cmp ecx, edi
jne 0x420f00
jmp 0x420f20
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne case.default.0x420f32
nop
nop
nop
nop
nop
nop
nop
nop
inc esi
xor eax, eax
cmp si, 0x35
setb al
mov edi, dword [esp + 8]
mov edx, dword [esp + 0x18]
jmp dword [eax*4 + 0x443ba8]
push eax
push 1
push dword [0x449690]
push ecx
call fcn.004388a0
add esp, 0x10
inc esi
xor eax, eax
cmp si, 0x35
setb al
mov edi, dword [esp + 8]
mov edx, dword [esp + 0x18]
jmp dword [eax*4 + 0x443ba8]
mov eax, dword [case.0x420f5d.23]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov edx, dword [esp + 0x40]
inc edx
xor eax, eax
mov ecx, edx
mov dword [esp + 0x40], edx
cmp edx, 5
setne al
jmp dword [eax*4 + 0x443b90]
mov eax, dword [esp + 0x40]
mov eax, dword [esp + eax*4 + 0x74]
mov dword [esp + 0x88], 0xa3f0a1f6
mov dword [esp + 0x8c], 0xdf8cddf2
mov dword [esp + 0x90], 0xdb88d98e
mov dword [esp + 0x94], 0xd7bcd58a
mov word [esp + 0x98], 0xd1d6
lea ecx, [esp + 0x128]
mov word [ecx - 0x86], 0
mov dword [ecx - 0x8a], 0
mov dword [ecx - 0x8e], 0
mov dword [esp + 0x20], 0
mov ecx, dword [esp + 0x20]
cmp ecx, 0x1b
ja 0x421068
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x20]
movzx edx, byte [esp + edx + 0x88]
lea esi, [ecx + 0x5022113b]
add ecx, 0x3b
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 0xa88], esi
mov ecx, dword [esp + 0xa88]
add cl, 0x63
mov edx, dword [esp + 0x20]
mov byte [esp + edx + 0x88], cl
inc dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
cmp ecx, 0x1c
jb 0x421020
movzx edx, word [eax]
lea ecx, [esp + 0x888]
test dx, dx
je 0x4210a1
add eax, 2
lea ecx, [esp + 0x888]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [eax]
add eax, 2
test dx, dx
jne 0x421090
mov word [ecx], 0
movzx eax, word [esp + 0x88]
test ax, ax
je 0x4210d1
lea edx, [esp + 0x8a]
nop
nop
nop
nop
nop
nop
mov word [ecx], ax
add ecx, 2
movzx eax, word [edx]
add edx, 2
test ax, ax
jne 0x4210c0
mov word [ecx], 0
jmp case.0x4207cc.2
mov dword [esp + 8], edi
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x88], 0x8090e0f
lea ecx, [esp + 0x128]
mov dword [ecx - 0x95], 0
mov dword [ecx - 0x98], 0
mov dword [ecx - 0x9c], 0
mov dword [esp + 0x888], 0
mov ecx, dword [esp + 0x888]
cmp ecx, 0xe
ja 0x42119b
nop
mov esi, dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
movzx edi, byte [esp + ecx + 0x88]
lea ecx, [esi + 0xaa]
mov edx, 0x55
sub edx, esi
sub edx, edi
add esi, edi
add esi, 0x507959aa
and ecx, edi
add ecx, ecx
and edx, ecx
not ecx
and ecx, esi
sub ecx, edx
mov dword [esp + 0xa88], ecx
mov ecx, dword [esp + 0xa88]
add cl, 0x5a
mov edx, dword [esp + 0x888]
mov byte [esp + edx + 0x88], cl
inc dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
cmp ecx, 0xf
jb 0x421130
mov ecx, dword [0x449688]
test ecx, ecx
je 0x4211f0
mov edx, dword [esp + 0x88]
xor edi, edi
mov ebx, dword [0x44968c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x4211d0
inc edi
cmp ecx, edi
jne 0x4211c0
jmp 0x4211f0
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je 0x4211f0
push eax
push 1
push dword [0x449690]
push ecx
call fcn.004388a0
add esp, 0x10
nop
nop
nop
nop
nop
nop
xor eax, eax
mov esi, dword [esp + 8]
mov ecx, dword [esp + 0x50]
jmp dword [0x443c08]
push ecx
call fcn.00408f90
add esp, 4
xor eax, eax
mov ecx, dword [case.0x420f5d.28]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
jmp dword [eax*4 + 0x443c20]
mov eax, dword [case.0x420f5d.31]
nop
nop
jmp eax
add ebx, esi
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
mov esi, dword [esp + 8]
je 0x42127a
cmp eax, esi
jae 0x42127a
movzx edi, cx
xor ecx, ecx
cmp edi, 0x800
setb dl
mov esi, 1
cmp edi, 0x80
jb 0x421240
mov cl, dl
xor ecx, 3
mov esi, ecx
jmp 0x421240
mov edi, ebx
inc ebx
push ebx
call fcn.00408f80
add esp, 4
test edi, edi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edi
jle 0x42137f
lea ecx, [eax + edi]
add ebx, eax
lea edx, [esp + 0x11f8]
mov edi, eax
mov esi, ebx
mov ebx, ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], esi
jmp 0x4212d4
mov byte [edi], cl
mov eax, 1
add edx, 2
add edi, eax
cmp edi, ebx
jae 0x421381
cmp edx, dword [esp + 8]
jae 0x421381
movzx ecx, word [edx]
test cx, cx
je 0x421381
cmp cx, 0x7f
jbe 0x4212c0
mov eax, edi
not eax
add eax, esi
cmp eax, 2
jb 0x421327
mov ebx, esi
movzx esi, cx
cmp esi, 0x7ff
mov esi, ebx
mov ebx, dword [esp + 0x14]
ja 0x421327
mov eax, ecx
shr eax, 6
add al, 0xc0
mov byte [edi], al
and cl, 0x3f
or cl, 0x80
mov byte [edi + 1], cl
mov eax, 2
jmp 0x4212c7
cmp eax, 3
mov eax, 0
jb 0x4212c7
movzx esi, cx
mov eax, esi
shr eax, 0xc
or al, 0xe0
mov byte [edi], al
shr esi, 6
mov eax, esi
not eax
or eax, 0x3f
add eax, esi
mov esi, dword [esp + 0x18]
add al, 0x81
mov byte [edi + 1], al
and cl, 0x3f
or cl, 0x80
mov byte [edi + 2], cl
mov eax, 3
jmp 0x4212c7
mov dword [esp + 0x10], 0
push 1
call fcn.00408f80
add esp, 4
mov edi, eax
mov dword [esp + 0xc], eax
jmp 0x421381
mov edi, eax
mov byte [edi], 0
mov dword [esp + 0x88], 0xd7c8c9f5
mov dword [esp + 0x8c], 0xcbdfd8d1
mov dword [esp + 0x90], 0xb6aeb0d5
mov dword [esp + 0x94], 0xb3b394f3
mov dword [esp + 0x98], 0xa6b9b8aa
mov dword [esp + 0x9c], 0xbebe9dfb
mov dword [esp + 0xa0], 0xb4bcbaa8
mov dword [esp + 0xa4], 0xafa0fba7
mov word [esp + 0xa8], 0xd9a2
mov dword [esp + 0xaa], 0
mov dword [esp + 0xae], 0
mov word [esp + 0xb2], 0
mov dword [esp + 0x888], 0
mov eax, dword [esp + 0x888]
cmp eax, 0x2b
ja 0x421489
nop
nop
nop
mov eax, dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
movzx ecx, byte [esp + ecx + 0x88]
lea edx, [eax + ecx]
add eax, 0xb7
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x878a9ab7
mov dword [esp + 0xa88], edx
mov eax, dword [esp + 0xa88]
mov ecx, eax
xor ecx, 0xfe
and eax, 0x7e
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0x888]
mov byte [esp + ecx + 0x88], al
inc dword [esp + 0x888]
mov eax, dword [esp + 0x888]
cmp eax, 0x2c
jb 0x421420
lea eax, [esp + 0x88]
mov ecx, dword [ebp + 8]
push dword [esp + 0x10]
mov esi, dword [esp + 0x10]
push esi
push eax
call fcn.00409810
jmp dword [0x443c40]
push esi
mov esi, eax
call fcn.00408f90
mov eax, esi
add esp, 4
and al, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret