Function at 0x420302
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.00408ba0
mov dword [esp + 0x11f8], 0xa3d2a1c2
mov dword [esp + 0x11fc], 0xdfa5dddd
mov dword [esp + 0x1200], 0xdbb5d9a5
mov dword [esp + 0x1204], 0xd7a6d5b6
mov dword [esp + 0x1208], 0xd3b4d1bd
mov dword [esp + 0x120c], 0xcfa1cdbd
mov dword [esp + 0x1210], 0xcbbac9b1
mov word [esp + 0x1214], 0xc5ca
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 0x41f169
nop
mov eax, dword [esp + 0xa88]
mov ecx, dword [esp + 0xa88]
movzx ecx, byte [esp + ecx + 0x11f8]
lea edx, [eax + ecx]
add eax, 0x3b
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x54a4de3b
mov dword [esp + 0x88], edx
mov eax, dword [esp + 0x88]
add al, 0x63
mov ecx, dword [esp + 0xa88]
mov byte [esp + ecx + 0x11f8], al
inc dword [esp + 0xa88]
mov eax, dword [esp + 0xa88]
cmp eax, 0x27
jb 0x41f110
lea eax, [esp + 0x48]
lea esi, [esp + 0x11f8]
push 0
push 0
push 0x20019
push eax
push esi
call fcn.0043cbb0
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x443f94]
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 + 0x68]
call fcn.0043cff0
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x443f9c]
xor ebx, ebx
jmp 0x420e62
xor ecx, ecx
xor eax, eax
mov dword [esp + 8], 0
cmp ecx, dword [esp + 0x60]
setb al
xor ebx, ebx
jmp dword [eax*4 + 0x443fa4]
jmp dword [0x443fb4]
mov word [esi], 0
mov ebx, dword [esp + 8]
mov eax, ebx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x444094]
movzx ecx, word [esp + 0x11f8]
xor ebx, ebx
test cx, cx
je 0x420d21
lea eax, [esp + 0x11f8]
mov dword [esp], esi
jmp 0x420c21
jmp dword [ecx*4 + 0x444074]
inc ebx
xor eax, eax
cmp ebx, dword [esp + 0x60]
setb al
jmp dword [eax*4 + 0x443fa4]
mov edi, dword [esp + 0x70]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x41f25a
mov eax, 0xffffffff
push eax
call fcn.00408bd0
add esp, 4
mov dword [esp + 0x6c], edi
lea ecx, [esp + 0x6c]
push ecx
push eax
push ebx
push dword [esp + 0x54]
mov edi, eax
call fcn.0043cd10
add esp, 0x10
not eax
shr eax, 0x1f
mov ecx, 1
xor edx, edx
jmp dword [eax*4 + 0x443fbc]
jmp dword [edx*4 + 0x44406c]
lea eax, [esp + 0x5c]
push dword [esp + 0x48]
push 0
push 0x20019
push eax
mov dword [esp + 0x5c], edi
push edi
call fcn.0043cbb0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x443fc4]
xor ecx, ecx
mov edx, 1
mov eax, dword [esp + 0x4c]
jmp dword [0x444064]
mov dword [esp + 0x64], ebx
mov dword [esp], esi
mov dword [esp + 0x88], 0xa33ba111
mov dword [esp + 0x8c], 0x9f0e9d3f
mov dword [esp + 0x90], 0x9b15990f
mov dword [esp + 0x94], 0x970a950b
mov dword [esp + 0x98], 0x9334911a
mov dword [esp + 0x9c], 0x8f178d3b
mov dword [esp + 0xa0], 0x8b148918
mov dword [esp + 0xa4], 0x870d851b
mov dword [esp + 0xa8], 0x83e0810b
mov dword [esp + 0xac], 0xff63fd35
mov dword [esp + 0xb0], 0xfb75f973
mov dword [esp + 0xb4], 0xf76df559
mov dword [esp + 0xb8], 0xf366f16d
mov dword [esp + 0xbc], 0xef8ced6b
mov dword [esp + 0xc0], 0xeb67e943
mov dword [esp + 0xc4], 0xe769e548
mov dword [esp + 0xc8], 0xe36de16d
mov dword [esp + 0xcc], 0xdf43dd6e
mov dword [esp + 0xd0], 0xdb7cd949
mov dword [esp + 0xd4], 0xd746d56a
mov dword [esp + 0xd8], 0xd34ed147
mov dword [esp + 0xdc], 0xcf58cd49
mov dword [esp + 0xe0], 0xcb45c951
mov dword [esp + 0xe4], 0xc78fc56e
mov dword [esp + 0xe8], 0xc389c18b
mov dword [esp + 0xec], 0x3f813d8d
mov dword [esp + 0xf0], 0x3b863980
mov dword [esp + 0xf4], 0x3778356a
mov dword [esp + 0xf8], 0x337d3165
mov dword [esp + 0xfc], 0x2f7f2d61
mov dword [esp + 0x100], 0x2bb4297d
mov dword [esp + 0x104], 0x27662567
mov dword [esp + 0x108], 0x2368216e
mov dword [esp + 0x10c], 0x1f4c1d61
mov dword [esp + 0x110], 0x1b4b194e
mov dword [esp + 0x114], 0x1758154a
mov dword [esp + 0x118], 0x13421154
mov dword [esp + 0x11c], 0xf420d51
mov dword [esp + 0x120], 0xb410940
mov dword [esp + 0x124], 0x7a00544
mov word [esp + 0x128], 0x106
mov dword [esp + 0x12e], 0
mov dword [esp + 0x12a], 0
mov dword [esp + 0x888], 0
mov eax, dword [esp + 0x888]
cmp eax, 0xa9
ja 0x41f54c
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 + 0x9b]
mov ecx, 0x164
sub ecx, edx
sub ecx, esi
add edx, esi
add edx, 0xcea7dc9b
and eax, esi
add eax, eax
and ecx, eax
not eax
and eax, edx
sub eax, ecx
mov dword [esp + 0xa88], eax
mov eax, dword [esp + 0xa88]
add al, 0xc3
mov ecx, dword [esp + 0x888]
mov byte [esp + ecx + 0x88], al
inc dword [esp + 0x888]
mov eax, dword [esp + 0x888]
cmp eax, 0xaa
jb 0x41f4e0
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], 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 dword [esp + 0x16e], 0
mov dword [esp + 0x888], 0
mov eax, dword [esp + 0x888]
cmp eax, 0xe9
ja 0x41f88b
nop
nop
nop
nop
mov eax, dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
movzx ecx, byte [esp + ecx + 0x88]
lea edx, [eax + 0x30]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x44b74b30
mov dword [esp + 0xa88], eax
mov eax, dword [esp + 0xa88]
add al, 0xb0
mov ecx, dword [esp + 0x888]
mov byte [esp + ecx + 0x88], al
mov eax, dword [esp + 0x888]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp + 0x888], eax
mov eax, dword [esp + 0x888]
cmp eax, 0xea
jb 0x41f820
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]
mov ecx, 1
lea edi, [esp + 0x1010]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x88], 0xd37bd161
mov dword [esp + 0x8c], 0xdf4edd7f
mov dword [esp + 0x90], 0xdb45d94f
mov dword [esp + 0x94], 0xc76ac54b
mov dword [esp + 0x98], 0xc364c15a
mov dword [esp + 0x9c], 0xcf62cd73
mov dword [esp + 0xa0], 0xcb63c960
mov dword [esp + 0xa4], 0xb71bb567
mov dword [esp + 0xa8], 0xb363b112
mov dword [esp + 0xac], 0xbf6abd6f
mov dword [esp + 0xb0], 0xbb1cb96e
mov dword [esp + 0xb4], 0xa73ba50b
mov dword [esp + 0xb8], 0xa334a13a
mov dword [esp + 0xbc], 0xaf3dad33
mov dword [esp + 0xc0], 0xab0ca93b
mov dword [esp + 0xc4], 0x9706951a
mov dword [esp + 0xc8], 0x933e9107
mov dword [esp + 0xcc], 0x9f089d39
mov dword [esp + 0xd0], 0x9b059931
mov dword [esp + 0xd4], 0x8735853e
mov dword [esp + 0xd8], 0x831c8119
mov dword [esp + 0xdc], 0x8f1d8d16
mov dword [esp + 0xe0], 0x8b1d891f
mov dword [esp + 0xe4], 0x77af752e
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], 0x6bc469bd
mov dword [esp + 0x104], 0x579655b7
mov dword [esp + 0x108], 0x5388518e
mov dword [esp + 0x10c], 0x5f8c5d91
mov dword [esp + 0x110], 0x5b8b598e
mov dword [esp + 0x114], 0x4798458a
mov dword [esp + 0x118], 0x43924184
mov dword [esp + 0x11c], 0x4f924d81
mov dword [esp + 0x120], 0x4b914990
mov dword [esp + 0x124], 0x37903594
mov word [esp + 0x128], 0x3136
lea eax, [esp + 0x128]
mov word [eax + 0xe], 0
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, 0xaf
ja 0x41fb1d
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 edx, 0x4e57fb23
add eax, 0x4e57fb23
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xa88], edx
mov eax, dword [esp + 0xa88]
add al, 0xb
mov ecx, dword [esp + 0x888]
mov byte [esp + ecx + 0x88], al
inc dword [esp + 0x888]
mov eax, dword [esp + 0x888]
cmp eax, 0xb0
jb 0x41fac0
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], 0x8b738d59
mov dword [esp + 0x8c], 0x87088977
mov dword [esp + 0x90], 0x830d8577
mov dword [esp + 0x94], 0x9f648173
mov dword [esp + 0x98], 0x9b7e9d10
mov dword [esp + 0x9c], 0x976c994b
mov dword [esp + 0xa0], 0x936b956e
mov dword [esp + 0xa4], 0xaf53916f
mov dword [esp + 0xa8], 0xab9bad48
mov dword [esp + 0xac], 0xa794a964
mov dword [esp + 0xb0], 0xa346a594
mov dword [esp + 0xb4], 0xbf33a173
mov dword [esp + 0xb8], 0xbb4ebd30
mov dword [esp + 0xbc], 0xb745b94b
mov dword [esp + 0xc0], 0xb356b543
mov dword [esp + 0xc4], 0x4fc0b160
mov dword [esp + 0xc8], 0x4bb04dbf
mov dword [esp + 0xcc], 0x47b249b1
mov dword [esp + 0xd0], 0x43cd45b9
mov dword [esp + 0xd4], 0x5f8d41a4
mov dword [esp + 0xd8], 0x5bd65dd1
mov dword [esp + 0xdc], 0x57a559ac
mov dword [esp + 0xe0], 0x53a555a7
mov dword [esp + 0xe4], 0x6fa751b4
mov dword [esp + 0xe8], 0x6ba16da3
mov dword [esp + 0xec], 0x67b969a5
mov dword [esp + 0xf0], 0x63b865be
mov dword [esp + 0xf4], 0x7fb26150
mov dword [esp + 0xf8], 0x7bb57d4d
mov dword [esp + 0xfc], 0x77477949
mov dword [esp + 0x100], 0x738e7545
mov dword [esp + 0x104], 0xfd071bf
mov dword [esp + 0x108], 0xbc20dc4
mov dword [esp + 0x10c], 0x73609c9
mov dword [esp + 0x110], 0x3330534
mov dword [esp + 0x114], 0x1fd20130
mov dword [esp + 0x118], 0x1bd41dc2
mov dword [esp + 0x11c], 0x17dc19d9
mov dword [esp + 0x120], 0x13d915de
mov dword [esp + 0x124], 0x2fca11da
mov word [esp + 0x128], 0x2d2c
lea eax, [esp + 0x128]
mov byte [eax + 0xe], 0
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, 0xae
ja 0x41fdad
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 + 0x42]
and edx, ecx
mov esi, 0xc9a84bd
sub esi, eax
or esi, ecx
not esi
add esi, ecx
sub esi, edx
mov dword [esp + 0xa88], esi
mov eax, dword [esp + 0xa88]
add al, 0x32
mov ecx, dword [esp + 0x888]
mov byte [esp + ecx + 0x88], al
inc dword [esp + 0x888]
mov eax, dword [esp + 0x888]
cmp eax, 0xaf
jb 0x41fd50
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], 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], 0x77d875c3
mov dword [esp + 0xa0], 0x73db71de
mov dword [esp + 0xa4], 0x7fd37ddf
mov dword [esp + 0xa8], 0x7b2b79dc
mov dword [esp + 0xac], 0x67306539
mov dword [esp + 0xb0], 0x63c66130
mov dword [esp + 0xb4], 0x6ff36ddb
mov dword [esp + 0xb8], 0x6bfe69f4
mov dword [esp + 0xbc], 0x57c155c3
mov dword [esp + 0xc0], 0x53f651fb
mov dword [esp + 0xc4], 0x5fcc5dec
mov dword [esp + 0xc8], 0x5bf459cf
mov dword [esp + 0xcc], 0x47d245ed
mov dword [esp + 0xd0], 0x43d141ed
mov dword [esp + 0xd4], 0x4ff94de8
mov dword [esp + 0xd8], 0x4bd649d5
mov dword [esp + 0xdc], 0xb721b520
mov dword [esp + 0xe0], 0xb319b127
mov dword [esp + 0xe4], 0xbfe7bd18
mov dword [esp + 0xe8], 0xbbe5b9eb
mov dword [esp + 0xec], 0xa7e5a5f9
mov dword [esp + 0xf0], 0xa3eca1ee
mov dword [esp + 0xf4], 0xaff2adfc
mov dword [esp + 0xf8], 0xabf9a9f9
mov dword [esp + 0xfc], 0x97c795c5
mov dword [esp + 0x100], 0x933e91c1
mov dword [esp + 0x104], 0x9fdc9dcf
mov dword [esp + 0x108], 0x9bc299c0
mov dword [esp + 0x10c], 0x87d685c5
mov dword [esp + 0x110], 0x83d381d0
mov dword [esp + 0x114], 0x8fd28ddc
mov dword [esp + 0x118], 0x8bd889ca
mov dword [esp + 0x11c], 0xf7a8f5b5
mov dword [esp + 0x120], 0xf3adf1ae
mov dword [esp + 0x124], 0xff5afda2
mov word [esp + 0x128], 0xf9f8
mov dword [esp + 0x12e], 0
mov dword [esp + 0x12a], 0
mov dword [esp + 0x888], 0
mov eax, dword [esp + 0x888]
cmp eax, 0xa9
ja 0x420065
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esp + 0x888]
mov eax, dword [esp + 0x888]
movzx esi, byte [esp + eax + 0x88]
lea eax, [edi + 0x127e662c]
lea ecx, [edi + esi]
add ecx, 0x127e662c
add edi, 0x2c
or eax, edi
and edi, esi
and eax, esi
add eax, edi
mov esi, eax
xor esi, ecx
not eax
and eax, ecx
add eax, eax
sub eax, esi
mov dword [esp + 0xa88], eax
mov eax, dword [esp + 0xa88]
add al, 0xcc
mov ecx, dword [esp + 0x888]
mov byte [esp + ecx + 0x88], al
mov eax, dword [esp + 0x888]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp + 0x888], eax
mov eax, dword [esp + 0x888]
cmp eax, 0xaa
jb 0x41ffe0
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
mov dword [esp + 0x3c], 0
cmp ecx, 5
setne al
mov esi, dword [esp]
jmp dword [eax*4 + 0x443fcc]
mov edi, esi
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x88], 0x70716e6f
mov dword [esp + 0x90], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x888], 0
mov ecx, dword [esp + 0x888]
cmp ecx, 0xb
ja 0x42017d
nop
nop
mov ecx, dword [esp + 0x888]
mov edx, dword [esp + 0x888]
movzx edx, byte [esp + edx + 0x88]
lea esi, [ecx + edx]
add esi, 0x87e371ee
add ecx, 0x87e371ee
and ecx, edx
add ecx, ecx
sub esi, ecx
mov dword [esp + 0xa88], esi
mov ecx, dword [esp + 0xa88]
add cl, 0x7e
mov edx, dword [esp + 0x888]
mov byte [esp + edx + 0x88], cl
inc dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
cmp ecx, 0xc
jb 0x420120
mov ecx, dword [0x448918]
test ecx, ecx
mov esi, edi
je 0x420bc0
mov edx, dword [esp + 0x88]
xor edi, edi
mov ebx, dword [0x44891c]
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x420ba5
inc edi
cmp ecx, edi
jne 0x4201a0
jmp 0x420bc0
mov edx, dword [esp + 0x3c]
inc edx
xor eax, eax
mov ecx, edx
mov dword [esp + 0x3c], edx
cmp edx, 5
setne al
jmp dword [eax*4 + 0x443fcc]
mov edi, esi
jmp dword [0x443fd4]
mov ecx, dword [esp + 0xc]
mov eax, ecx
and eax, 1
xor ecx, 1
lea ecx, [ecx + eax*2]
xor eax, eax
cmp cx, 0x35
setb al
mov esi, dword [esp]
mov edx, dword [esp + 0x50]
jmp dword [eax*4 + 0x443fe4]
mov dword [esp + 0xc], ecx
mov word [edx - 2], cx
lea eax, [esp + 0x58]
lea ecx, [esp + 0x888]
push dword [esp + 0x5c]
push 0
push 0x20019
push eax
push ecx
call fcn.0043cbb0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x443fec]
mov ecx, dword [esp + 0xc]
mov eax, ecx
and eax, 1
xor ecx, 1
lea ecx, [ecx + eax*2]
xor eax, eax
cmp cx, 0x35
setb al
mov edx, dword [esp + 0x50]
jmp dword [eax*4 + 0x443fe4]
mov dword [esp + 0x68], 0x800
mov dword [esp + 0x40], 0x400
xor ecx, ecx
mov dword [esp + 0x10], 0
jmp 0x4202a4
mov dword [esi], 0x20003a
add esi, 4
mov al, 1
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x44]
inc ecx
lea eax, [esp + 0x40]
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
mov dword [esp + 0x58], ecx
push ecx
push dword [esp + 0x70]
call fcn.0043d320
add esp, 0x1c
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x443ff4]
mov eax, dword [esp + 0x10]
and al, 1
movzx ecx, al
xor eax, eax
jmp dword [ecx*4 + 0x443ffc]
mov eax, dword [case.0x4200d7.17]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor ecx, ecx
cmp dword [esp + 0x54], 1
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x444014]
movzx eax, al
jmp dword [eax*4 + 0x44402c]
jmp dword [0x444038]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x444040]
xor eax, eax
cmp dword [esp + 0x54], 3
sete al
jmp dword [eax*4 + 0x444044]
xor eax, eax
movzx eax, al
jmp dword [eax*4 + 0x44404c]
mov dword [esp], esi
mov dword [esp + 0x18], 0x43e54d0d
mov dword [esp + 0x1c], 0x47d541e7
mov dword [esp + 0x20], 0xbb2845d1
mov dword [esp + 0x24], 0xbfbeb92c
mov word [esp + 0x28], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x11
ja 0x4203e0
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x18]
lea edx, [eax + ecx]
add edx, 0x9f75cf6
add eax, 0x9f75cf6
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x14]
add al, 0x46
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x18], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x12
jb 0x4203a0
jmp dword [0x44401c]
mov dword [esp + 0x18], 0xfb5bf936
mov dword [esp + 0x1c], 0xff69fd6f
mov dword [esp + 0x20], 0xf361f177
mov dword [esp + 0x24], 0xf750f560
mov word [esp + 0x28], 0xe9f6
lea eax, [esp + 0x2a]
mov dword [eax + 7], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x1c
ja 0x420487
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x18]
lea edx, [eax + 0x3f]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xb565023f
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov ecx, eax
xor ecx, 0x46
and eax, 0x46
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x18], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x1d
jb 0x420440
movzx ebx, word [esp + 0x18]
lea eax, [esp + 0x88]
mov dword [esp], eax
test bx, bx
je 0x4204e9
lea ecx, [esp + 0x18]
lea eax, [esp + 0x88]
mov edx, eax
mov dword [esp], eax
jmp 0x4204b8
movzx ebx, word [ecx]
test bx, bx
je 0x4204e9
movzx edi, word [edx]
test di, di
je 0x4204e2
mov eax, esi
add edx, 2
add ecx, 2
mov esi, dword [esp]
add esi, 2
cmp di, bx
je 0x4204d8
mov dword [esp], esi
mov edx, esi
mov esi, eax
je 0x4204b0
lea ecx, [esp + 0x18]
jmp 0x4204b0
mov dword [esp], 0
xor ecx, ecx
cmp dword [esp], 0
setne cl
jmp dword [ecx*4 + 0x44404c]
jmp dword [0x444058]
mov eax, dword [esp + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, dword [esp + 0x40]
cmp ebx, 2
jb 0x4205c6
mov dword [esp + 8], eax
shr ebx, 1
lea eax, [ebx - 1]
mov dword [esp], eax
mov eax, ebx
lea ecx, [esp + 0xa88]
and eax, 3
je 0x42055c
nop
nop
nop
nop
nop
nop
nop
nop
nop
dec ebx
mov edi, esi
movzx esi, word [ecx]
xor edx, edx
test si, si
setne dl
lea ecx, [ecx + edx*2]
mov word [edi], si
mov esi, edi
add esi, 2
dec eax
jne 0x420540
cmp dword [esp], 3
mov eax, dword [esp + 8]
jb 0x4205c6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, word [ecx]
xor edx, edx
test ax, ax
setne dl
mov word [esi], ax
lea eax, [ecx + edx*2]
movzx ecx, word [ecx + edx*2]
xor edx, edx
test cx, cx
setne dl
mov word [esi + 2], cx
lea ecx, [eax + edx*2]
movzx eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
mov word [esi + 4], ax
lea eax, [ecx + edx*2]
movzx edx, word [ecx + edx*2]
xor ecx, ecx
test dx, dx
setne cl
lea ecx, [eax + ecx*2]
mov word [esi + 6], dx
add esi, 8
add ebx, 0xfffffffc
jne 0x420570
mov eax, dword [esp + 8]
mov word [esi], 0xa
add esi, 2
and al, 1
movzx eax, al
lea ecx, [eax + 1]
or eax, 2
cmp eax, ecx
setne al
mov dword [esp + 8], eax
jmp dword [0x44405c]
mov eax, dword [esp + 0x40]
cmp eax, 2
jb 0x420692
shr eax, 1
lea ecx, [eax - 1]
mov dword [esp], ecx
mov ebx, eax
lea ecx, [esp + 0xa88]
and ebx, 3
je 0x42062c
nop
nop
nop
nop
nop
dec eax
mov edi, esi
movzx esi, word [ecx]
xor edx, edx
test si, si
setne dl
lea ecx, [ecx + edx*2]
mov word [edi], si
mov esi, edi
add esi, 2
dec ebx
jne 0x420610
cmp dword [esp], 3
jb 0x420692
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [ecx]
xor ebx, ebx
test dx, dx
setne bl
mov word [esi], dx
lea edx, [ecx + ebx*2]
movzx ecx, word [ecx + ebx*2]
xor ebx, ebx
test cx, cx
setne bl
mov word [esi + 2], cx
lea ecx, [edx + ebx*2]
movzx edx, word [edx + ebx*2]
xor ebx, ebx
test dx, dx
setne bl
mov word [esi + 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
add esi, 8
add eax, 0xfffffffc
jne 0x420640
mov word [esi], 0xa
add esi, 2
mov eax, dword [esp + 8]
and al, 1
movzx eax, al
mov ecx, eax
xor ecx, 1
add ecx, eax
setne al
jmp 0x420510
movzx ebx, word [esp + 0x18]
lea esi, [esp + 0x88]
test bx, bx
je 0x420710
lea ecx, [esp + 0x18]
lea esi, [esp + 0x88]
mov eax, esi
jmp 0x4206e8
movzx ebx, word [ecx]
test bx, bx
je 0x420710
movzx edi, word [eax]
test di, di
je 0x42075a
add eax, 2
add ecx, 2
lea edx, [esi + 2]
cmp di, bx
je 0x420702
mov esi, edx
mov eax, edx
je 0x4206e0
lea ecx, [esp + 0x18]
jmp 0x4206e0
jmp dword [0x444028]
movzx ebx, word [esp + 0x18]
test bx, bx
je case.0x4200d7.20
lea eax, [esp + 0x18]
lea edx, [esp + 0x88]
mov ecx, edx
jmp 0x420738
movzx ebx, word [eax]
test bx, bx
je case.0x4200d7.20
movzx edi, word [ecx]
test di, di
je case.0x4200d7.20
add ecx, 2
add eax, 2
lea esi, [edx + 2]
cmp di, bx
je 0x420752
mov edx, esi
mov ecx, esi
je 0x420730
lea eax, [esp + 0x18]
jmp 0x420730
xor esi, esi
jmp dword [0x444028]
xor eax, eax
test esi, esi
setne al
mov esi, dword [esp]
jmp dword [eax*4 + 0x44402c]
mov eax, dword [esp + 0x40]
cmp eax, 2
jb 0x420290
shr eax, 1
lea ecx, [eax - 1]
mov dword [esp], ecx
mov ebx, eax
lea ecx, [esp + 0xa88]
and ebx, 3
je 0x4207bc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
dec eax
mov edi, esi
movzx esi, word [ecx]
xor edx, edx
test si, si
setne dl
lea ecx, [ecx + edx*2]
mov word [edi], si
mov esi, edi
add esi, 2
dec ebx
jne 0x4207a0
cmp dword [esp], 3
jb 0x420290
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [ecx]
xor ebx, ebx
test dx, dx
setne bl
mov word [esi], dx
lea edx, [ecx + ebx*2]
movzx ecx, word [ecx + ebx*2]
xor ebx, ebx
test cx, cx
setne bl
mov word [esi + 2], cx
lea ecx, [edx + ebx*2]
movzx edx, word [edx + ebx*2]
xor ebx, ebx
test dx, dx
setne bl
mov word [esi + 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
add esi, 8
add eax, 0xfffffffc
jne 0x4207d0
jmp 0x420290
mov dword [esp], esi
mov eax, dword [esp + 0x58]
mov dword [esp + 0x18], 0x70716e6f
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xb
ja 0x4208a2
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x18]
lea esi, [ecx + edx]
add esi, 0x87e371ee
add ecx, 0x87e371ee
and ecx, edx
add ecx, ecx
sub esi, ecx
mov dword [esp + 0x14], esi
mov ecx, dword [esp + 0x14]
add cl, 0x7e
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x18], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xc
jb 0x420860
mov ecx, dword [0x448918]
test ecx, ecx
je 0x4201f0
mov edx, dword [esp + 0x18]
xor edi, edi
mov ebx, dword [0x44891c]
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x4208d3
inc edi
cmp ecx, edi
jne 0x4208c0
jmp 0x4201f0
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je 0x4201f0
push eax
push 1
push dword [0x448920]
push ecx
call fcn.00439b40
add esp, 0x10
jmp 0x4201f0
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + eax*4 + 0x74]
mov dword [esp + 0x88], 0xbb68b966
mov dword [esp + 0x8c], 0xbf6cbd6a
mov dword [esp + 0x90], 0xa370a16e
mov dword [esp + 0x94], 0xa71ca572
mov word [esp + 0x98], 0xa9a6
lea ecx, [esp + 0x128]
mov byte [ecx - 0x82], 0
mov dword [ecx - 0x86], 0
mov dword [ecx - 0x8a], 0
mov dword [ecx - 0x8e], 0
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x18]
cmp ecx, 0x1e
ja 0x4209d4
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x18]
movzx edx, byte [esp + edx + 0x88]
lea esi, [ecx + 0x47]
and esi, edx
add ecx, edx
add esi, esi
sub ecx, esi
add ecx, 0x94ee9d47
mov dword [esp + 0xa88], ecx
mov ecx, dword [esp + 0xa88]
mov edx, ecx
xor edx, 0xe
and ecx, 0xe
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esp + 0x18]
mov byte [esp + edx + 0x88], cl
inc dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
cmp ecx, 0x1f
jb 0x420980
movzx edx, word [eax]
lea ecx, [esp + 0x888]
test dx, dx
je 0x420a01
add eax, 2
lea ecx, [esp + 0x888]
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [eax]
add eax, 2
test dx, dx
jne 0x4209f0
mov word [ecx], 0
movzx eax, word [esp + 0x88]
test ax, ax
je 0x420a31
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 0x420a20
mov word [ecx], 0
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + eax*4 + 0x74]
mov dword [esp + 0x88], 0xbb68b966
mov dword [esp + 0x8c], 0xbf6cbd6a
mov dword [esp + 0x90], 0xa370a16e
mov dword [esp + 0x94], 0xa71ca572
mov word [esp + 0x98], 0xa9a6
lea ecx, [esp + 0x128]
mov byte [ecx - 0x82], 0
mov dword [ecx - 0x86], 0
mov dword [ecx - 0x8a], 0
mov dword [ecx - 0x8e], 0
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x18]
cmp ecx, 0x1e
ja 0x420b14
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x18]
movzx edx, byte [esp + edx + 0x88]
lea esi, [ecx + 0x47]
and esi, edx
add ecx, edx
add esi, esi
sub ecx, esi
add ecx, 0x94ee9d47
mov dword [esp + 0xa88], ecx
mov ecx, dword [esp + 0xa88]
mov edx, ecx
xor edx, 0xe
and ecx, 0xe
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esp + 0x18]
mov byte [esp + edx + 0x88], cl
inc dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
cmp ecx, 0x1f
jb 0x420ac0
movzx ecx, word [eax]
lea edx, [esp + 0x888]
test cx, cx
je 0x420b41
add eax, 2
lea edx, [esp + 0x888]
nop
nop
nop
mov word [edx], cx
add edx, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x420b30
mov word [edx], 0
movzx eax, word [esp + 0x88]
test ax, ax
je 0x420b80
lea ecx, [esp + 0x8a]
mov esi, edi
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x420b60
mov word [edx], 0
jmp dword [0x443fe0]
mov esi, edi
mov word [edx], 0
jmp dword [0x443fe0]
mov cx, 0x31
xor eax, eax
cmp cx, 0x35
setb al
mov dword [esp + 0x50], edx
jmp dword [eax*4 + 0x443fe4]
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je 0x420bc0
push eax
push 1
push dword [0x448920]
push ecx
call fcn.00439b40
add esp, 0x10
nop
xor ecx, ecx
mov edx, 1
mov ebx, dword [esp + 0x64]
mov eax, dword [esp + 0x4c]
jmp dword [0x444064]
push eax
call fcn.00408be0
add esp, 4
xor ecx, ecx
mov edx, 1
jmp dword [edx*4 + 0x44406c]
jmp dword [edx*4 + 0x44407c]
mov eax, dword [case.0x4200d7.43]
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
add ebx, esi
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
mov esi, dword [esp]
je 0x420c49
cmp eax, esi
jae 0x420c49
movzx edi, cx
xor ecx, ecx
cmp edi, 0x800
setb dl
mov esi, 1
cmp edi, 0x80
jb 0x420c10
mov cl, dl
xor ecx, 3
mov esi, ecx
jmp 0x420c10
lea edi, [ebx + 1]
push edi
call fcn.00408bd0
add esp, 4
test ebx, ebx
mov dword [esp + 0x10], eax
jle 0x420d33
lea ecx, [eax + ebx]
mov dword [esp + 0x44], ecx
add edi, eax
mov dword [esp + 8], edi
lea edx, [esp + 0x11f8]
mov edi, eax
jmp 0x420c96
mov byte [edi], cl
mov eax, 1
add edx, 2
add edi, eax
cmp edi, dword [esp + 0x44]
jae 0x420d35
cmp edx, esi
jae 0x420d35
movzx ecx, word [edx]
test cx, cx
je 0x420d35
cmp cx, 0x7f
jbe 0x420c80
mov eax, edi
not eax
add eax, dword [esp + 8]
cmp eax, 2
jb 0x420ce4
movzx esi, cx
cmp esi, 0x7ff
mov esi, dword [esp]
ja 0x420ce4
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 0x420c87
cmp eax, 3
mov eax, 0
jb 0x420c87
movzx eax, cx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
shr eax, 0xc
or al, 0xe0
mov byte [edi], al
mov eax, dword [esp + 0xc]
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 0x420c87
push 1
call fcn.00408bd0
add esp, 4
mov edi, eax
mov dword [esp + 0x10], eax
jmp 0x420d35
mov edi, eax
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 + 0xaa], 0
mov dword [esp + 0xae], 0
mov dword [esp + 0xb2], 0
mov word [esp + 0xb6], 0
mov dword [esp + 0x888], 0
mov eax, dword [esp + 0x888]
cmp eax, 0x2f
ja 0x420e38
nop
nop
nop
nop
mov eax, dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
movzx ecx, byte [esp + ecx + 0x88]
lea edx, [eax - 0x34a42908]
add eax, 0xf8
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xa88], edx
mov eax, dword [esp + 0xa88]
add al, 0x38
mov ecx, dword [esp + 0x888]
mov byte [esp + ecx + 0x88], al
inc dword [esp + 0x888]
mov eax, dword [esp + 0x888]
cmp eax, 0x30
jb 0x420de0
lea eax, [esp + 0x88]
mov ecx, dword [ebp + 8]
push ebx
mov esi, dword [esp + 0x14]
push esi
push eax
call fcn.004094a0
mov ebx, eax
jmp dword [0x44409c]
push esi
call fcn.00408be0
add esp, 4
and bl, 1
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [case.0x4200d7.57]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
int3