Function at 0x41f6d2
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.00409200
mov dword [esp + 0x11f8], 0xbb0ab90a
mov dword [esp + 0x11fc], 0xbf75bd7d
mov dword [esp + 0x1200], 0xa315a175
mov dword [esp + 0x1204], 0xa716a516
mov dword [esp + 0x1208], 0xab14a91d
mov dword [esp + 0x120c], 0xaf19ad1d
mov dword [esp + 0x1210], 0x93229169
mov word [esp + 0x1214], 0x9592
mov dword [esp + 0x1216], 0
mov dword [esp + 0x121a], 0
mov byte [esp + 0x121e], 0
mov dword [esp + 0xa88], 0
mov eax, dword [esp + 0xa88]
cmp eax, 0x26
ja 0x41e4ea
nop
mov eax, dword [esp + 0xa88]
mov ecx, dword [esp + 0xa88]
movzx ecx, byte [esp + ecx + 0x11f8]
lea edx, [eax + 0xc7]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x555aecc7
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x88]
add al, 0x8f
mov ecx, dword [esp + 0xa88]
mov byte [esp + ecx + 0x11f8], al
inc dword [esp + 0xa88]
mov eax, dword [esp + 0xa88]
cmp eax, 0x27
jb 0x41e490
lea eax, [esp + 0x48]
lea esi, [esp + 0x11f8]
push 0
push 0
push 0x20019
push eax
push esi
call fcn.0043b5b0
add esp, 0x14
shr eax, 0x1f
xor ecx, ecx
jmp dword [eax*4 + 0x443920]
lea eax, [esp + 0x70]
lea ecx, [esp + 0x54]
push 0
push 0
push 0
push 0
push eax
push ecx
push 0
push 0
push dword [esp + 0x68]
call fcn.0043b9e0
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x443928]
xor ecx, ecx
jmp 0x420019
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x10], 0
cmp ecx, dword [esp + 0x54]
setb al
xor ecx, ecx
jmp dword [eax*4 + 0x443930]
mov word [esi], 0
mov ecx, dword [esp + 0x10]
mov eax, ecx
and al, 1
movzx eax, al
mov dword [esp + 8], esi
jmp dword [eax*4 + 0x443a10]
mov dword [esp + 0x3c], ecx
mov dword [esp + 8], esi
mov edi, dword [esp + 0x70]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x41e5ca
mov eax, 0xffffffff
push eax
call fcn.00409230
add esp, 4
mov esi, eax
mov dword [esp + 0x6c], edi
lea eax, [esp + 0x6c]
push eax
push esi
push dword [esp + 0x44]
push dword [esp + 0x54]
call fcn.0043b6f0
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x443938]
mov edi, dword [esp + 0x48]
jmp dword [0x443940]
lea eax, [esp + 0x44]
push edi
push 0
push 0x20019
push eax
push esi
call fcn.0043b5b0
add esp, 0x14
nop
nop
nop
nop
nop
lea eax, [esp + 0x44]
push edi
push 0
push 0x20019
push eax
push esi
call fcn.0043b5b0
add esp, 0x14
jmp dword [0x443948]
mov ecx, dword [case.0x41e50d.14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x443960]
jmp dword [0x4439f0]
mov dword [esp + 0x58], esi
mov dword [esp + 0x88], 0x2b8b2575
mov dword [esp + 0x8c], 0x2f9e298f
mov dword [esp + 0x90], 0x33992d9f
mov dword [esp + 0x94], 0x379a3183
mov dword [esp + 0x98], 0x3b683582
mov dword [esp + 0x9c], 0x3f973963
mov dword [esp + 0xa0], 0x3983d8c
mov dword [esp + 0xa4], 0x7b901b3
mov dword [esp + 0xa8], 0xb6405b3
mov dword [esp + 0xac], 0xfa30959
mov dword [esp + 0xb0], 0x13b90dbb
mov dword [esp + 0xb4], 0x17b911b5
mov dword [esp + 0xb8], 0x1ba615b9
mov dword [esp + 0xbc], 0x1f7819b3
mov dword [esp + 0xc0], 0x63a71d4b
mov dword [esp + 0xc4], 0x67d561c4
mov dword [esp + 0xc8], 0x6bd165d9
mov dword [esp + 0xcc], 0x6fc369de
mov dword [esp + 0xd0], 0x73306ddd
mov dword [esp + 0xd4], 0x77c67122
mov dword [esp + 0xd8], 0x7bde75c7
mov dword [esp + 0xdc], 0x7fd479d5
mov dword [esp + 0xe0], 0x43c97dd5
mov dword [esp + 0xe4], 0x473f411e
mov dword [esp + 0xe8], 0x4b3d4533
mov dword [esp + 0xec], 0x4f0d4931
mov dword [esp + 0xf0], 0x53064d04
mov dword [esp + 0xf4], 0x57245122
mov dword [esp + 0xf8], 0x5b215521
mov dword [esp + 0xfc], 0x5f2f592d
mov dword [esp + 0x100], 0xa3f85d29
mov dword [esp + 0x104], 0xa7e6a1d7
mov dword [esp + 0x108], 0xabdca5de
mov dword [esp + 0x10c], 0xafd8a9ed
mov dword [esp + 0x110], 0xb3dbadde
mov dword [esp + 0x114], 0xb7c4b1c2
mov dword [esp + 0x118], 0xbbc2b5f0
mov dword [esp + 0x11c], 0xbfc2b9fd
mov dword [esp + 0x120], 0x83c5bdc4
mov dword [esp + 0x124], 0x87dc81f8
mov word [esp + 0x128], 0x8586
lea eax, [esp + 0x128]
mov word [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, 0xab
ja 0x41e8eb
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x888]
mov eax, dword [esp + 0x888]
movzx edx, byte [esp + eax + 0x88]
lea eax, [ecx + 5]
and eax, edx
mov esi, 0x9a6d7bfa
sub esi, ecx
or esi, edx
not esi
add esi, edx
sub esi, eax
mov dword [esp + 0xa88], esi
mov eax, dword [esp + 0xa88]
mov ecx, eax
xor ecx, 0xdc
and eax, 0x5c
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, 0xac
jb 0x41e880
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 edx, [esp + 0x128]
mov eax, edx
lea edi, [esp + 0xf2a]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x88], 0x833b8151
mov dword [esp + 0x8c], 0x9f2e9d3f
mov dword [esp + 0x90], 0x9b15992f
mov dword [esp + 0x94], 0x972a952b
mov dword [esp + 0x98], 0x9334911a
mov dword [esp + 0x9c], 0x6fd76d3b
mov dword [esp + 0xa0], 0x6bd469d8
mov dword [esp + 0xa4], 0x67ed65db
mov dword [esp + 0xa8], 0x638061eb
mov dword [esp + 0xac], 0x7fd07db4
mov dword [esp + 0xb0], 0x7ba579da
mov dword [esp + 0xb4], 0x77c675f5
mov dword [esp + 0xb8], 0x73cf71c4
mov dword [esp + 0xbc], 0x4fc04dc4
mov dword [esp + 0xc0], 0x4bf749e0
mov dword [esp + 0xc4], 0x47c945f8
mov dword [esp + 0xc8], 0x43f141fd
mov dword [esp + 0xcc], 0x5ff85df4
mov dword [esp + 0xd0], 0x5be359f7
mov dword [esp + 0xd4], 0x57e855ec
mov dword [esp + 0xd8], 0x53d951e7
mov dword [esp + 0xdc], 0x2fcc2ddf
mov dword [esp + 0xe0], 0x2b9729f9
mov dword [esp + 0xe4], 0x27a925a7
mov dword [esp + 0xe8], 0x23992185
mov dword [esp + 0xec], 0x3f8a3d99
mov dword [esp + 0xf0], 0x3bd83987
mov dword [esp + 0xf4], 0x37bb3597
mov dword [esp + 0xf8], 0x33bd3194
mov dword [esp + 0xfc], 0xf810db9
mov dword [esp + 0x100], 0xbb70982
mov dword [esp + 0x104], 0x7a005bd
mov dword [esp + 0x108], 0x3b201d6
mov dword [esp + 0x10c], 0x1fa21db3
mov dword [esp + 0x110], 0x1bac19a5
mov dword [esp + 0x114], 0x179915a5
mov dword [esp + 0x118], 0x13c111b2
mov dword [esp + 0x11c], 0xef60ed9d
mov dword [esp + 0x120], 0xeb59e95a
mov dword [esp + 0x124], 0xe751e55b
mov dword [esp + 0x128], 0xe32be142
mov dword [esp + 0x12c], 0xff35fd2f
mov dword [esp + 0x130], 0xfb25f931
mov dword [esp + 0x134], 0xf72af524
mov dword [esp + 0x138], 0xf33cf106
mov dword [esp + 0x13c], 0xcf01cd01
mov dword [esp + 0x140], 0xcb3bc93d
mov dword [esp + 0x144], 0xc778c539
mov dword [esp + 0x148], 0xc302c10b
mov dword [esp + 0x14c], 0xdf14dd0a
mov dword [esp + 0x150], 0xdb28d91d
mov dword [esp + 0x154], 0xd727d52a
mov dword [esp + 0x158], 0xd31cd126
mov dword [esp + 0x15c], 0xaf5ead10
mov dword [esp + 0x160], 0xab66a96d
mov dword [esp + 0x164], 0xa76da564
mov dword [esp + 0x168], 0xa304a168
mov word [esp + 0x16c], 0xbda2
mov word [edx + 0x4e], 0
mov dword [edx + 0x4a], 0
mov dword [edx + 0x46], 0
mov dword [esp + 0x888], 0
mov eax, dword [esp + 0x888]
cmp eax, 0xef
ja 0x41ec37
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
movzx edx, byte [esp + ecx + 0x88]
lea ecx, [eax + edx]
add ecx, 0x876570eb
add eax, 0xeb
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 + 0xa88], eax
mov eax, dword [esp + 0xa88]
add al, 0x93
mov ecx, dword [esp + 0x888]
mov byte [esp + ecx + 0x88], al
inc dword [esp + 0x888]
mov eax, dword [esp + 0x888]
cmp eax, 0xf0
jb 0x41ebd0
lea edi, [esp + 0xf2c]
lea eax, [esp + 0x88]
mov ecx, 0x39
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x16c]
lea edi, [esp + 0x1010]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x88], 0xa31bad71
mov dword [esp + 0x8c], 0xa710a107
mov dword [esp + 0x90], 0xbb0da517
mov dword [esp + 0x94], 0xbf04b90b
mov dword [esp + 0x98], 0xb31ebd08
mov dword [esp + 0x9c], 0xb70cb163
mov dword [esp + 0xa0], 0x8b33b50e
mov dword [esp + 0xa4], 0x8f2b892f
mov dword [esp + 0xa8], 0x83738d20
mov dword [esp + 0xac], 0x87748177
mov dword [esp + 0xb0], 0x9b368574
mov dword [esp + 0xb4], 0x9f2b994b
mov dword [esp + 0xb8], 0x932e9d28
mov dword [esp + 0xbc], 0x97259123
mov dword [esp + 0xc0], 0x6bc6952b
mov dword [esp + 0xc4], 0x6fd869b8
mov dword [esp + 0xc8], 0x63d86ddf
mov dword [esp + 0xcc], 0x67da61d9
mov dword [esp + 0xd0], 0x7bcd65c1
mov dword [esp + 0xd4], 0x7fad79d4
mov dword [esp + 0xd8], 0x73c67dc9
mov dword [esp + 0xdc], 0x77c571cc
mov dword [esp + 0xe0], 0x4bf575c7
mov dword [esp + 0xe4], 0x4f8749e4
mov dword [esp + 0xe8], 0x43894dbb
mov dword [esp + 0xec], 0x478141b5
mov dword [esp + 0xf0], 0x5b80459e
mov dword [esp + 0xf4], 0x5faa59a8
mov dword [esp + 0xf8], 0x53a55dad
mov dword [esp + 0xfc], 0x57a751a1
mov dword [esp + 0x100], 0x2b8e55a5
mov dword [esp + 0x104], 0x2fe829df
mov dword [esp + 0x108], 0x23ea2de4
mov dword [esp + 0x10c], 0x27d621e1
mov dword [esp + 0x110], 0x3bcb25d4
mov dword [esp + 0x114], 0x3fca39c8
mov dword [esp + 0x118], 0x33c43dfa
mov dword [esp + 0x11c], 0x37fc31f1
mov dword [esp + 0x120], 0xbc135fe
mov dword [esp + 0x124], 0xfa209c2
mov word [esp + 0x128], 0xd0c
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 0x41eebc
nop
nop
nop
mov eax, dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
movzx ecx, byte [esp + ecx + 0x88]
lea edx, [eax + 0x7b7317c6]
add eax, 0xc6
or eax, edx
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xa88], edx
mov eax, dword [esp + 0xa88]
add al, 0x96
mov ecx, dword [esp + 0x888]
mov byte [esp + ecx + 0x88], al
inc dword [esp + 0x888]
mov eax, dword [esp + 0x888]
cmp eax, 0xae
jb 0x41ee60
lea edi, [esp + 0x1156]
lea eax, [esp + 0x88]
mov ebx, edi
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 + 0x11f6]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x88], 0x23bb2191
mov dword [esp + 0x8c], 0x1f8e1dbf
mov dword [esp + 0x90], 0x1b95198f
mov dword [esp + 0x94], 0x178a158b
mov dword [esp + 0x98], 0x13b4119a
mov dword [esp + 0x9c], 0xf920da3
mov dword [esp + 0xa0], 0xb930990
mov dword [esp + 0xa4], 0x79b0597
mov dword [esp + 0xa8], 0x3d301a2
mov dword [esp + 0xac], 0xff2afdce
mov dword [esp + 0xb0], 0xfb5cf92e
mov dword [esp + 0xb4], 0xf77bf54b
mov dword [esp + 0xb8], 0xf364f17a
mov dword [esp + 0xbc], 0xef7ded63
mov dword [esp + 0xc0], 0xeb4ce97b
mov dword [esp + 0xc4], 0xe776e55a
mov dword [esp + 0xc8], 0xe37ee177
mov dword [esp + 0xcc], 0xdf48dd79
mov dword [esp + 0xd0], 0xdb55d941
mov dword [esp + 0xd4], 0xd765d57e
mov dword [esp + 0xd8], 0xd35cd159
mov dword [esp + 0xdc], 0xcf5dcd46
mov dword [esp + 0xe0], 0xcb5dc95f
mov dword [esp + 0xe4], 0xc70fc56e
mov dword [esp + 0xe8], 0xc309c10b
mov dword [esp + 0xec], 0xbf01bd0d
mov dword [esp + 0xf0], 0xbb06b900
mov dword [esp + 0xf4], 0xb778b56a
mov dword [esp + 0xf8], 0xb37db165
mov dword [esp + 0xfc], 0xaf7fad61
mov dword [esp + 0x100], 0xab34a97d
mov dword [esp + 0x104], 0xa766a567
mov dword [esp + 0x108], 0xa368a16e
mov dword [esp + 0x10c], 0x9f4c9d61
mov dword [esp + 0x110], 0x9b4b994e
mov dword [esp + 0x114], 0x9758954a
mov dword [esp + 0x118], 0x93429154
mov dword [esp + 0x11c], 0x8f428d51
mov dword [esp + 0x120], 0x8b418940
mov dword [esp + 0x124], 0x87208544
mov word [esp + 0x128], 0x8186
lea eax, [esp + 0x128]
mov word [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, 0xab
ja 0x41f15a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x888]
mov eax, dword [esp + 0x888]
movzx esi, byte [esp + eax + 0x88]
lea eax, [edx + 0x5b]
lea ecx, [edx + esi]
add ecx, 0x62413d5b
add edx, esi
and eax, esi
add eax, eax
mov esi, 0xa4
sub esi, edx
and esi, eax
not eax
and eax, ecx
sub eax, esi
mov dword [esp + 0xa88], eax
mov eax, dword [esp + 0xa88]
add al, 0x83
mov ecx, dword [esp + 0x888]
mov byte [esp + ecx + 0x88], al
inc dword [esp + 0x888]
mov eax, dword [esp + 0x888]
cmp eax, 0xac
jb 0x41f0f0
lea edx, [esp + 0x10b4]
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]
lea edi, [esp + 0x1154]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x88], 0xb323b505
mov dword [esp + 0x8c], 0xaf3eb12f
mov dword [esp + 0x90], 0xab21ad3f
mov dword [esp + 0x94], 0xa732a93b
mov dword [esp + 0x98], 0xa300a52a
mov dword [esp + 0x9c], 0x9f3aa113
mov dword [esp + 0xa0], 0x9b0b9d04
mov dword [esp + 0xa4], 0x97039907
mov dword [esp + 0xa8], 0x935b9532
mov dword [esp + 0xac], 0x8f429159
mov dword [esp + 0xb0], 0x8b288d5e
mov dword [esp + 0xb4], 0x8703893b
mov dword [esp + 0xb8], 0x8310850a
mov dword [esp + 0xbc], 0x7f118113
mov dword [esp + 0xc0], 0x7bd87deb
mov dword [esp + 0xc4], 0x77f679ca
mov dword [esp + 0xc8], 0x73ee75e7
mov dword [esp + 0xcc], 0x6fe471e5
mov dword [esp + 0xd0], 0x6be16df5
mov dword [esp + 0xd4], 0x67d969ce
mov dword [esp + 0xd8], 0x63e865ed
mov dword [esp + 0xdc], 0x5ff161f6
mov dword [esp + 0xe0], 0x5bc95dcf
mov dword [esp + 0xe4], 0x579f59fe
mov dword [esp + 0xe8], 0x539d559b
mov dword [esp + 0xec], 0x4fed5199
mov dword [esp + 0xf0], 0x4bf64df4
mov dword [esp + 0xf4], 0x4784499a
mov dword [esp + 0xf8], 0x43894589
mov dword [esp + 0xfc], 0x3f8f418d
mov dword [esp + 0x100], 0x3ba03df1
mov dword [esp + 0x104], 0x378639f7
mov dword [esp + 0x108], 0x33fc35fe
mov dword [esp + 0x10c], 0x2fe0318d
mov dword [esp + 0x110], 0x2be32dfe
mov dword [esp + 0x114], 0x27e429fa
mov dword [esp + 0x118], 0x23ea2598
mov dword [esp + 0x11c], 0x1fea219d
mov dword [esp + 0x120], 0x1bd51dd4
mov dword [esp + 0x124], 0x17bc19d0
mov word [esp + 0x128], 0x1516
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 0x41f3d8
nop
mov eax, dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
movzx ecx, byte [esp + ecx + 0x88]
lea esi, [eax + 0x76813c49]
add eax, 0x49
and eax, ecx
or esi, ecx
sub esi, eax
mov dword [esp + 0xa88], esi
mov eax, dword [esp + 0xa88]
inc al
mov ecx, dword [esp + 0x888]
mov byte [esp + ecx + 0x88], al
inc dword [esp + 0x888]
mov eax, dword [esp + 0x888]
cmp eax, 0xab
jb 0x41f380
lea eax, [esp + 0x1012]
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 + 0x10b2]
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
lea ecx, [esp + 0xe8a]
mov dword [esp + 0x74], ecx
lea ecx, [esp + 0xf2c]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [case.0x41e50d.20]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
cmp ecx, 5
setne al
jmp dword [eax*4 + 0x443978]
mov dword [esp + 0x5c], ecx
mov eax, dword [esp + ecx*4 + 0x74]
mov dword [esp + 0x88], 0x8b7a8d7c
mov dword [esp + 0x8c], 0x97668978
mov dword [esp + 0x90], 0x93629564
mov dword [esp + 0x94], 0x9f469160
mov word [esp + 0x98], 0x9d9c
lea ecx, [esp + 0x128]
mov word [ecx - 0x82], 0
mov dword [ecx - 0x86], 0
mov dword [ecx - 0x8a], 0
mov dword [ecx - 0x8e], 0
mov dword [esp + 0x888], 0
mov ecx, dword [esp + 0x888]
cmp ecx, 0x1f
ja 0x41f54d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x888]
mov edx, dword [esp + 0x888]
movzx edx, byte [esp + edx + 0x88]
lea esi, [ecx + edx]
add esi, 0x44ecf66a
add ecx, 0x44ecf66a
and ecx, edx
add ecx, ecx
sub esi, ecx
mov dword [esp + 0xa88], esi
mov ecx, dword [esp + 0xa88]
add cl, 0x1a
mov edx, dword [esp + 0x888]
mov byte [esp + edx + 0x88], cl
inc dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
cmp ecx, 0x20
jb 0x41f4f0
movzx ecx, word [eax]
lea esi, [esp + 0x888]
test cx, cx
je 0x41f581
add eax, 2
lea esi, [esp + 0x888]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], cx
add esi, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x41f570
mov word [esi], 0
movzx eax, word [esp + 0x88]
test ax, ax
je 0x41f5b1
lea ecx, [esp + 0x8a]
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41f5a0
mov word [esi], 0
mov di, 0x31
xor eax, eax
cmp di, 0x35
setb al
mov dword [esp + 0x60], esi
jmp dword [eax*4 + 0x443980]
mov ecx, dword [esp + 0x5c]
inc ecx
jmp 0x41f440
mov edi, dword [esp + 0x64]
inc edi
xor eax, eax
cmp di, 0x35
setb al
mov esi, dword [esp + 0x60]
jmp dword [eax*4 + 0x443980]
mov word [esi - 2], di
lea eax, [esp + 0x50]
lea ecx, [esp + 0x888]
push dword [esp + 0x44]
push 0
push 0x20019
push eax
push ecx
call fcn.0043b5b0
add esp, 0x14
mov ecx, dword [case.0x41e50d.29]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x443998]
inc edi
xor eax, eax
cmp di, 0x35
setb al
jmp dword [eax*4 + 0x443980]
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], 0x800
mov dword [esp + 0x40], 0x400
xor esi, esi
mov dword [esp + 0x14], 0
jmp 0x41f675
lea eax, [esp + 0x40]
lea edi, [esp + 0xa88]
lea ecx, [esp + 0x4c]
lea edx, [esp + 0x68]
push eax
push edi
push ecx
push edx
lea eax, [esp + 0x98]
push eax
push esi
push dword [esp + 0x68]
call fcn.0043bd20
add esp, 0x1c
not eax
shr eax, 0x1f
mov dword [esp + 0x18], esi
jmp dword [eax*4 + 0x4439a0]
mov eax, dword [esp + 0x14]
and al, 1
movzx ecx, al
xor eax, eax
jmp dword [ecx*4 + 0x4439a8]
mov eax, dword [case.0x41e50d.38]
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor ecx, ecx
cmp dword [esp + 0x4c], 1
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x4439c0]
movzx eax, al
jmp dword [eax*4 + 0x4439c8]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x20], 0x3a393837
lea ecx, [esp + 0x32]
mov dword [ecx - 6], 0
mov dword [ecx - 0xa], 0
mov dword [ecx - 0xe], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xf
ja 0x41fc0c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x20]
lea esi, [ecx + 0x5d0c1c27]
add ecx, 0x27
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 0x1c], esi
mov ecx, dword [esp + 0x1c]
add cl, 0xef
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x20], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x10
jb 0x41fbd0
mov ecx, dword [0x44988c]
test ecx, ecx
je 0x41f5e0
mov edx, dword [esp + 0x20]
xor edi, edi
mov ebx, dword [0x449890]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x41fc43
inc edi
cmp ecx, edi
jne 0x41fc30
jmp 0x41f5e0
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je 0x41f5e0
push eax
push 1
push dword [0x449894]
push ecx
call fcn.00438470
add esp, 0x10
jmp 0x41f5e0
mov eax, dword [esp + 0x44]
mov dword [esp + 0x88], 0x3a393837
lea ecx, [esp + 0x128]
mov dword [ecx - 0x94], 0
mov dword [ecx - 0x98], 0
mov dword [ecx - 0x9c], 0
mov dword [esp + 0x888], 0
mov ecx, dword [esp + 0x888]
cmp ecx, 0xf
ja 0x41fd17
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x888]
mov edx, dword [esp + 0x888]
movzx edx, byte [esp + edx + 0x88]
lea esi, [ecx + 0x5d0c1c27]
add ecx, 0x27
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 0xa88], esi
mov ecx, dword [esp + 0xa88]
add cl, 0xef
mov edx, dword [esp + 0x888]
mov byte [esp + edx + 0x88], cl
inc dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
cmp ecx, 0x10
jb 0x41fcc0
mov ecx, dword [0x44988c]
test ecx, ecx
mov esi, dword [esp + 0x58]
je 0x41fd70
mov edx, dword [esp + 0x88]
xor edi, edi
mov ebx, dword [0x449890]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x41fd50
inc edi
cmp ecx, edi
jne 0x41fd40
jmp 0x41fd70
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je 0x41fd70
push eax
push 1
push dword [0x449894]
push ecx
call fcn.00438470
add esp, 0x10
nop
nop
nop
nop
nop
nop
jmp dword [0x4439f0]
mov esi, dword [esp + 8]
mov ecx, dword [esp + 0x3c]
jmp dword [0x443a04]
mov eax, dword [case.0x41e50d.1]
nop
nop
jmp eax
mov eax, ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret