Function at 0x420362
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
mov eax, 0x2208
call fcn.00408ca0
mov dword [esp + 0x1200], 0xcb64cd68
mov dword [esp + 0x1204], 0xc71dc915
mov dword [esp + 0x1208], 0xc36dc51d
mov dword [esp + 0x120c], 0xdf70c16c
mov dword [esp + 0x1210], 0xdb7edd75
mov dword [esp + 0x1214], 0xd779d975
mov dword [esp + 0x1218], 0xd37cd509
mov word [esp + 0x121c], 0xd1d0
mov dword [esp + 0x121e], 0
mov dword [esp + 0xa90], 0
mov eax, dword [esp + 0xa90]
cmp eax, 0x21
ja 0x41ea28
nop
nop
nop
nop
mov eax, dword [esp + 0xa90]
mov ecx, dword [esp + 0xa90]
movzx ecx, byte [esp + ecx + 0x1200]
lea edx, [eax - 0x2888395e]
add eax, 0xa2
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x90], edx
mov eax, dword [esp + 0x90]
add al, 0x92
mov ecx, dword [esp + 0xa90]
mov byte [esp + ecx + 0x1200], al
inc dword [esp + 0xa90]
mov eax, dword [esp + 0xa90]
cmp eax, 0x22
jb 0x41e9d0
lea eax, [esp + 0x44]
lea esi, [esp + 0x1200]
push 0
push 0
push 0x20019
push eax
push esi
call fcn.0043c280
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x442e88]
mov dword [esp + 8], esi
lea eax, [esp + 0x78]
lea ecx, [esp + 0x40]
push 0
push 0
push 0
push 0
push eax
push ecx
push 0
push 0
push dword [esp + 0x64]
call fcn.0043c6d0
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x442e90]
xor eax, eax
jmp 0x420615
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x50], 0
cmp ecx, dword [esp + 0x40]
setb al
xor esi, esi
jmp dword [eax*4 + 0x442e98]
inc esi
xor eax, eax
cmp esi, dword [esp + 0x40]
setb al
jmp dword [eax*4 + 0x442e98]
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x78]
mov eax, esi
inc eax
lea eax, [esi + esi + 2]
jns 0x41ead7
mov eax, 0xffffffff
push eax
call fcn.00408cd0
add esp, 4
mov edi, eax
mov dword [esp + 0x74], esi
lea eax, [esp + 0x74]
push eax
push edi
mov esi, dword [esp + 0x50]
push esi
push dword [esp + 0x50]
call fcn.0043c3d0
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x442eb0]
lea eax, [esp + 0x5c]
push dword [esp + 0x44]
push 0
push 0x20019
push eax
push edi
call fcn.0043c280
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x442eb8]
mov eax, dword [case.0x41f919.32]
jmp case.0x41f919.30
mov dword [esp + 0x60], edi
mov dword [esp + 0x90], 0xebabd585
mov dword [esp + 0x94], 0xef9ee98f
mov dword [esp + 0x98], 0xe399ed9f
mov dword [esp + 0x9c], 0xe79ae193
mov dword [esp + 0xa0], 0xfb88e592
mov dword [esp + 0xa4], 0xff87f993
mov dword [esp + 0xa8], 0xf398fd8c
mov dword [esp + 0xac], 0xf779f183
mov dword [esp + 0xb0], 0xbd4f583
mov dword [esp + 0xb4], 0xf730959
mov dword [esp + 0xb8], 0x3790d7b
mov dword [esp + 0xbc], 0x7790165
mov dword [esp + 0xc0], 0x1b760579
mov dword [esp + 0xc4], 0x1f381963
mov dword [esp + 0xc8], 0x13971d4b
mov dword [esp + 0xcc], 0x17651174
mov dword [esp + 0xd0], 0x2b611599
mov dword [esp + 0xd4], 0x2f53295e
mov dword [esp + 0xd8], 0x23402d5d
mov dword [esp + 0xdc], 0x27562172
mov dword [esp + 0xe0], 0x3b5e2557
mov dword [esp + 0xe4], 0x3f443945
mov dword [esp + 0xe8], 0x33493d45
mov dword [esp + 0xec], 0x377f315e
mov dword [esp + 0xf0], 0x4b7d3503
mov dword [esp + 0xf4], 0x4f0d4901
mov dword [esp + 0xf8], 0x43164d14
mov dword [esp + 0xfc], 0x47744172
mov dword [esp + 0x100], 0x5b714571
mov dword [esp + 0x104], 0x5f6f596d
mov dword [esp + 0x108], 0x53385d69
mov dword [esp + 0x10c], 0x57165167
mov dword [esp + 0x110], 0x6b1c551e
mov dword [esp + 0x114], 0x6f58692d
mov dword [esp + 0x118], 0x635b6d5e
mov dword [esp + 0x11c], 0x67546152
mov dword [esp + 0x120], 0x7b526520
mov dword [esp + 0x124], 0x7f32793d
mov dword [esp + 0x128], 0x73357d34
mov dword [esp + 0x12c], 0x771c7138
mov word [esp + 0x130], 0x7576
lea eax, [esp + 0x130]
mov word [eax + 0xe], 0
mov dword [eax + 0xa], 0
mov dword [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp + 0x890], 0
mov eax, dword [esp + 0x890]
cmp eax, 0xaf
ja 0x41eda9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x890]
mov ecx, dword [esp + 0x890]
movzx ecx, byte [esp + ecx + 0x90]
lea edx, [eax + 0x5d]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x27c7525d
mov dword [esp + 0xa90], eax
mov eax, dword [esp + 0xa90]
add al, 0x75
mov ecx, dword [esp + 0x890]
mov byte [esp + ecx + 0x90], al
inc dword [esp + 0x890]
mov eax, dword [esp + 0x890]
cmp eax, 0xb0
jb 0x41ed50
lea edi, [esp + 0xe92]
lea eax, [esp + 0x90]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edx, [esp + 0x130]
mov eax, edx
mov ecx, 1
lea edi, [esp + 0xf32]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x90], 0xb8b15a5
mov dword [esp + 0x94], 0xf9e09af
mov dword [esp + 0x98], 0x3990d9f
mov dword [esp + 0x9c], 0x79a0193
mov dword [esp + 0xa0], 0x7ba80592
mov dword [esp + 0xa4], 0x7fe779d3
mov dword [esp + 0xa8], 0x73d87dec
mov dword [esp + 0xac], 0x77f971e3
mov dword [esp + 0xb0], 0x6b1475e3
mov dword [esp + 0xb4], 0x6fdc69d8
mov dword [esp + 0xb8], 0x63296dc2
mov dword [esp + 0xbc], 0x67f661e9
mov dword [esp + 0xc0], 0x5bff65f0
mov dword [esp + 0xc4], 0x5fcc59c8
mov dword [esp + 0xc8], 0x53c75df4
mov dword [esp + 0xcc], 0x57c551c4
mov dword [esp + 0xd0], 0x4bc555c9
mov dword [esp + 0xd4], 0x4fe449d8
mov dword [esp + 0xd8], 0x43d34de7
mov dword [esp + 0xdc], 0x47e441d0
mov dword [esp + 0xe0], 0xbbcd45d7
mov dword [esp + 0xe4], 0xbfd8b92f
mov dword [esp + 0xe8], 0xb327bd0d
mov dword [esp + 0xec], 0xb725b127
mov dword [esp + 0xf0], 0xab2db511
mov dword [esp + 0xf4], 0xaf3aa935
mov dword [esp + 0xf8], 0xa3ccad37
mov dword [esp + 0xfc], 0xa72ba117
mov dword [esp + 0x100], 0x9b31a500
mov dword [esp + 0x104], 0x9f0d9915
mov dword [esp + 0x108], 0x93079d0a
mov dword [esp + 0x10c], 0x973c9101
mov dword [esp + 0x110], 0x8b029526
mov dword [esp + 0x114], 0x8f12891b
mov dword [esp + 0x118], 0x83108d11
mov dword [esp + 0x11c], 0x87158119
mov dword [esp + 0x120], 0xfb35852a
mov dword [esp + 0x124], 0xff6cf971
mov dword [esp + 0x128], 0xf36dfd62
mov dword [esp + 0x12c], 0xf76df163
mov dword [esp + 0x130], 0xebbbf55a
mov dword [esp + 0x134], 0xefa1e9bf
mov dword [esp + 0x138], 0xe3a9eda5
mov dword [esp + 0x13c], 0xe75ae158
mov dword [esp + 0x140], 0xdbb0e5b6
mov dword [esp + 0x144], 0xdf8dd98d
mov dword [esp + 0x148], 0xd38bdd89
mov dword [esp + 0x14c], 0xd774d185
mov dword [esp + 0x150], 0xcb92d583
mov dword [esp + 0x154], 0xcf80c982
mov dword [esp + 0x158], 0xc39ccd89
mov dword [esp + 0x15c], 0xc797c192
mov dword [esp + 0x160], 0x3b90c596
mov dword [esp + 0x164], 0x3f6e397c
mov dword [esp + 0x168], 0x33763d79
mov dword [esp + 0x16c], 0x37793178
mov dword [esp + 0x170], 0x2b98357c
mov word [esp + 0x174], 0x292a
mov word [edx + 0x4e], 0
mov dword [edx + 0x4a], 0
mov dword [edx + 0x46], 0
mov dword [esp + 0x890], 0
mov eax, dword [esp + 0x890]
cmp eax, 0xef
ja 0x41f0f3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x890]
mov ecx, dword [esp + 0x890]
movzx edx, byte [esp + ecx + 0x90]
lea ecx, [eax - 0x3b9def53]
mov esi, ecx
and esi, edx
xor ecx, edx
add eax, 0xad
and eax, edx
add eax, esi
sub ecx, eax
lea eax, [ecx + esi*2]
mov dword [esp + 0xa90], eax
mov eax, dword [esp + 0xa90]
add al, 0x45
mov ecx, dword [esp + 0x890]
mov byte [esp + ecx + 0x90], al
inc dword [esp + 0x890]
mov eax, dword [esp + 0x890]
cmp eax, 0xf0
jb 0x41f090
lea edi, [esp + 0xf34]
lea eax, [esp + 0x90]
mov ecx, 0x39
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x174]
mov ecx, 1
lea edi, [esp + 0x1018]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x90], 0xf35b0dc1
mov dword [esp + 0x94], 0xf760f157
mov dword [esp + 0x98], 0xfb6df567
mov dword [esp + 0x9c], 0xff54f96b
mov dword [esp + 0xa0], 0xe35efd68
mov dword [esp + 0xa4], 0xe74ce153
mov dword [esp + 0xa8], 0xeb43e54e
mov dword [esp + 0xac], 0xef4be94f
mov dword [esp + 0xb0], 0xd303ed50
mov dword [esp + 0xb4], 0xd704d107
mov dword [esp + 0xb8], 0xdb66d504
mov dword [esp + 0xbc], 0xdf4bd96b
mov dword [esp + 0xc0], 0xc36edd48
mov dword [esp + 0xc4], 0xc755c153
mov dword [esp + 0xc8], 0xcb76c56b
mov dword [esp + 0xcc], 0xcf58c978
mov dword [esp + 0xd0], 0xb318cd5f
mov dword [esp + 0xd4], 0xb71ab119
mov dword [esp + 0xd8], 0xbb2db511
mov dword [esp + 0xdc], 0xbf0db904
mov dword [esp + 0xe0], 0xa336bd29
mov dword [esp + 0xe4], 0xa735a10c
mov dword [esp + 0xe8], 0xab05a537
mov dword [esp + 0xec], 0xaf77a914
mov dword [esp + 0xf0], 0x9349ad7b
mov dword [esp + 0xf4], 0x97519145
mov dword [esp + 0xf8], 0x9b50955e
mov dword [esp + 0xfc], 0x9f4a9948
mov dword [esp + 0x100], 0x83559d4d
mov dword [esp + 0x104], 0x87578151
mov dword [esp + 0x108], 0x8b2e8555
mov dword [esp + 0x10c], 0x8f48895f
mov dword [esp + 0x110], 0x73aa8d54
mov dword [esp + 0x114], 0x77a671b1
mov dword [esp + 0x118], 0x7bab75a4
mov dword [esp + 0x11c], 0x7faa79a8
mov dword [esp + 0x120], 0x63b47dba
mov dword [esp + 0x124], 0x67bc61a1
mov dword [esp + 0x128], 0x6bb165be
mov dword [esp + 0x12c], 0x6fd269b2
mov word [esp + 0x130], 0x6d6c
lea eax, [esp + 0x130]
mov word [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp + 0x890], 0
mov eax, dword [esp + 0x890]
cmp eax, 0xa7
ja 0x41f388
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x890]
mov ecx, dword [esp + 0x890]
movzx ecx, byte [esp + ecx + 0x90]
lea edx, [eax + 0x7e]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xa724de7e
mov dword [esp + 0xa90], eax
mov eax, dword [esp + 0xa90]
mov ecx, eax
or ecx, 0x8d
and eax, 0x8d
add eax, ecx
inc al
mov ecx, dword [esp + 0x890]
mov byte [esp + ecx + 0x90], al
inc dword [esp + 0x890]
mov eax, dword [esp + 0x890]
cmp eax, 0xa8
jb 0x41f320
lea edi, [esp + 0x115e]
lea eax, [esp + 0x90]
mov ebx, edi
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x130]
mov ecx, 1
lea edi, [esp + 0x11fe]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x90], 0x33a33545
mov dword [esp + 0x94], 0x2fbe31af
mov dword [esp + 0x98], 0x2ba12dbf
mov dword [esp + 0x9c], 0x27b229bb
mov dword [esp + 0xa0], 0x234025aa
mov dword [esp + 0xa4], 0x5fba2153
mov dword [esp + 0xa8], 0x5bcb5dc4
mov dword [esp + 0xac], 0x57c359c7
mov dword [esp + 0xb0], 0x531b5532
mov dword [esp + 0xb4], 0x4f02511e
mov dword [esp + 0xb8], 0x4b284d1e
mov dword [esp + 0xbc], 0x47c3493b
mov dword [esp + 0xc0], 0x43d045ca
mov dword [esp + 0xc4], 0x7fd141d3
mov dword [esp + 0xc8], 0x7b187deb
mov dword [esp + 0xcc], 0x77f6790a
mov dword [esp + 0xd0], 0x73ee75e7
mov dword [esp + 0xd4], 0x6fe471e5
mov dword [esp + 0xd8], 0x6be16df5
mov dword [esp + 0xdc], 0x6719690e
mov dword [esp + 0xe0], 0x63e865ed
mov dword [esp + 0xe4], 0x9ff161f6
mov dword [esp + 0xe8], 0x9b099d0f
mov dword [esp + 0xec], 0x97df99fe
mov dword [esp + 0xf0], 0x93dd95db
mov dword [esp + 0xf4], 0x8fed91d9
mov dword [esp + 0xf8], 0x8bf68df4
mov dword [esp + 0xfc], 0x87c489da
mov dword [esp + 0x100], 0x83c985c9
mov dword [esp + 0x104], 0xbfcf81cd
mov dword [esp + 0x108], 0xbb20bdf1
mov dword [esp + 0x10c], 0xb7c6b9f7
mov dword [esp + 0x110], 0xb3fcb5fe
mov dword [esp + 0x114], 0xafe0b1cd
mov dword [esp + 0x118], 0xabe3adfe
mov dword [esp + 0x11c], 0xa7e4a9fa
mov dword [esp + 0x120], 0xa3eaa5d8
mov dword [esp + 0x124], 0xdfeaa1dd
mov dword [esp + 0x128], 0xdb95dd94
mov dword [esp + 0x12c], 0xd7bcd990
mov word [esp + 0x130], 0xd5d6
lea eax, [esp + 0x130]
mov word [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp + 0x890], 0
mov eax, dword [esp + 0x890]
cmp eax, 0xa7
ja 0x41f616
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x890]
mov ecx, dword [esp + 0x890]
movzx ecx, byte [esp + ecx + 0x90]
lea edx, [eax + 0x11e92e29]
add eax, 0x29
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xa90], edx
mov eax, dword [esp + 0xa90]
mov ecx, eax
xor ecx, 0xe0
and eax, 0x60
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0x890]
mov byte [esp + ecx + 0x90], al
inc dword [esp + 0x890]
mov eax, dword [esp + 0x890]
cmp eax, 0xa8
jb 0x41f5b0
lea edx, [esp + 0x10bc]
lea eax, [esp + 0x90]
mov ecx, 0x28
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x130]
mov ecx, 1
lea edi, [esp + 0x115c]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x90], 0x43bb4191
mov dword [esp + 0x94], 0x5fae5dbf
mov dword [esp + 0x98], 0x5bd559af
mov dword [esp + 0x9c], 0x57aa55ab
mov dword [esp + 0xa0], 0x53b451da
mov dword [esp + 0xa4], 0x6f926d83
mov dword [esp + 0xa8], 0x6b936990
mov dword [esp + 0xac], 0x679b6597
mov dword [esp + 0xb0], 0x63536182
mov dword [esp + 0xb4], 0x7f4a7dad
mov dword [esp + 0xb8], 0x7b9c794e
mov dword [esp + 0xbc], 0x77fb75ab
mov dword [esp + 0xc0], 0x738471fa
mov dword [esp + 0xc4], 0xffd0d83
mov dword [esp + 0xc8], 0xbec09fb
mov dword [esp + 0xcc], 0x7f605da
mov dword [esp + 0xd0], 0x3fe01f7
mov dword [esp + 0xd4], 0x1fe81df9
mov dword [esp + 0xd8], 0x1b9519e1
mov dword [esp + 0xdc], 0x17c515fe
mov dword [esp + 0xe0], 0x139c1199
mov dword [esp + 0xe4], 0x2fdd2de6
mov dword [esp + 0xe8], 0x2bdd29df
mov dword [esp + 0xec], 0x27ef25ce
mov dword [esp + 0xf0], 0x23e921eb
mov dword [esp + 0xf4], 0x3fe13ded
mov dword [esp + 0xf8], 0x3be639e0
mov dword [esp + 0xfc], 0x37f8350a
mov dword [esp + 0x100], 0x33fd3105
mov dword [esp + 0x104], 0xcfffcd01
mov dword [esp + 0x108], 0xcb34c9fd
mov dword [esp + 0x10c], 0xc706c507
mov dword [esp + 0x110], 0xc308c10e
mov dword [esp + 0x114], 0xdfecdd01
mov dword [esp + 0x118], 0xdbebd9ee
mov dword [esp + 0x11c], 0xd718d5ea
mov dword [esp + 0x120], 0xd3e2d114
mov dword [esp + 0x124], 0xef22ed11
mov dword [esp + 0x128], 0xeb21e920
mov dword [esp + 0x12c], 0xe700e524
mov word [esp + 0x130], 0xe1e6
lea eax, [esp + 0x130]
mov dword [eax + 5], 0
mov dword [eax + 2], 0
mov dword [esp + 0x890], 0
mov eax, dword [esp + 0x890]
cmp eax, 0xa8
ja 0x41f8ac
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x890]
mov ecx, dword [esp + 0x890]
movzx ecx, byte [esp + ecx + 0x90]
mov esi, 0xf4
sub esi, eax
add eax, ecx
not ecx
or esi, ecx
lea eax, [eax + esi*2]
add eax, 0x9ab40b0d
mov dword [esp + 0xa90], eax
mov eax, dword [esp + 0xa90]
mov ecx, eax
xor ecx, 0xb2
and eax, 0x32
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0x890]
mov byte [esp + ecx + 0x90], al
inc dword [esp + 0x890]
mov eax, dword [esp + 0x890]
cmp eax, 0xa9
jb 0x41f840
lea eax, [esp + 0x101a]
lea esi, [esp + 0x90]
mov ecx, 0x28
mov edi, eax
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea esi, [esp + 0x130]
mov ecx, 1
lea edi, [esp + 0x10ba]
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
lea ecx, [esp + 0xe92]
mov dword [esp + 0x7c], ecx
lea ecx, [esp + 0xf34]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], eax
xor ecx, ecx
xor eax, eax
cmp ecx, 5
setne al
jmp dword [eax*4 + 0x442ec0]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x90], 0xb2b5b4b7
lea ecx, [esp + 0x130]
mov dword [ecx - 0x99], 0
mov dword [ecx - 0x9c], 0
mov dword [esp + 0x890], 0
mov ecx, dword [esp + 0x890]
cmp ecx, 0xa
ja 0x41f9cf
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x890]
mov edx, dword [esp + 0x890]
movzx esi, byte [esp + edx + 0x90]
mov edx, 0xd438c116
sub edx, ecx
add ecx, 0xe9
and ecx, esi
or edx, esi
not edx
add edx, esi
sub edx, ecx
mov dword [esp + 0xa90], edx
mov ecx, dword [esp + 0xa90]
add cl, 0xa1
mov edx, dword [esp + 0x890]
mov byte [esp + edx + 0x90], cl
inc dword [esp + 0x890]
mov ecx, dword [esp + 0x890]
cmp ecx, 0xb
jb 0x41f970
mov ecx, dword [0x4476a0]
test ecx, ecx
je 0x420310
mov edx, dword [esp + 0x90]
xor esi, esi
mov edi, dword [0x4476a4]
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x4202f6
inc esi
cmp ecx, esi
jne 0x41f9f0
jmp 0x420310
mov ecx, dword [esp + 0x64]
inc ecx
xor eax, eax
cmp ecx, 5
setne al
jmp dword [eax*4 + 0x442ec0]
mov dword [esp + 0x64], ecx
mov eax, dword [esp + ecx*4 + 0x7c]
mov dword [esp + 0x90], 0xfba8f996
mov dword [esp + 0x94], 0xffacfdaa
mov dword [esp + 0x98], 0xf3a0f1ae
mov dword [esp + 0x9c], 0xf79cf5a2
mov word [esp + 0xa0], 0xe9f6
lea ecx, [esp + 0x130]
mov word [ecx - 0x82], 0
mov dword [ecx - 0x86], 0
mov dword [ecx - 0x8a], 0
mov dword [ecx - 0x8e], 0
mov dword [esp + 0x890], 0
mov ecx, dword [esp + 0x890]
cmp ecx, 0x1f
ja 0x41fb17
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x890]
mov edx, dword [esp + 0x890]
movzx edx, byte [esp + edx + 0x90]
lea esi, [ecx + edx]
add esi, 0xac1f7b5f
add ecx, 0xac1f7b5f
and ecx, edx
add ecx, ecx
mov edx, ecx
xor edx, esi
not ecx
and ecx, esi
add ecx, ecx
sub ecx, edx
mov dword [esp + 0xa90], ecx
mov ecx, dword [esp + 0xa90]
add cl, 0x67
mov edx, dword [esp + 0x890]
mov byte [esp + edx + 0x90], cl
inc dword [esp + 0x890]
mov ecx, dword [esp + 0x890]
cmp ecx, 0x20
jb 0x41fab0
movzx ecx, word [eax]
lea edx, [esp + 0x890]
test cx, cx
je 0x41fb41
add eax, 2
lea edx, [esp + 0x890]
mov word [edx], cx
add edx, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x41fb30
mov word [edx], 0
movzx eax, word [esp + 0x90]
test ax, ax
je 0x41fb71
lea ecx, [esp + 0x92]
nop
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41fb60
mov word [edx], 0
mov cx, 0x31
xor eax, eax
cmp cx, 0x35
setb al
mov dword [esp + 0x4c], edx
jmp dword [eax*4 + 0x442ec8]
mov ecx, dword [esp + 0x68]
mov eax, ecx
xor eax, 1
and ecx, 1
lea ecx, [eax + ecx*2]
xor eax, eax
cmp cx, 0x35
setb al
mov edx, dword [esp + 0x4c]
jmp dword [eax*4 + 0x442ec8]
mov word [edx - 2], cx
lea eax, [esp + 0x58]
mov esi, ecx
lea ecx, [esp + 0x890]
push dword [esp + 0x5c]
push 0
push 0x20019
push eax
push ecx
call fcn.0043c280
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x442ed0]
mov eax, esi
xor eax, 1
and esi, 1
lea esi, [eax + esi*2]
xor eax, eax
cmp si, 0x35
setb al
mov edx, dword [esp + 0x4c]
mov ecx, esi
jmp dword [eax*4 + 0x442ec8]
mov dword [esp + 0x68], esi
mov dword [esp + 0x70], 0x800
mov dword [esp + 0x3c], 0x400
mov dword [esp + 0x14], 0
xor edx, edx
jmp 0x41fc48
mov dword [esi], 0x20003a
add esi, 4
mov al, 1
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x1c]
inc edx
mov dword [esp + 8], esi
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0xa94]
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0xa0]
push eax
mov dword [esp + 0x30], edx
push edx
push dword [esp + 0x70]
call fcn.0043c9f0
add esp, 0x1c
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x442ed8]
mov eax, dword [esp + 0x14]
and al, 1
movzx ecx, al
xor eax, eax
jmp dword [ecx*4 + 0x442ee0]
xor ecx, ecx
cmp dword [esp + 0x54], 1
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x442ee8]
movzx eax, al
jmp dword [eax*4 + 0x442ef0]
mov dword [esp + 0x20], 0x833d8145
mov dword [esp + 0x24], 0x9f2d9d3f
mov dword [esp + 0x28], 0x9b2e9911
mov dword [esp + 0x2c], 0x97949516
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x17
ja 0x41fd5b
nop
nop
nop
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 - 0x2acd0a95]
lea esi, [eax + 0x6b]
mov edi, edx
and edi, esi
and edi, ecx
xor edx, esi
and edx, ecx
add eax, ecx
add eax, 0xd532f56b
lea ecx, [edx + edi*2]
sub eax, ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
add al, 0x13
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x18
jb 0x41fd10
movzx esi, word [esp + 0x20]
lea eax, [esp + 0x90]
test si, si
je 0x41fdac
lea ecx, [esp + 0x20]
lea eax, [esp + 0x90]
mov edx, eax
jmp 0x41fd88
movzx esi, word [ecx]
test si, si
je 0x41fdac
movzx edi, word [edx]
test di, di
je 0x41fdaa
add edx, 2
add ecx, 2
lea ebx, [eax + 2]
cmp di, si
je 0x41fda2
mov eax, ebx
mov edx, ebx
je 0x41fd80
lea ecx, [esp + 0x20]
jmp 0x41fd80
xor eax, eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442ef0]
xor ecx, ecx
cmp dword [esp + 0x54], 3
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x442f18]
jmp dword [0x442f24]
jmp dword [0x442f04]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x14], eax
shr eax, 1
mov dword [esp + 0xc], eax
mov eax, dword [esp + 8]
jmp dword [0x442f08]
cmp dword [esp + 0x14], 2
jb case.0x41f919.18
mov edx, dword [esp + 0xc]
lea ecx, [edx - 1]
mov dword [esp + 0x6c], ecx
mov ecx, edx
lea edi, [esp + 0xa90]
mov esi, eax
and ecx, 3
je 0x41fe58
lea edi, [esp + 0xa90]
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
dec edx
movzx ebx, word [edi]
xor eax, eax
test bx, bx
setne al
lea edi, [edi + eax*2]
mov word [esi], bx
add esi, 2
dec ecx
jne 0x41fe40
cmp dword [esp + 0x6c], 3
mov eax, dword [esp + 8]
jb case.0x41f919.18
xor ebx, ebx
mov dword [esp + 0x10], edx
nop
nop
nop
nop
nop
nop
nop
movzx eax, word [edi]
xor ecx, ecx
test ax, ax
setne cl
mov word [esi + ebx*2], ax
lea eax, [edi + ecx*2]
movzx ecx, word [edi + ecx*2]
xor edx, edx
test cx, cx
setne dl
mov word [esi + ebx*2 + 2], cx
lea ecx, [eax + edx*2]
movzx eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
mov word [esi + ebx*2 + 4], ax
lea eax, [ecx + edx*2]
movzx ecx, word [ecx + edx*2]
xor edx, edx
test cx, cx
setne dl
lea edi, [eax + edx*2]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 8]
mov word [esi + ebx*2 + 6], cx
add ebx, 4
cmp edx, ebx
jne 0x41fe70
jmp case.0x41f919.18
jmp dword [0x442f14]
mov esi, eax
cmp dword [esp + 0x14], 2
jb 0x41fed0
mov ecx, dword [esp + 0xc]
lea edx, [ecx - 1]
mov dword [esp + 0x10], edx
lea edi, [esp + 0xa90]
mov edx, ecx
mov esi, eax
test cl, 3
je 0x41ff28
mov edx, dword [esp + 0xc]
mov ecx, edx
and ecx, 3
lea edi, [esp + 0xa90]
mov esi, dword [esp + 8]
nop
nop
dec edx
movzx eax, word [edi]
xor ebx, ebx
test ax, ax
setne bl
lea edi, [edi + ebx*2]
mov word [esi], ax
add esi, 2
dec ecx
jne 0x41ff10
cmp dword [esp + 0x10], 3
mov eax, dword [esp + 8]
jb 0x41fed0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, word [edi]
xor ecx, ecx
test ax, ax
setne cl
mov word [esi], ax
lea eax, [edi + ecx*2]
movzx ecx, word [edi + ecx*2]
xor ebx, ebx
test cx, cx
setne bl
mov word [esi + 2], cx
lea ecx, [eax + ebx*2]
movzx eax, word [eax + ebx*2]
xor ebx, ebx
test ax, ax
setne bl
mov word [esi + 4], ax
lea eax, [ecx + ebx*2]
movzx ecx, word [ecx + ebx*2]
xor ebx, ebx
test cx, cx
setne bl
lea edi, [eax + ebx*2]
mov word [esi + 6], cx
add esi, 8
add edx, 0xfffffffc
jne 0x41ff40
mov eax, dword [esp + 8]
jmp 0x41fed0
movzx eax, al
jmp dword [eax*4 + 0x442f30]
mov edx, dword [esp + 0x1c]
inc edx
jmp 0x41fc48
mov eax, dword [esp + 0x3c]
cmp eax, 2
mov edx, dword [esp + 0x1c]
jb 0x42008a
shr eax, 1
lea ecx, [eax - 1]
mov esi, eax
and esi, 3
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0xa90]
je 0x42000a
mov edx, dword [esp + 8]
nop
nop
nop
nop
dec eax
movzx edi, word [ecx]
xor ebx, ebx
test di, di
setne bl
lea ecx, [ecx + ebx*2]
mov word [edx], di
add edx, 2
dec esi
jne 0x41fff0
jmp 0x42000e
mov edx, dword [esp + 8]
mov dword [esp + 8], edx
cmp dword [esp + 0x10], 3
mov edx, dword [esp + 0x1c]
jb 0x42008a
mov edx, dword [esp + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [ecx]
xor ebx, ebx
test si, si
setne bl
mov word [edx], si
lea esi, [ecx + ebx*2]
movzx ecx, word [ecx + ebx*2]
xor ebx, ebx
test cx, cx
setne bl
mov word [edx + 2], cx
lea ecx, [esi + ebx*2]
movzx esi, word [esi + ebx*2]
xor ebx, ebx
test si, si
setne bl
mov word [edx + 4], si
lea esi, [ecx + ebx*2]
movzx edi, word [ecx + ebx*2]
xor ecx, ecx
test di, di
setne cl
lea ecx, [esi + ecx*2]
mov word [edx + 6], di
add edx, 8
add eax, 0xfffffffc
jne 0x420030
mov dword [esp + 8], edx
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 8]
mov word [eax], 0xa
add eax, 2
mov dword [esp + 8], eax
mov al, 1
mov dword [esp + 0x50], eax
inc edx
jmp 0x41fc48
mov dword [esp + 0x20], 0x7b1b7936
mov dword [esp + 0x24], 0x7f097d0f
mov dword [esp + 0x28], 0x730171f7
mov dword [esp + 0x2c], 0x77107500
mov word [esp + 0x30], 0x8976
lea eax, [esp + 0x32]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x17
ja 0x42013b
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 - 0x60bb7791]
add eax, 0x6f
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
add al, 0xf7
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x18
jb 0x420100
movzx esi, word [esp + 0x20]
lea eax, [esp + 0x90]
test si, si
je 0x42018c
lea ecx, [esp + 0x20]
lea eax, [esp + 0x90]
mov edx, eax
jmp 0x420168
movzx esi, word [ecx]
test si, si
je 0x42018c
movzx edi, word [edx]
test di, di
je 0x42018a
add edx, 2
add ecx, 2
lea ebx, [eax + 2]
cmp di, si
je 0x420182
mov eax, ebx
mov edx, ebx
je 0x420160
lea ecx, [esp + 0x20]
jmp 0x420160
xor eax, eax
test eax, eax
setne al
jmp dword [0x442f2c]
mov dword [esp + 0x20], 0x7b1b7936
mov dword [esp + 0x24], 0x7f097d0f
mov dword [esp + 0x28], 0x730171f7
mov dword [esp + 0x2c], 0x77107500
mov word [esp + 0x30], 0x8976
lea eax, [esp + 0x32]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x17
ja case.0x41f919.25
nop
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 - 0x60bb7791]
add eax, 0x6f
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
add al, 0xf7
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x18
jb 0x4201f0
jmp case.0x41f919.25
mov eax, dword [esp + 0x58]
mov dword [esp + 0x20], 0xb2b5b4b7
lea ecx, [esp + 0x32]
mov dword [ecx - 0xb], 0
mov dword [ecx - 0xe], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xa
ja 0x4202a4
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx esi, byte [esp + edx + 0x20]
mov edx, 0xd438c116
sub edx, ecx
add ecx, 0xe9
and ecx, esi
or edx, esi
not edx
add edx, esi
sub edx, ecx
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x18]
add cl, 0xa1
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x20], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xb
jb 0x420260
mov ecx, dword [0x4476a0]
test ecx, ecx
je 0x41fb90
mov edx, dword [esp + 0x20]
xor esi, esi
mov edi, dword [0x4476a4]
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x4202d3
inc esi
cmp ecx, esi
jne 0x4202c0
jmp 0x41fb90
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je 0x41fb90
push eax
push 1
push dword [0x4476a8]
push ecx
call fcn.00439650
add esp, 0x10
jmp 0x41fb90
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je 0x420310
push eax
push 1
push dword [0x4476a8]
push ecx
call fcn.00439650
add esp, 0x10
mov eax, dword [case.0x41f919.32]
mov edi, dword [esp + 0x60]
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [case.0x41f919.36]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov esi, dword [esp + 0x48]
jmp dword [0x442f58]
push edi
call fcn.00408ce0
add esp, 4
inc esi
xor eax, eax
cmp esi, dword [esp + 0x40]
setb al
jmp dword [eax*4 + 0x442e98]
mov eax, dword [case.0x41ea49.8]
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [esp + 8]
mov word [eax], 0
mov eax, dword [esp + 0x50]
mov ecx, eax
and cl, 1
movzx ecx, cl
jmp dword [ecx*4 + 0x442f68]
movzx ecx, word [esp + 0x1200]
test cx, cx
je 0x4204b4
lea eax, [esp + 0x1200]
xor esi, esi
jmp 0x4203ae
add esi, edi
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
je 0x4203d8
cmp eax, dword [esp + 8]
jae 0x4203d8
movzx ebx, cx
xor ecx, ecx
cmp ebx, 0x800
setb dl
mov edi, 1
cmp ebx, 0x80
jb 0x4203a0
mov cl, dl
xor ecx, 3
mov edi, ecx
jmp 0x4203a0
lea edi, [esi + 1]
push edi
call fcn.00408cd0
add esp, 4
test esi, esi
mov dword [esp + 0xc], eax
jle 0x4204c8
lea ecx, [eax + esi]
mov dword [esp + 0x14], ecx
add edi, eax
mov dword [esp + 0x10], edi
lea edx, [esp + 0x1200]
mov edi, eax
mov eax, dword [esp + 8]
jmp 0x420426
mov byte [edi], cl
mov ebx, 1
add edx, 2
add edi, ebx
cmp edi, dword [esp + 0x14]
jae 0x4204ca
cmp edx, eax
jae 0x4204ca
movzx ecx, word [edx]
test cx, cx
je 0x4204ca
cmp cx, 0x7f
jbe 0x420410
mov eax, edi
not eax
add eax, dword [esp + 0x10]
cmp eax, 2
jb 0x42047a
movzx ebx, cx
cmp ebx, 0x7ff
ja 0x42047a
mov eax, ecx
shr eax, 6
add al, 0xc0
mov byte [edi], al
mov eax, ecx
not eax
or eax, 0x3f
add eax, ecx
add al, 0x81
mov byte [edi + 1], al
mov ebx, 2
mov eax, dword [esp + 8]
jmp 0x420417
xor ebx, ebx
cmp eax, 3
mov eax, dword [esp + 8]
jb 0x420417
movzx ebx, cx
mov eax, ebx
shr eax, 0xc
or al, 0xe0
mov byte [edi], al
mov eax, dword [esp + 8]
shr ebx, 6
and bl, 0x3f
or bl, 0x80
mov byte [edi + 1], bl
and cl, 0x3f
or cl, 0x80
mov byte [edi + 2], cl
mov ebx, 3
jmp 0x420417
xor esi, esi
push 1
call fcn.00408cd0
add esp, 4
mov edi, eax
mov dword [esp + 0xc], eax
jmp 0x4204ca
mov edi, eax
mov byte [edi], 0
mov dword [esp + 0x90], 0xcfcac919
mov dword [esp + 0x94], 0xdb27262d
mov dword [esp + 0x98], 0xd0d4d629
mov dword [esp + 0x9c], 0xd3d33a1b
mov dword [esp + 0xa0], 0x20dddedc
mov dword [esp + 0xa4], 0xe0e40523
mov dword [esp + 0xa8], 0x1ee6181e
mov dword [esp + 0xac], 0xe7e22bef
mov word [esp + 0xb0], 0x79e4
mov dword [esp + 0xb2], 0
mov dword [esp + 0xb6], 0
mov byte [esp + 0xba], 0
mov dword [esp + 0x890], 0
mov eax, dword [esp + 0x890]
cmp eax, 0x2a
ja 0x4205ea
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x890]
mov eax, dword [esp + 0x890]
movzx edi, byte [esp + eax + 0x90]
lea eax, [edx + 0x5fce984c]
lea ecx, [edx + edi]
add ecx, 0x5fce984c
add edx, 0x4c
and edx, edi
and eax, edi
add eax, edx
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esp + 0xa90], eax
mov eax, dword [esp + 0xa90]
mov ecx, eax
or ecx, 0xeb
and eax, 0xeb
add eax, ecx
inc al
mov ecx, dword [esp + 0x890]
mov byte [esp + ecx + 0x90], al
inc dword [esp + 0x890]
mov eax, dword [esp + 0x890]
cmp eax, 0x2b
jb 0x420570
lea eax, [esp + 0x90]
mov ecx, dword [ebp + 8]
push esi
mov esi, dword [esp + 0x10]
push esi
push eax
call fcn.00409690
jmp dword [0x442f70]
push esi
mov esi, eax
call fcn.00408ce0
mov eax, esi
add esp, 4
and al, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
int3