Function at 0x420951
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
mov eax, 0x2200
call fcn.004090b0
mov dword [esp + 0x11f8], 0xeb02d53a
mov dword [esp + 0x11fc], 0xef31e931
mov dword [esp + 0x1200], 0xe339ed31
mov dword [esp + 0x1204], 0xe736e136
mov dword [esp + 0x1208], 0xfb08e509
mov dword [esp + 0x120c], 0xff2df911
mov dword [esp + 0x1210], 0xf32afd25
mov word [esp + 0x1214], 0xf1f2
mov dword [esp + 0x1216], 0
mov dword [esp + 0x1219], 0
mov dword [esp + 0xa88], 0
mov eax, dword [esp + 0xa88]
cmp eax, 0x24
ja 0x41f810
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]
mov edx, eax
and edx, 0x3a0c9d9d
xor eax, 0x3a0c9d9d
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x88], edx
mov eax, dword [esp + 0x88]
add al, 0xb5
mov ecx, dword [esp + 0xa88]
mov byte [esp + ecx + 0x11f8], al
inc dword [esp + 0xa88]
mov eax, dword [esp + 0xa88]
cmp eax, 0x25
jb 0x41f7b0
lea eax, [esp + 0x24]
lea esi, [esp + 0x11f8]
push 0
push 0
push 0x20019
push eax
push esi
call fcn.0043c8f0
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x443fbc]
lea eax, [esp + 0x70]
lea ecx, [esp + 0x20]
push 0
push 0
push 0
push 0
push eax
push ecx
push 0
push 0
push dword [esp + 0x44]
call fcn.0043cd30
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x443fc4]
xor eax, eax
jmp 0x421374
mov dword [esp + 4], esi
xor ecx, ecx
xor eax, eax
mov dword [esp + 8], 0
cmp ecx, dword [esp + 0x20]
setb al
xor esi, esi
jmp dword [eax*4 + 0x443fcc]
mov edx, dword [esp + 4]
mov word [edx], 0
mov eax, dword [esp + 8]
mov ecx, eax
and cl, 1
movzx ecx, cl
jmp dword [ecx*4 + 0x44409c]
movzx ecx, word [esp + 0x11f8]
test cx, cx
je 0x421228
lea eax, [esp + 0x11f8]
xor ebx, ebx
jmp 0x421132
mov eax, esi
and eax, 1
xor esi, 1
lea esi, [esi + eax*2]
xor eax, eax
cmp esi, dword [esp + 0x20]
setb al
jmp dword [eax*4 + 0x443fcc]
mov dword [esp + 0x4c], esi
mov edi, dword [esp + 0x70]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x41f901
mov eax, 0xffffffff
push eax
call fcn.004090e0
add esp, 4
mov dword [esp + 0x6c], edi
mov edi, eax
lea eax, [esp + 0x6c]
push eax
push edi
mov esi, dword [esp + 0x54]
push esi
push dword [esp + 0x30]
call fcn.0043ca30
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x443fd4]
lea eax, [esp + 0x1c]
push dword [esp + 0x24]
push 0
push 0x20019
push eax
mov dword [esp + 0x68], edi
push edi
call fcn.0043c8f0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x443fdc]
mov dword [esp + 0x88], 0x5bb359ad
mov dword [esp + 0x8c], 0x47d445a7
mov dword [esp + 0x90], 0x43d141d7
mov dword [esp + 0x94], 0x4fa04ddb
mov dword [esp + 0x98], 0x4bae49d4
mov dword [esp + 0x9c], 0x779f758b
mov dword [esp + 0xa0], 0x739e71e6
mov dword [esp + 0xa4], 0x7fe17deb
mov dword [esp + 0xa8], 0x7b5a79eb
mov dword [esp + 0xac], 0x678b6591
mov dword [esp + 0xb0], 0x63f161f3
mov dword [esp + 0xb4], 0x6f816d8d
mov dword [esp + 0xb8], 0x6bfc6981
mov dword [esp + 0xbc], 0x173615fb
mov dword [esp + 0xc0], 0x138f11e3
mov dword [esp + 0xc4], 0x1f8d1dfe
mov dword [esp + 0xc8], 0x1b891981
mov dword [esp + 0xcc], 0x7eb0598
mov dword [esp + 0xd0], 0x3e60195
mov dword [esp + 0xd4], 0xf9c0dfc
mov dword [esp + 0xd8], 0xbe4099f
mov dword [esp + 0xdc], 0x37a235dd
mov dword [esp + 0xe0], 0x33a131dd
mov dword [esp + 0xe4], 0x3fe73dd8
mov dword [esp + 0xe8], 0x3be539eb
mov dword [esp + 0xec], 0x27e525f9
mov dword [esp + 0xf0], 0x23ec21ee
mov dword [esp + 0xf4], 0x2ff22dfc
mov dword [esp + 0xf8], 0x2bf929f9
mov dword [esp + 0xfc], 0xd707d505
mov dword [esp + 0x100], 0xd33ed101
mov dword [esp + 0x104], 0xdf1cdd0f
mov dword [esp + 0x108], 0xdb02d900
mov dword [esp + 0x10c], 0xc716c505
mov dword [esp + 0x110], 0xc313c110
mov dword [esp + 0x114], 0xcf12cd1c
mov dword [esp + 0x118], 0xcb18c90a
mov dword [esp + 0x11c], 0xf728f535
mov dword [esp + 0x120], 0xf32df12e
mov dword [esp + 0x124], 0xff1afd22
mov word [esp + 0x128], 0xf9f8
lea eax, [esp + 0x128]
mov word [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp + 0x888], 0
mov eax, dword [esp + 0x888]
cmp eax, 0xa7
ja 0x41fbb7
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, 0x7ba44f8c
add eax, 0x8c
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, 0x2c
mov ecx, dword [esp + 0x888]
mov byte [esp + ecx + 0x88], al
inc dword [esp + 0x888]
mov eax, dword [esp + 0x888]
cmp eax, 0xa8
jb 0x41fb50
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
mov ecx, 1
lea edi, [esp + 0xf2a]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x88], 0x1bb319ad
mov dword [esp + 0x8c], 0x79405a7
mov dword [esp + 0x90], 0x3910197
mov dword [esp + 0x94], 0xfa00d9b
mov dword [esp + 0x98], 0xbae0994
mov dword [esp + 0x9c], 0x77df75cb
mov dword [esp + 0xa0], 0x73de71e6
mov dword [esp + 0xa4], 0x7fe17deb
mov dword [esp + 0xa8], 0x7b1a79eb
mov dword [esp + 0xac], 0x67da65d2
mov dword [esp + 0xb0], 0x632161c4
mov dword [esp + 0xb4], 0x6ffc6df1
mov dword [esp + 0xb8], 0x6bc769fa
mov dword [esp + 0xbc], 0x57ca55c2
mov dword [esp + 0xc0], 0x53ff51ee
mov dword [esp + 0xc4], 0x5fcd5dce
mov dword [esp + 0xc8], 0x5bcd59f1
mov dword [esp + 0xcc], 0x47e245d2
mov dword [esp + 0xd0], 0x43eb41ff
mov dword [esp + 0xd4], 0x4fe24dda
mov dword [esp + 0xd8], 0x4bd549df
mov dword [esp + 0xdc], 0xb7d6b527
mov dword [esp + 0xe0], 0xb31fb105
mov dword [esp + 0xe4], 0xbf2dbd2f
mov dword [esp + 0xe8], 0xbb15b919
mov dword [esp + 0xec], 0xa730a50d
mov dword [esp + 0xf0], 0xa3c2a10f
mov dword [esp + 0xf4], 0xaf33ad1f
mov dword [esp + 0xf8], 0xab39a90a
mov dword [esp + 0xfc], 0x9705950d
mov dword [esp + 0x100], 0x933f910c
mov dword [esp + 0x104], 0x9f3a9d09
mov dword [esp + 0x108], 0x9b089928
mov dword [esp + 0x10c], 0x87288513
mov dword [esp + 0x110], 0x83168129
mov dword [esp + 0x114], 0x8f1d8d21
mov dword [esp + 0x118], 0x8b3d892c
mov dword [esp + 0x11c], 0xf76af569
mov dword [esp + 0x120], 0xf365f164
mov dword [esp + 0x124], 0xff55fd6b
mov dword [esp + 0x128], 0xfba3f95c
mov dword [esp + 0x12c], 0xe7b9e5b7
mov dword [esp + 0x130], 0xe3a1e1bd
mov dword [esp + 0x134], 0xefa0eda2
mov dword [esp + 0x138], 0xebb6e9b8
mov dword [esp + 0x13c], 0xd785d585
mov dword [esp + 0x140], 0xd383d181
mov dword [esp + 0x144], 0xdf72dd8d
mov dword [esp + 0x148], 0xdb98d98b
mov dword [esp + 0x14c], 0xc79ec59c
mov dword [esp + 0x150], 0xc392c181
mov dword [esp + 0x154], 0xcf9fcd9c
mov dword [esp + 0x158], 0xcb96c998
mov dword [esp + 0x15c], 0x37643576
mov dword [esp + 0x160], 0x336c3171
mov dword [esp + 0x164], 0x3f613d62
mov dword [esp + 0x168], 0x3b9e3966
mov word [esp + 0x16c], 0x2524
mov byte [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, 0xee
ja 0x41fef1
mov eax, dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
movzx ecx, byte [esp + ecx + 0x88]
lea edx, [eax - 0x765f51d4]
lea esi, [eax + 0x2c]
and esi, ecx
and edx, esi
add eax, ecx
add eax, 0x89a0ae2c
add edx, esi
sub eax, edx
mov dword [esp + 0xa88], eax
mov eax, dword [esp + 0xa88]
add al, 0xcc
mov ecx, dword [esp + 0x888]
mov byte [esp + ecx + 0x88], al
inc dword [esp + 0x888]
mov eax, dword [esp + 0x888]
cmp eax, 0xef
jb 0x41fe90
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], 0xab4ba575
mov dword [esp + 0x8c], 0xaf5ea94f
mov dword [esp + 0x90], 0xb359ad5f
mov dword [esp + 0x94], 0xb75ab143
mov dword [esp + 0x98], 0xbb68b542
mov dword [esp + 0x9c], 0xbf52b96b
mov dword [esp + 0xa0], 0x4353bd54
mov dword [esp + 0xa4], 0x47ab41a7
mov dword [esp + 0xa8], 0x4b73459a
mov dword [esp + 0xac], 0x4f7a497f
mov dword [esp + 0xb0], 0x53904d7e
mov dword [esp + 0xb4], 0x57ab5183
mov dword [esp + 0xb8], 0x5bb855a2
mov dword [esp + 0xbc], 0x5fa959ab
mov dword [esp + 0xc0], 0x63805db3
mov dword [esp + 0xc4], 0x679661b2
mov dword [esp + 0xc8], 0x6b8e6597
mov dword [esp + 0xcc], 0x6f846985
mov dword [esp + 0xd0], 0x73996d85
mov dword [esp + 0xd4], 0x77a171ae
mov dword [esp + 0xd8], 0x7b80758d
mov dword [esp + 0xdc], 0x7f897996
mov dword [esp + 0xe0], 0x3917d8f
mov dword [esp + 0xe4], 0x73f01de
mov dword [esp + 0xe8], 0xb3d0533
mov dword [esp + 0xec], 0xfcd0931
mov dword [esp + 0xf0], 0x13c60dc4
mov dword [esp + 0xf4], 0x17241122
mov dword [esp + 0xf8], 0x1b211521
mov dword [esp + 0xfc], 0x1f2f192d
mov dword [esp + 0x100], 0x23f81d29
mov dword [esp + 0x104], 0x27e62117
mov dword [esp + 0x108], 0x2b1c251e
mov dword [esp + 0x10c], 0x2f1829ed
mov dword [esp + 0x110], 0x331b2d1e
mov dword [esp + 0x114], 0x37043102
mov dword [esp + 0x118], 0x3b0235f0
mov dword [esp + 0x11c], 0x3f0239fd
mov dword [esp + 0x120], 0xc3053d04
mov dword [esp + 0x124], 0xc71cc1f8
mov word [esp + 0x128], 0xc5c6
lea eax, [esp + 0x128]
mov word [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp + 0x888], 0
mov eax, dword [esp + 0x888]
cmp eax, 0xa7
ja 0x420168
nop
mov eax, dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
movzx ecx, byte [esp + ecx + 0x88]
lea edx, [eax + 0x603b6d65]
add eax, 0x65
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xa88], edx
mov eax, dword [esp + 0xa88]
add al, 0x3d
mov ecx, dword [esp + 0x888]
mov byte [esp + ecx + 0x88], al
inc dword [esp + 0x888]
mov eax, dword [esp + 0x888]
cmp eax, 0xa8
jb 0x420110
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]
lea edi, [esp + 0x11f6]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x88], 0xbb13b979
mov dword [esp + 0x8c], 0xbf2ebd1f
mov dword [esp + 0x90], 0xa335a12f
mov dword [esp + 0x94], 0xa702a533
mov dword [esp + 0x98], 0xab14a932
mov dword [esp + 0x9c], 0xaf0aad1b
mov dword [esp + 0xa0], 0x933b9108
mov dword [esp + 0xa4], 0x97339537
mov dword [esp + 0xa8], 0x9b4b992a
mov dword [esp + 0xac], 0x9f729d4e
mov dword [esp + 0xb0], 0x833c814e
mov dword [esp + 0xb4], 0x87138533
mov dword [esp + 0xb8], 0x8b248912
mov dword [esp + 0xbc], 0x8f1d8d1b
mov dword [esp + 0xc0], 0x73cc7123
mov dword [esp + 0xc4], 0x77e675c2
mov dword [esp + 0xc8], 0x7bde79e7
mov dword [esp + 0xcc], 0x7fd07dd1
mov dword [esp + 0xd0], 0x63f561d9
mov dword [esp + 0xd4], 0x67d565de
mov dword [esp + 0xd8], 0x6bfc69f1
mov dword [esp + 0xdc], 0x6ffd6dc6
mov dword [esp + 0xe0], 0x53fd51ff
mov dword [esp + 0xe4], 0x578f55ee
mov dword [esp + 0xe8], 0x5b815983
mov dword [esp + 0xec], 0x5f995d8d
mov dword [esp + 0xf0], 0x43864198
mov dword [esp + 0xf4], 0x47904592
mov dword [esp + 0xf8], 0x4b9d4995
mov dword [esp + 0xfc], 0x4f9f4d99
mov dword [esp + 0x100], 0x3394319d
mov dword [esp + 0x104], 0x37f635e7
mov dword [esp + 0x108], 0x3be039ee
mov dword [esp + 0x10c], 0x3fec3df9
mov dword [esp + 0x110], 0x23f321ee
mov dword [esp + 0x114], 0x27f025f2
mov dword [esp + 0x118], 0x2bfa29e4
mov dword [esp + 0x11c], 0x2ffa2de9
mov dword [esp + 0x120], 0x13c911f8
mov dword [esp + 0x124], 0x17a815c4
mov word [esp + 0x128], 0x1916
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 0x420400
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 - 0x461162b9]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add eax, ecx
add eax, 0xb9ee9d47
add esi, ecx
lea ecx, [edx + esi]
inc ecx
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, 0xf
mov ecx, dword [esp + 0x888]
mov byte [esp + ecx + 0x88], al
inc dword [esp + 0x888]
mov eax, dword [esp + 0x888]
cmp eax, 0xa9
jb 0x420390
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], 0xbb13b9f9
mov dword [esp + 0x8c], 0xbf0ebd1f
mov dword [esp + 0x90], 0x8335810f
mov dword [esp + 0x94], 0x87228533
mov dword [esp + 0x98], 0x8bd48932
mov dword [esp + 0x9c], 0x8f2a8ddb
mov dword [esp + 0xa0], 0x933b9128
mov dword [esp + 0xa4], 0x97339537
mov dword [esp + 0xa8], 0x9beb99ca
mov dword [esp + 0xac], 0x9ff29ded
mov dword [esp + 0xb0], 0xe3bce1ee
mov dword [esp + 0xb4], 0xe753e5b3
mov dword [esp + 0xb8], 0xeb44e952
mov dword [esp + 0xbc], 0xef5ded5b
mov dword [esp + 0xc0], 0xf3acf143
mov dword [esp + 0xc4], 0xf746f5a2
mov dword [esp + 0xc8], 0xfb5ef947
mov dword [esp + 0xcc], 0xff50fd51
mov dword [esp + 0xd0], 0xc375c159
mov dword [esp + 0xd4], 0xc795c59e
mov dword [esp + 0xd8], 0xcb7cc971
mov dword [esp + 0xdc], 0xcf7dcd66
mov dword [esp + 0xe0], 0xd37dd17f
mov dword [esp + 0xe4], 0xd7afd58e
mov dword [esp + 0xe8], 0xdba1d9a3
mov dword [esp + 0xec], 0xdf99ddad
mov dword [esp + 0xf0], 0x23662198
mov dword [esp + 0xf4], 0x27502552
mov dword [esp + 0xf8], 0x2b5d2955
mov dword [esp + 0xfc], 0x2f5f2d59
mov dword [esp + 0x100], 0x3394315d
mov dword [esp + 0x104], 0x37763547
mov dword [esp + 0x108], 0x3b40394e
mov dword [esp + 0x10c], 0x3f4c3d79
mov dword [esp + 0x110], 0x373014e
mov dword [esp + 0x114], 0x7700572
mov dword [esp + 0x118], 0xb7a0944
mov dword [esp + 0x11c], 0xf7a0d49
mov dword [esp + 0x120], 0x13691178
mov dword [esp + 0x124], 0x17481564
mov word [esp + 0x128], 0x1916
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 0x420688
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 esi, [eax + 0x6ad73717]
add eax, 0x17
and eax, ecx
or esi, ecx
sub esi, eax
mov dword [esp + 0xa88], esi
mov eax, dword [esp + 0xa88]
add al, 0x5f
mov ecx, dword [esp + 0x888]
mov byte [esp + ecx + 0x88], al
inc dword [esp + 0x888]
mov eax, dword [esp + 0x888]
cmp eax, 0xab
jb 0x420630
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
xor eax, eax
cmp ecx, 5
setne al
mov edi, dword [esp + 4]
jmp dword [eax*4 + 0x443fe4]
mov dword [esp + 0x5c], ecx
mov eax, dword [esp + ecx*4 + 0x74]
mov dword [esp + 0x88], 0x8b449546
mov dword [esp + 0x8c], 0x8f58895a
mov dword [esp + 0x90], 0x835c8d5e
mov dword [esp + 0x94], 0x87288152
mov word [esp + 0x98], 0x8586
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 0x4207f9
nop
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 + 0x2c3f42ed]
add ecx, 0xed
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 0xa88], esi
mov ecx, dword [esp + 0xa88]
mov edx, ecx
or edx, 0x84
and ecx, 0x84
add ecx, edx
inc cl
mov edx, dword [esp + 0x888]
mov byte [esp + edx + 0x88], cl
inc dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
cmp ecx, 0x20
jb 0x420790
movzx ecx, word [eax]
lea edx, [esp + 0x888]
test cx, cx
je 0x420831
add eax, 2
lea edx, [esp + 0x888]
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 0x420820
mov word [edx], 0
movzx eax, word [esp + 0x88]
test ax, ax
je 0x420861
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 0x420850
mov word [edx], 0
mov cx, 0x31
xor eax, eax
cmp cx, 0x35
setb al
mov dword [esp + 0x60], edx
jmp dword [eax*4 + 0x443fec]
mov dword [esp + 0x64], ecx
mov word [edx - 2], cx
lea eax, [esp + 0x54]
lea ecx, [esp + 0x888]
push dword [esp + 0x1c]
push 0
push 0x20019
push eax
push ecx
call fcn.0043c8f0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444004]
mov eax, dword [case.0x4206f3.37]
jmp case.0x4206f3.34
mov dword [esp + 0x68], 0x800
mov dword [esp + 0x18], 0x400
mov dword [esp + 0xc], 0
mov eax, dword [case.0x4206f3.12]
mov dword [esp + 0x14], 0
jmp case.0x4206f3.10
mov dword [edi], 0x20003a
add edi, 4
mov al, 1
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x14]
mov eax, ecx
and eax, 1
xor ecx, 1
lea ecx, [ecx + eax*2]
mov dword [esp + 0x14], ecx
mov eax, dword [case.0x4206f3.12]
nop
nop
jmp eax
lea eax, [esp + 0x18]
lea esi, [esp + 0xa88]
lea ecx, [esp + 0x50]
lea edx, [esp + 0x68]
push eax
push esi
push ecx
push edx
lea eax, [esp + 0x98]
push eax
push dword [esp + 0x28]
push dword [esp + 0x6c]
call fcn.0043d080
add esp, 0x1c
not eax
shr eax, 0x1f
mov dword [esp + 4], edi
jmp dword [eax*4 + 0x44401c]
mov eax, dword [esp + 0xc]
and al, 1
movzx ecx, al
xor eax, eax
jmp dword [ecx*4 + 0x444024]
xor ecx, ecx
cmp dword [esp + 0x50], 1
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x44402c]
movzx eax, al
jmp dword [eax*4 + 0x444044]
mov edi, dword [esp + 4]
jmp dword [0x44404c]
nop
nop
nop
nop
nop
nop
jmp dword [0x444058]
xor eax, eax
cmp dword [esp + 0x50], 3
sete al
jmp dword [eax*4 + 0x44405c]
xor eax, eax
movzx eax, al
jmp dword [eax*4 + 0x444064]
mov edx, dword [esp + 0x18]
cmp edx, 2
jb 0x420a64
shr edx, 1
lea esi, [edx - 1]
mov eax, edx
lea ecx, [esp + 0xa88]
and eax, 3
mov dword [esp + 8], esi
je 0x420d9d
lea ecx, [esp + 0xa88]
mov edi, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
dec edx
movzx esi, word [ecx]
xor ebx, ebx
test si, si
setne bl
lea ecx, [ecx + ebx*2]
mov word [edi], si
add edi, 2
dec eax
jne 0x4209f0
cmp dword [esp + 8], 3
jb 0x420a64
nop
mov esi, edi
movzx eax, word [ecx]
xor ebx, ebx
test ax, ax
setne bl
mov word [edi], ax
lea eax, [ecx + ebx*2]
movzx ecx, word [ecx + ebx*2]
xor ebx, ebx
test cx, cx
setne bl
mov word [edi + 2], cx
lea ecx, [eax + ebx*2]
movzx eax, word [eax + ebx*2]
xor ebx, ebx
test ax, ax
setne bl
mov word [edi + 4], ax
lea eax, [ecx + ebx*2]
movzx edi, word [ecx + ebx*2]
xor ecx, ecx
test di, di
setne cl
lea ecx, [eax + ecx*2]
mov word [esi + 6], di
lea edi, [esi + 8]
add edx, 0xfffffffc
jne 0x420a10
mov word [edi], 0xa
add edi, 2
mov al, 1
mov dword [esp + 8], eax
jmp 0x4208f6
mov eax, dword [esp + 0x18]
cmp eax, 2
mov edi, dword [esp + 4]
jb 0x4208e7
shr eax, 1
lea ecx, [eax - 1]
mov edx, eax
and edx, 3
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0xa88]
je 0x420ab8
nop
dec eax
movzx esi, word [ecx]
xor ebx, ebx
test si, si
setne bl
lea ecx, [ecx + ebx*2]
mov word [edi], si
add edi, 2
dec edx
jne 0x420aa0
cmp dword [esp + 0xc], 3
jb 0x4208e7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, edi
mov edi, ecx
movzx ecx, word [ecx]
xor edx, edx
test cx, cx
setne dl
mov word [esi], cx
lea ecx, [edi + edx*2]
movzx edx, word [edi + edx*2]
xor ebx, ebx
test dx, dx
setne bl
mov word [esi + 2], dx
lea edx, [ecx + ebx*2]
movzx ecx, word [ecx + ebx*2]
xor ebx, ebx
test cx, cx
setne bl
mov word [esi + 4], cx
lea ecx, [edx + ebx*2]
movzx edx, word [edx + ebx*2]
xor ebx, ebx
test dx, dx
setne bl
lea ecx, [ecx + ebx*2]
mov word [esi + 6], dx
lea edi, [esi + 8]
add eax, 0xfffffffc
jne 0x420ad0
jmp 0x4208e7
jmp dword [0x444034]
mov dword [esp + 0x28], 0x6bf56dad
mov dword [esp + 0x2c], 0x67f569f7
mov dword [esp + 0x30], 0x63f065e9
mov dword [esp + 0x34], 0x5f5e61ec
lea eax, [esp + 0x38]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x15
ja case.0x4206f3.20
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x28]
lea edx, [eax + 0x741e7412]
add eax, 0x12
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x10]
add al, 0x82
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x16
jb 0x420b70
jmp case.0x4206f3.20
lea eax, [esp + 0x88]
test eax, eax
setne al
jmp dword [0x44403c]
mov dword [esp + 0x28], 0x6bf56dad
mov dword [esp + 0x2c], 0x67f569f7
mov dword [esp + 0x30], 0x63f065e9
mov dword [esp + 0x34], 0x5f5e61ec
lea eax, [esp + 0x38]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x15
ja 0x420c46
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x28]
lea edx, [eax + 0x741e7412]
add eax, 0x12
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x10]
add al, 0x82
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x16
jb 0x420c10
movzx edi, word [esp + 0x28]
test di, di
je 0x420bb0
lea esi, [esp + 0x28]
lea edx, [esp + 0x88]
mov eax, edx
mov ecx, esi
jmp 0x420c83
add eax, 2
mov ecx, esi
mov edx, eax
movzx edi, word [ecx]
test di, di
je 0x420bb7
movzx ebx, word [edx]
test bx, bx
je 0x420ca0
cmp bx, di
jne 0x420c70
add ecx, 2
add edx, 2
jmp 0x420c77
xor eax, eax
jmp 0x420bb7
mov dword [esp + 0x28], 0x33d331e0
mov dword [esp + 0x2c], 0x37c535c7
mov dword [esp + 0x30], 0xcb35c93f
mov dword [esp + 0x34], 0xcf2acd3e
mov word [esp + 0x38], 0xc1c0
lea eax, [esp + 0x38]
mov word [eax + 0xe], 0
mov dword [eax + 0xa], 0
mov dword [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x1f
ja 0x420d38
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x28]
lea edx, [eax - 0x44104f08]
add eax, 0xf8
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x10]
add al, 0x38
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x20
jb 0x420d00
movzx ebx, word [esp + 0x28]
lea eax, [esp + 0x88]
test bx, bx
je 0x420d86
lea esi, [esp + 0x28]
lea edx, [esp + 0x88]
mov eax, edx
mov edi, esi
jmp 0x420d6f
add eax, 2
mov edi, esi
mov edx, eax
movzx ebx, word [edi]
test bx, bx
je 0x420d86
movzx ecx, word [edx]
test cx, cx
je 0x420d84
cmp cx, bx
jne 0x420d60
add edi, 2
add edx, 2
jmp 0x420d67
xor eax, eax
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esp + 4]
jmp dword [ecx*4 + 0x444064]
jmp 0x4208f6
mov edi, dword [esp + 4]
cmp dword [esp + 8], 3
jae 0x420a10
jmp 0x420a64
mov eax, dword [esp + 0x54]
mov dword [esp + 0x28], 0x62656467
lea ecx, [esp + 0x38]
mov word [ecx - 8], 0
mov dword [ecx - 0xc], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 9
ja 0x420e38
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x28]
lea esi, [ecx + 0x1ae33a51]
lea edi, [ecx + 0x51]
mov ebx, edi
and ebx, esi
and ebx, edx
xor edi, esi
and edi, edx
add ecx, edx
add ecx, 0x1ae33a51
lea edx, [edi + ebx*2]
sub ecx, edx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
add cl, 0xc9
mov edx, dword [esp]
mov byte [esp + edx + 0x28], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xa
jb 0x420df0
mov ecx, dword [0x448868]
test ecx, ecx
je 0x420e80
mov edx, dword [esp + 0x28]
xor edi, edi
mov ebx, dword [0x44886c]
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x420e60
inc edi
cmp ecx, edi
jne 0x420e50
jmp 0x420e80
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je 0x420e80
push eax
push 1
push dword [0x448870]
push ecx
call fcn.00439850
add esp, 0x10
nop
nop
nop
nop
nop
nop
mov eax, dword [case.0x4206f3.37]
mov edi, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov ecx, dword [esp + 0x64]
inc ecx
xor eax, eax
cmp cx, 0x35
setb al
mov edx, dword [esp + 0x60]
jmp dword [eax*4 + 0x443fec]
jmp dword [0x443ffc]
mov ecx, dword [esp + 0x5c]
inc ecx
xor eax, eax
cmp ecx, 5
setne al
jmp dword [eax*4 + 0x443fe4]
mov dword [esp + 4], edi
jmp dword [0x44407c]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x88], 0x62656467
lea ecx, [esp + 0x128]
mov word [ecx - 0x98], 0
mov dword [ecx - 0x9c], 0
mov dword [esp + 0x888], 0
mov ecx, dword [esp + 0x888]
cmp ecx, 9
ja 0x420f88
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 + 0x1ae33a51]
lea edi, [ecx + 0x51]
mov ebx, edi
and ebx, esi
and ebx, edx
xor edi, esi
and edi, edx
add ecx, edx
add ecx, 0x1ae33a51
lea edx, [edi + ebx*2]
sub ecx, edx
mov dword [esp + 0xa88], ecx
mov ecx, dword [esp + 0xa88]
add cl, 0xc9
mov edx, dword [esp + 0x888]
mov byte [esp + edx + 0x88], cl
inc dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
cmp ecx, 0xa
jb 0x420f20
mov ecx, dword [0x448868]
test ecx, ecx
je case.0x4206f3.38
mov edx, dword [esp + 0x88]
xor edi, edi
mov ebx, dword [0x44886c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x420fc0
inc edi
cmp ecx, edi
jne 0x420fb0
jmp case.0x4206f3.38
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je case.0x4206f3.38
push eax
push 1
push dword [0x448870]
push ecx
call fcn.00439850
add esp, 0x10
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x88], 0x62656467
lea ecx, [esp + 0x128]
mov word [ecx - 0x98], 0
mov dword [ecx - 0x9c], 0
mov dword [esp + 0x888], 0
mov ecx, dword [esp + 0x888]
cmp ecx, 9
ja 0x421088
mov ecx, dword [esp + 0x888]
mov edx, dword [esp + 0x888]
movzx edx, byte [esp + edx + 0x88]
lea esi, [ecx + 0x1ae33a51]
lea edi, [ecx + 0x51]
mov ebx, edi
and ebx, esi
and ebx, edx
xor edi, esi
and edi, edx
add ecx, edx
add ecx, 0x1ae33a51
lea edx, [edi + ebx*2]
sub ecx, edx
mov dword [esp + 0xa88], ecx
mov ecx, dword [esp + 0xa88]
add cl, 0xc9
mov edx, dword [esp + 0x888]
mov byte [esp + edx + 0x88], cl
inc dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
cmp ecx, 0xa
jb 0x421020
mov ecx, dword [0x448868]
test ecx, ecx
je 0x4210d0
mov edx, dword [esp + 0x88]
xor edi, edi
mov ebx, dword [0x44886c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x4210c0
inc edi
cmp ecx, edi
jne 0x4210b0
jmp 0x4210d0
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x421108
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x444088]
mov esi, dword [esp + 0x4c]
mov eax, dword [esp + 0x58]
jmp dword [0x44408c]
push eax
call fcn.004090f0
add esp, 4
mov eax, esi
and eax, 1
xor esi, 1
lea esi, [esi + eax*2]
xor eax, eax
cmp esi, dword [esp + 0x20]
setb al
jmp dword [eax*4 + 0x443fcc]
push eax
push 1
push dword [0x448870]
push ecx
call fcn.00439850
add esp, 0x10
jmp dword [0x444088]
add ebx, edi
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
mov edx, dword [esp + 4]
je 0x42115a
cmp eax, edx
jae 0x42115a
movzx esi, cx
xor ecx, ecx
cmp esi, 0x800
setb dl
mov edi, 1
cmp esi, 0x80
jb 0x421120
mov cl, dl
xor ecx, 3
mov edi, ecx
jmp 0x421120
lea eax, [ebx + 1]
mov dword [esp + 0xc], eax
push eax
call fcn.004090e0
add esp, 4
test ebx, ebx
mov dword [esp + 8], eax
jle 0x42123c
lea ecx, [eax + ebx]
mov dword [esp + 0x14], ecx
add dword [esp + 0xc], eax
lea edx, [esp + 0x11f8]
mov edi, eax
jmp 0x4211a6
mov byte [edi], cl
mov eax, 1
add edx, 2
add edi, eax
cmp edi, dword [esp + 0x14]
jae 0x42123e
cmp edx, dword [esp + 4]
jae 0x42123e
movzx ecx, word [edx]
test cx, cx
je 0x42123e
cmp cx, 0x7f
jbe 0x421190
mov eax, edi
not eax
add eax, dword [esp + 0xc]
cmp eax, 2
jb 0x4211f3
movzx esi, cx
cmp esi, 0x7ff
ja 0x4211f3
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 0x421197
cmp eax, 3
mov eax, 0
jb 0x421197
movzx esi, cx
mov eax, esi
shr eax, 0xc
or al, 0xe0
mov byte [edi], al
mov eax, esi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [edi + 1], al
and cl, 0x3f
or cl, 0x80
mov byte [edi + 2], cl
mov eax, 3
jmp 0x421197
xor ebx, ebx
push 1
call fcn.004090e0
add esp, 4
mov edi, eax
mov dword [esp + 8], eax
jmp 0x42123e
mov edi, eax
mov ecx, dword [ebp + 8]
mov byte [edi], 0
mov dword [esp + 0x88], 0xcfc2c1f1
mov dword [esp + 0x8c], 0xc3d7d6cd
mov dword [esp + 0x90], 0x38343631
mov dword [esp + 0x94], 0x3b3b12f3
mov dword [esp + 0x98], 0x383d3e3c
mov dword [esp + 0x9c], 0x383415fb
mov dword [esp + 0xa0], 0x3e26203e
mov dword [esp + 0xa4], 0x572ae32f
mov word [esp + 0xa8], 0xd124
mov dword [esp + 0xae], 0
mov dword [esp + 0xaa], 0
mov dword [esp + 0x888], 0
mov eax, dword [esp + 0x888]
cmp eax, 0x29
ja 0x42133b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x888]
mov edx, dword [esp + 0x888]
movzx edx, byte [esp + edx + 0x88]
lea esi, [eax + 0x78]
and esi, edx
mov edi, 0xf54dac87
sub edi, eax
or edi, edx
not edi
add edi, edx
sub edi, esi
mov dword [esp + 0xa88], edi
mov eax, dword [esp + 0xa88]
add al, 0xb8
mov edx, dword [esp + 0x888]
mov byte [esp + edx + 0x88], al
inc dword [esp + 0x888]
mov eax, dword [esp + 0x888]
cmp eax, 0x2a
jb 0x4212e0
lea eax, [esp + 0x88]
push ebx
mov esi, dword [esp + 0xc]
push esi
push eax
call fcn.004099f0
jmp dword [0x4440a4]
push esi
mov esi, eax
call fcn.004090f0
mov eax, esi
add esp, 4
mov ecx, dword [case.0x4206f3.46]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
and al, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
int3