Function at 0x4235d4
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.00408af0
mov dword [esp + 0x1200], 0xb3e0b11c
mov dword [esp + 0x1204], 0xb7f1b5f1
mov dword [esp + 0x1208], 0x8bd989d1
mov dword [esp + 0x120c], 0x8fdc8dd8
mov dword [esp + 0x1210], 0x832e8129
mov dword [esp + 0x1214], 0x87d585d1
mov dword [esp + 0x1218], 0x9bc899dd
mov dword [esp + 0x121c], 0x9d9c
mov byte [esp + 0x1220], 0
mov dword [esp + 0xa90], 0
mov eax, dword [esp + 0xa90]
cmp eax, 0x20
ja 0x41ea4a
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xa90]
mov ecx, dword [esp + 0xa90]
movzx ecx, byte [esp + ecx + 0x1200]
mov edx, eax
and edx, 0xcbb64e18
xor eax, 0xcbb64e18
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x90], edx
mov eax, dword [esp + 0x90]
mov ecx, eax
or ecx, 0x57
and eax, 0x57
add eax, ecx
inc al
mov ecx, dword [esp + 0xa90]
mov byte [esp + ecx + 0x1200], al
inc dword [esp + 0xa90]
mov eax, dword [esp + 0xa90]
cmp eax, 0x21
jb 0x41e9e0
lea eax, [esp + 0x24]
lea esi, [esp + 0x1200]
push 0
push 0
push 0x20019
push eax
push esi
call fcn.0043d430
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x444ec0]
mov dword [esp + 4], esi
lea eax, [esp + 0x78]
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.0043d920
add esp, 0x24
mov ecx, dword [case.0x41ea6b.4]
nop
nop
jmp ecx
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444ed8]
xor eax, eax
jmp 0x4205c3
xor eax, eax
jmp case.0x41f9e7.44
mov eax, dword [case.0x41ea6b.10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor ecx, ecx
lea eax, [esp + 0x92]
mov dword [esp + 0x60], eax
xor eax, eax
mov dword [esp + 0x54], 0
cmp ecx, dword [esp + 0x20]
setb al
xor esi, esi
jmp dword [eax*4 + 0x444ef0]
jmp dword [0x444f04]
mov edx, dword [esp + 4]
mov word [edx], 0
mov eax, dword [esp + 0x54]
mov ecx, eax
and cl, 1
movzx ecx, cl
jmp dword [ecx*4 + 0x444fb0]
movzx ecx, word [esp + 0x1200]
test cx, cx
je 0x420478
lea eax, [esp + 0x1200]
xor ebx, ebx
jmp 0x420382
inc esi
xor eax, eax
cmp esi, dword [esp + 0x20]
setb al
jmp dword [eax*4 + 0x444ef0]
mov dword [esp + 0x50], esi
mov edi, dword [esp + 0x78]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x41eb77
mov eax, 0xffffffff
push eax
call fcn.00408b20
add esp, 4
mov dword [esp + 0x74], edi
lea ecx, [esp + 0x74]
push ecx
mov dword [esp + 0x50], eax
push eax
mov esi, dword [esp + 0x58]
push esi
push dword [esp + 0x30]
call fcn.0043d580
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444f08]
lea eax, [esp + 0x1c]
push dword [esp + 0x24]
push 0
push 0x20019
push eax
push dword [esp + 0x5c]
call fcn.0043d430
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444f10]
mov dword [esp + 0x90], 0x23bb21d1
mov dword [esp + 0x94], 0xdf4eddbf
mov dword [esp + 0x98], 0xdb55d94f
mov dword [esp + 0x9c], 0xd74ad54b
mov dword [esp + 0xa0], 0xd334d15a
mov dword [esp + 0xa4], 0xcf57cd3b
mov dword [esp + 0xa8], 0xcb54c958
mov dword [esp + 0xac], 0xc74dc55b
mov dword [esp + 0xb0], 0xc3e0c14b
mov dword [esp + 0xb4], 0xff63fd35
mov dword [esp + 0xb8], 0xfb75f973
mov dword [esp + 0xbc], 0xf76df519
mov dword [esp + 0xc0], 0xf366f16d
mov dword [esp + 0xc4], 0xefcced6b
mov dword [esp + 0xc8], 0xeb67e903
mov dword [esp + 0xcc], 0xe769e508
mov dword [esp + 0xd0], 0xe36de16d
mov dword [esp + 0xd4], 0x9f039d6e
mov dword [esp + 0xd8], 0x9b7c9909
mov dword [esp + 0xdc], 0x9706956a
mov dword [esp + 0xe0], 0x930e9107
mov dword [esp + 0xe4], 0x8f188d09
mov dword [esp + 0xe8], 0x8b058911
mov dword [esp + 0xec], 0x874f856e
mov dword [esp + 0xf0], 0x8349814b
mov dword [esp + 0xf4], 0xbf41bd4d
mov dword [esp + 0xf8], 0xbb46b940
mov dword [esp + 0xfc], 0xb778b56a
mov dword [esp + 0x100], 0xb37db165
mov dword [esp + 0x104], 0xaf7fad61
mov dword [esp + 0x108], 0xab34a97d
mov dword [esp + 0x10c], 0xa766a567
mov dword [esp + 0x110], 0xa368a16e
mov dword [esp + 0x114], 0x5f8c5d61
mov dword [esp + 0x118], 0x5b8b598e
mov dword [esp + 0x11c], 0x5798558a
mov dword [esp + 0x120], 0x53825194
mov dword [esp + 0x124], 0x4f824d91
mov dword [esp + 0x128], 0x4b814980
mov dword [esp + 0x12c], 0x47a04584
lea eax, [esp + 0x130]
mov word [esp + 0x130], 0x4146
mov word [esp + 0x13e], 0
mov dword [esp + 0x13a], 0
mov dword [esp + 0x136], 0
mov dword [esp + 0x132], 0
mov dword [esp + 0x890], 0
mov ecx, dword [esp + 0x890]
cmp ecx, 0xaf
ja 0x41ee59
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 edx, byte [esp + edx + 0x90]
lea esi, [ecx + 0xfb]
and esi, edx
add ecx, edx
add esi, esi
sub ecx, esi
add ecx, 0xd4cde5fb
mov dword [esp + 0xa90], ecx
mov ecx, dword [esp + 0xa90]
mov edx, ecx
xor edx, 0x22
and ecx, 0x22
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esp + 0x890]
mov byte [esp + edx + 0x90], cl
inc dword [esp + 0x890]
mov ecx, dword [esp + 0x890]
cmp ecx, 0xb0
jb 0x41edf0
lea edi, [esp + 0xf34]
lea edx, [esp + 0x90]
mov ecx, 0x28
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xfd4]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x90], 0x9b3399cd
mov dword [esp + 0x94], 0xe754e547
mov dword [esp + 0x98], 0xe351e157
mov dword [esp + 0x9c], 0xef40ed5b
mov dword [esp + 0xa0], 0xeb4ee954
mov dword [esp + 0xa4], 0xf75ff5ab
mov dword [esp + 0xa8], 0xf35ef146
mov dword [esp + 0xac], 0xff41fd4b
mov dword [esp + 0xb0], 0xfb9af94b
mov dword [esp + 0xb4], 0xc79ac592
mov dword [esp + 0xb8], 0xc381c164
mov dword [esp + 0xbc], 0xcf7ccd71
mov dword [esp + 0xc0], 0xcb67c97a
mov dword [esp + 0xc4], 0xd76ad562
mov dword [esp + 0xc8], 0xd37fd18e
mov dword [esp + 0xcc], 0xdf6ddd6e
mov dword [esp + 0xd0], 0xdb6dd971
mov dword [esp + 0xd4], 0x27822592
mov dword [esp + 0xd8], 0x238b217f
mov dword [esp + 0xdc], 0x2f822d9a
mov dword [esp + 0xe0], 0x2b95299f
mov dword [esp + 0xe4], 0x37563587
mov dword [esp + 0xe8], 0x339f3165
mov dword [esp + 0xec], 0x3f8d3d8f
mov dword [esp + 0xf0], 0x3b953999
mov dword [esp + 0xf4], 0x7b005ad
mov dword [esp + 0xf8], 0x36201af
mov dword [esp + 0xfc], 0xfb30d5f
mov dword [esp + 0x100], 0xbb909aa
mov dword [esp + 0x104], 0x17a515ad
mov dword [esp + 0x108], 0x13bf11ac
mov dword [esp + 0x10c], 0x1fba1da9
mov dword [esp + 0x110], 0x1ba81948
mov dword [esp + 0x114], 0x67c865d3
mov dword [esp + 0x118], 0x63d661c9
mov dword [esp + 0x11c], 0x6fdd6dc1
mov dword [esp + 0x120], 0x6b3d69cc
mov dword [esp + 0x124], 0x77ca75c9
mov dword [esp + 0x128], 0x73c571c4
mov dword [esp + 0x12c], 0x7fd57dcb
mov dword [esp + 0x130], 0x7b0379dc
mov dword [esp + 0x134], 0x47394537
mov dword [esp + 0x138], 0x4301413d
mov dword [esp + 0x13c], 0x4f004d02
mov dword [esp + 0x140], 0x4b364938
mov dword [esp + 0x144], 0x57255525
mov dword [esp + 0x148], 0x53235121
mov dword [esp + 0x14c], 0x5ff25d2d
mov dword [esp + 0x150], 0x5b18592b
mov dword [esp + 0x154], 0xa7dea5dc
mov dword [esp + 0x158], 0xa3d2a1e1
mov dword [esp + 0x15c], 0xafdfaddc
mov dword [esp + 0x160], 0xabd6a9d8
mov dword [esp + 0x164], 0xb7c4b5f6
mov dword [esp + 0x168], 0xb3ccb1f1
mov dword [esp + 0x16c], 0xbfc1bdc2
mov dword [esp + 0x170], 0xbb1eb9c6
lea eax, [esp + 0x174]
mov word [esp + 0x174], 0x8584
mov word [esp + 0x17e], 0
mov dword [esp + 0x17a], 0
mov dword [esp + 0x176], 0
mov dword [esp + 0x890], 0
mov ecx, dword [esp + 0x890]
cmp ecx, 0xef
ja 0x41f1b6
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 edx, byte [esp + edx + 0x90]
lea esi, [ecx + 0x3c]
add ecx, edx
and esi, edx
add esi, esi
sub ecx, esi
add ecx, 0x3575203c
mov dword [esp + 0xa90], ecx
mov ecx, dword [esp + 0xa90]
mov edx, ecx
xor edx, 0x5b
and ecx, 0x5b
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esp + 0x890]
mov byte [esp + edx + 0x90], cl
inc dword [esp + 0x890]
mov ecx, dword [esp + 0x890]
cmp ecx, 0xf0
jb 0x41f150
lea edi, [esp + 0xfd6]
lea edx, [esp + 0x90]
mov ecx, 0x39
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x10ba]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x90], 0xabc3add9
mov dword [esp + 0x94], 0xd748a9c7
mov dword [esp + 0x98], 0xd34dd547
mov dword [esp + 0x9c], 0xdfb4d143
mov dword [esp + 0xa0], 0xdbbedd40
mov dword [esp + 0xa4], 0xc7acd9ab
mov dword [esp + 0xa8], 0xc3abc5ae
mov dword [esp + 0xac], 0xcfa3c1af
mov dword [esp + 0xb0], 0xcb9bcda8
mov dword [esp + 0xb4], 0xf7a4c997
mov dword [esp + 0xb8], 0xf396f5a4
mov dword [esp + 0xbc], 0xff63f183
mov dword [esp + 0xc0], 0xfb6efd60
mov dword [esp + 0xc4], 0xe775f96b
mov dword [esp + 0xc8], 0xe386e573
mov dword [esp + 0xcc], 0xef70e190
mov dword [esp + 0xd0], 0xeb80ed7f
mov dword [esp + 0xd4], 0x1782e981
mov dword [esp + 0xd8], 0x138d1579
mov dword [esp + 0xdc], 0x1f6d1174
mov dword [esp + 0xe0], 0x1b861d81
mov dword [esp + 0xe4], 0x795198c
mov dword [esp + 0xe8], 0x3950597
mov dword [esp + 0xec], 0xf570164
mov dword [esp + 0xf0], 0xb510d53
mov dword [esp + 0xf4], 0x37790955
mov dword [esp + 0xf8], 0x3378357e
mov dword [esp + 0xfc], 0x3f623160
mov dword [esp + 0x100], 0x3b653d6d
mov dword [esp + 0x104], 0x27773969
mov dword [esp + 0x108], 0x234e2575
mov dword [esp + 0x10c], 0x2f60217f
mov dword [esp + 0x110], 0x2b722d74
mov dword [esp + 0x114], 0x57062969
mov dword [esp + 0x118], 0x53035504
mov dword [esp + 0x11c], 0x5f025100
mov dword [esp + 0x120], 0x5b045d12
mov dword [esp + 0x124], 0x471c5919
mov dword [esp + 0x128], 0x4319451e
mov dword [esp + 0x12c], 0x4f2a411a
lea eax, [esp + 0x130]
mov word [esp + 0x130], 0x4d4c
mov word [esp + 0x13a], 0
mov dword [esp + 0x136], 0
mov dword [esp + 0x132], 0
mov dword [esp + 0x890], 0
mov ecx, dword [esp + 0x890]
cmp ecx, 0xab
ja 0x41f450
nop
nop
nop
nop
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, 0x42c223ba
add ecx, 0x42c223ba
and ecx, edx
add ecx, ecx
sub esi, ecx
mov dword [esp + 0xa90], esi
mov ecx, dword [esp + 0xa90]
add cl, 0xea
mov edx, dword [esp + 0x890]
mov byte [esp + edx + 0x90], cl
inc dword [esp + 0x890]
mov ecx, dword [esp + 0x890]
cmp ecx, 0xac
jb 0x41f3f0
lea edi, [esp + 0xe92]
lea edx, [esp + 0x90]
mov ecx, 0x28
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xf32]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x90], 0xa33ba1d1
mov dword [esp + 0x94], 0xdf4edd3f
mov dword [esp + 0x98], 0xdb55d94f
mov dword [esp + 0x9c], 0xd74ad54b
mov dword [esp + 0xa0], 0xd3b4d15a
mov dword [esp + 0xa4], 0xcf52cda3
mov dword [esp + 0xa8], 0xcb53c950
mov dword [esp + 0xac], 0xc75bc557
mov dword [esp + 0xb0], 0xc393c1a2
mov dword [esp + 0xb4], 0xffaafd8e
mov dword [esp + 0xb8], 0xfb9cf9ae
mov dword [esp + 0xbc], 0xf77bf58b
mov dword [esp + 0xc0], 0xf364f17a
mov dword [esp + 0xc4], 0xef7ded63
mov dword [esp + 0xc8], 0xeb8ce97b
mov dword [esp + 0xcc], 0xe776e59a
mov dword [esp + 0xd0], 0xe37ee177
mov dword [esp + 0xd4], 0x1f881d79
mov dword [esp + 0xd8], 0x1b951981
mov dword [esp + 0xdc], 0x1765157e
mov dword [esp + 0xe0], 0x139c1199
mov dword [esp + 0xe4], 0xf9d0d86
mov dword [esp + 0xe8], 0xb9d099f
mov dword [esp + 0xec], 0x74f056e
mov dword [esp + 0xf0], 0x349014b
mov dword [esp + 0xf4], 0x3f413d4d
mov dword [esp + 0xf8], 0x3b463940
mov dword [esp + 0xfc], 0x3778356a
mov dword [esp + 0x100], 0x337d3165
mov dword [esp + 0x104], 0x2f7f2d61
mov dword [esp + 0x108], 0x2bb4297d
mov dword [esp + 0x10c], 0x27662567
mov dword [esp + 0x110], 0x2368216e
mov dword [esp + 0x114], 0x5f0c5d61
mov dword [esp + 0x118], 0x5b0b590e
mov dword [esp + 0x11c], 0x5718550a
mov dword [esp + 0x120], 0x53025114
mov dword [esp + 0x124], 0x4f024d11
mov dword [esp + 0x128], 0x4b014900
mov dword [esp + 0x12c], 0x47204504
lea eax, [esp + 0x130]
mov word [esp + 0x130], 0x4146
mov dword [esp + 0x139], 0
mov dword [esp + 0x136], 0
mov dword [esp + 0x132], 0
mov dword [esp + 0x890], 0
mov ecx, dword [esp + 0x890]
cmp ecx, 0xac
ja 0x41f6e4
nop
nop
mov ecx, dword [esp + 0x890]
mov edx, dword [esp + 0x890]
movzx edx, byte [esp + edx + 0x90]
lea esi, [ecx - 0x77e26ac5]
add ecx, 0x3b
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 0xa90], esi
mov ecx, dword [esp + 0xa90]
mov edx, ecx
xor edx, 0x62
and ecx, 0x62
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esp + 0x890]
mov byte [esp + edx + 0x90], cl
inc dword [esp + 0x890]
mov ecx, dword [esp + 0x890]
cmp ecx, 0xad
jb 0x41f680
lea edx, [esp + 0x115e]
lea esi, [esp + 0x90]
mov ecx, 0x28
mov edi, edx
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea edi, [esp + 0x11fe]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x90], 0xa35bad71
mov dword [esp + 0x94], 0xa750a147
mov dword [esp + 0x98], 0xbb4da557
mov dword [esp + 0x9c], 0xbf44b94b
mov dword [esp + 0xa0], 0xb35ebd48
mov dword [esp + 0xa4], 0xb74cb163
mov dword [esp + 0xa8], 0x4bb3b54e
mov dword [esp + 0xac], 0x4fab49af
mov dword [esp + 0xb0], 0x43734da0
mov dword [esp + 0xb4], 0x47744175
mov dword [esp + 0xb8], 0x5bb64574
mov dword [esp + 0xbc], 0x5fab598b
mov dword [esp + 0xc0], 0x53ae5da8
mov dword [esp + 0xc4], 0x57a551a3
mov dword [esp + 0xc8], 0x6b8655ab
mov dword [esp + 0xcc], 0x6f9869b8
mov dword [esp + 0xd0], 0x63986d9f
mov dword [esp + 0xd4], 0x679a6199
mov dword [esp + 0xd8], 0x7b8d6581
mov dword [esp + 0xdc], 0x7fad7994
mov dword [esp + 0xe0], 0x73867d89
mov dword [esp + 0xe4], 0x7785718c
mov dword [esp + 0xe8], 0xbf57587
mov dword [esp + 0xec], 0xfc709e4
mov dword [esp + 0xf0], 0x3c90d3b
mov dword [esp + 0xf4], 0x7c10135
mov dword [esp + 0xf8], 0x1bc005de
mov dword [esp + 0xfc], 0x1f2a1928
mov dword [esp + 0x100], 0x13251d2d
mov dword [esp + 0x104], 0x17271121
mov dword [esp + 0x108], 0x2bce1525
mov dword [esp + 0x10c], 0x2fe8291f
mov dword [esp + 0x110], 0x23ea2de4
mov dword [esp + 0x114], 0x271621e1
mov dword [esp + 0x118], 0x3b0b2514
mov dword [esp + 0x11c], 0x3f0a3908
mov dword [esp + 0x120], 0x33043dfa
mov dword [esp + 0x124], 0x37fc31f1
mov dword [esp + 0x128], 0xcb0135fe
mov dword [esp + 0x12c], 0xcf22c902
lea ebx, [esp + 0x130]
mov word [esp + 0x130], 0xcdcc
mov word [esp + 0x13a], 0
mov dword [esp + 0x136], 0
mov dword [esp + 0x132], 0
mov dword [esp + 0x890], 0
mov eax, dword [esp + 0x890]
cmp eax, 0xab
ja 0x41f97a
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 esi, [eax - 0x6ed111a]
add eax, 0xe6
and eax, ecx
or esi, ecx
sub esi, eax
mov dword [esp + 0xa90], esi
mov eax, dword [esp + 0xa90]
add al, 0xb6
mov ecx, dword [esp + 0x890]
mov byte [esp + ecx + 0x90], al
inc dword [esp + 0x890]
mov eax, dword [esp + 0x890]
cmp eax, 0xac
jb 0x41f920
lea eax, [esp + 0x10bc]
lea esi, [esp + 0x90]
mov ecx, 0x28
mov edi, eax
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea edi, [esp + 0x115c]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
lea ecx, [esp + 0xf34]
mov dword [esp + 0x7c], ecx
lea ecx, [esp + 0xfd6]
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0xe92]
mov dword [esp + 0x84], ecx
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 + 0x444f18]
mov dword [esp + 0x64], ecx
mov eax, dword [esp + ecx*4 + 0x7c]
mov dword [esp + 0x90], 0xc332c130
mov dword [esp + 0x94], 0xc736c534
mov dword [esp + 0x98], 0xcb3ac938
mov dword [esp + 0x9c], 0xcf16cd3c
mov word [esp + 0xa0], 0xd1d0
lea ecx, [esp + 0xa2]
mov byte [ecx + 0xc], 0
mov dword [ecx + 8], 0
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov dword [esp + 0x890], 0
mov ecx, dword [esp + 0x890]
cmp ecx, 0x1e
ja 0x41fac9
nop
nop
nop
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 + 0x4f656720]
add ecx, 0x20
or ecx, esi
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 0xa90], esi
mov ecx, dword [esp + 0xa90]
add cl, 0x20
mov edx, dword [esp + 0x890]
mov byte [esp + edx + 0x90], cl
inc dword [esp + 0x890]
mov ecx, dword [esp + 0x890]
cmp ecx, 0x1f
jb 0x41fa70
movzx ecx, word [eax]
lea esi, [esp + 0x890]
test cx, cx
je 0x41fb01
add eax, 2
lea esi, [esp + 0x890]
nop
nop
nop
nop
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 0x41faf0
mov word [esi], 0
movzx eax, word [esp + 0x90]
test ax, ax
je 0x41fb31
mov ecx, dword [esp + 0x60]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41fb20
mov word [esi], 0
mov di, 0x31
xor eax, eax
cmp di, 0x35
setb al
mov dword [esp + 0x68], esi
jmp dword [eax*4 + 0x444f20]
mov eax, edi
and eax, 1
xor edi, 1
lea edi, [edi + eax*2]
xor eax, eax
cmp di, 0x35
setb al
jmp dword [eax*4 + 0x444f20]
mov word [esi - 2], di
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x890]
push dword [esp + 0x1c]
push 0
push 0x20019
push eax
push ecx
call fcn.0043d430
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444f28]
mov dword [esp + 0x6c], edi
mov dword [esp + 0x70], 0x800
mov dword [esp + 0x18], 0x400
mov dword [esp + 0x10], 0
xor esi, esi
jmp 0x41fbc3
inc edx
mov esi, edx
lea eax, [esp + 0x18]
lea edi, [esp + 0xa90]
lea ecx, [esp + 0x58]
lea edx, [esp + 0x70]
push eax
push edi
push ecx
push edx
lea eax, [esp + 0xa0]
push eax
mov dword [esp + 0x20], esi
push esi
push dword [esp + 0x74]
call fcn.0043dc80
add esp, 0x1c
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444f30]
mov eax, dword [esp + 0x10]
and al, 1
movzx ecx, al
xor eax, eax
jmp dword [ecx*4 + 0x444f38]
xor ecx, ecx
cmp dword [esp + 0x58], 1
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x444f40]
movzx eax, al
jmp dword [eax*4 + 0x444f48]
mov eax, dword [esp + 0x58]
xor ecx, ecx
cmp eax, 3
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x444f50]
mov dword [esp + 0x28], 0x33ab3546
mov dword [esp + 0x2c], 0x2fbd31bf
mov dword [esp + 0x30], 0x2bbd2da7
mov dword [esp + 0x34], 0x27b429a4
mov word [esp + 0x38], 0x2526
lea eax, [esp + 0x3a]
mov word [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x1f
ja 0x41fcdb
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 + ecx]
add edx, 0x1e2aa329
add eax, 0x1e2aa329
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x14]
add al, 0xe1
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x20
jb 0x41fca0
movzx edi, word [esp + 0x28]
lea eax, [esp + 0x90]
test di, di
je 0x41fe1a
lea ecx, [esp + 0x90]
lea edx, [esp + 0x28]
mov eax, ecx
jmp 0x41fd0c
movzx edi, word [edx]
test di, di
je 0x41fe1a
movzx ebx, word [ecx]
test bx, bx
je 0x41fe18
add ecx, 2
add edx, 2
lea esi, [eax + 2]
cmp bx, di
je 0x41fd2a
mov eax, esi
mov ecx, esi
je 0x41fd00
lea edx, [esp + 0x28]
jmp 0x41fd00
mov dword [esp + 0x28], 0x5bf95999
mov dword [esp + 0x2c], 0x57e155f7
mov dword [esp + 0x30], 0x53e451dd
mov dword [esp + 0x34], 0x2f2e2da0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x41fdab
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x28]
lea edx, [eax + ecx]
add edx, 0xabda0334
add eax, 0xabda0334
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x14]
add al, 0x94
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x41fd70
movzx ebx, word [esp + 0x28]
lea eax, [esp + 0x90]
mov dword [esp + 8], eax
test bx, bx
je 0x41fea5
lea esi, [esp + 0x90]
lea edx, [esp + 0x28]
mov dword [esp + 8], esi
jmp 0x41fdec
movzx ebx, word [edx]
test bx, bx
je 0x41fea5
movzx eax, word [esi]
test ax, ax
je 0x41fe9d
add esi, 2
add edx, 2
mov ecx, dword [esp + 8]
add ecx, 2
cmp ax, bx
je 0x41fe10
mov dword [esp + 8], ecx
mov esi, ecx
je 0x41fde0
lea edx, [esp + 0x28]
jmp 0x41fde0
xor eax, eax
test eax, eax
setne al
mov ecx, dword [case.0x41f9e7.14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
movzx eax, al
mov edx, dword [esp + 0xc]
jmp dword [eax*4 + 0x444f68]
mov eax, dword [esp + 0x18]
cmp eax, 2
jae 0x41fe52
mov esi, dword [esp + 4]
jmp 0x41fff6
shr eax, 1
lea edx, [eax - 1]
mov edi, eax
lea ecx, [esp + 0xa90]
and edi, 3
mov dword [esp + 8], edx
je 0x41ff8c
lea ecx, [esp + 0xa90]
mov esi, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
dec eax
movzx edx, word [ecx]
xor ebx, ebx
test dx, dx
setne bl
lea ecx, [ecx + ebx*2]
mov word [esi], dx
add esi, 2
dec edi
jne 0x41fe80
jmp 0x41ff90
mov dword [esp + 8], 0
xor eax, eax
cmp dword [esp + 8], 0
setne al
jmp dword [eax*4 + 0x444f48]
mov eax, dword [esp + 0x18]
cmp eax, 2
jae 0x41fed0
mov esi, dword [esp + 4]
jmp 0x41ff62
shr eax, 1
lea ecx, [eax - 1]
mov edx, eax
and edx, 3
mov dword [esp + 8], ecx
je 0x41ff7f
lea edi, [esp + 0xa90]
mov esi, dword [esp + 4]
nop
dec eax
movzx ecx, word [edi]
xor ebx, ebx
test cx, cx
setne bl
lea edi, [edi + ebx*2]
mov word [esi], cx
add esi, 2
dec edx
jne 0x41fef0
cmp dword [esp + 8], 3
jb 0x41ff62
nop
movzx ecx, word [edi]
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 edi, [ecx + ebx*2]
mov word [esi + 6], dx
add esi, 8
add eax, 0xfffffffc
jne 0x41ff10
mov dword [esi], 0x20003a
add esi, 4
mov dword [esp + 4], esi
mov al, 1
mov dword [esp + 0x10], eax
mov esi, dword [esp + 0xc]
inc esi
jmp 0x41fbc3
mov esi, dword [esp + 4]
cmp dword [esp + 8], 3
jae 0x41ff10
jmp 0x41ff62
mov esi, dword [esp + 4]
cmp dword [esp + 8], 3
mov edx, dword [esp + 0xc]
jb 0x41fff6
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 0x41ffa0
mov edx, dword [esp + 0xc]
mov word [esi], 0xa
add esi, 2
mov dword [esp + 4], esi
mov al, 1
mov dword [esp + 0x54], eax
jmp case.0x41f9e7.20
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x28], 0x2010007
lea ecx, [esp + 0x3a]
mov byte [ecx - 6], 0
mov dword [ecx - 0xa], 0
mov dword [ecx - 0xe], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xc
ja 0x42008a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x28]
lea esi, [ecx - 0x74379f55]
add ecx, 0xab
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 0x14], esi
mov ecx, dword [esp + 0x14]
add cl, 0x53
mov edx, dword [esp]
mov byte [esp + edx + 0x28], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xd
jb 0x420050
mov ecx, dword [0x449c88]
test ecx, ecx
je 0x4200d0
mov edx, dword [esp + 0x28]
xor edi, edi
mov ebx, dword [0x449c8c]
cmp dword [ebx + edi*8], 0xad91fd63
je 0x4200b0
inc edi
cmp ecx, edi
jne 0x4200a0
jmp 0x4200d0
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je 0x4200d0
push eax
push 1
push dword [0x449c90]
push ecx
call fcn.0043a6a0
add esp, 0x10
nop
nop
nop
nop
nop
nop
mov eax, dword [case.0x41f9e7.25]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov edi, dword [esp + 0x6c]
mov eax, edi
and eax, 1
xor edi, 1
lea edi, [edi + eax*2]
xor eax, eax
cmp di, 0x35
setb al
mov esi, dword [esp + 0x68]
jmp dword [eax*4 + 0x444f20]
mov ecx, dword [esp + 0x64]
inc ecx
mov eax, dword [case.0x41f9e7.28]
nop
jmp eax
xor eax, eax
cmp ecx, 5
setne al
jmp dword [eax*4 + 0x444f18]
jmp dword [0x444f94]
push dword [esp + 0x4c]
call fcn.00408b30
add esp, 4
inc esi
xor eax, eax
cmp esi, dword [esp + 0x20]
setb al
jmp dword [eax*4 + 0x444ef0]
mov esi, dword [esp + 0x50]
jmp dword [0x444fa0]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x90], 0x2010007
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov byte [esp + 0x9c], 0
mov dword [esp + 0x890], 0
mov ecx, dword [esp + 0x890]
cmp ecx, 0xc
ja 0x42020a
nop
nop
nop
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 - 0x74379f55]
add ecx, 0xab
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 0xa90], esi
mov ecx, dword [esp + 0xa90]
add cl, 0x53
mov edx, dword [esp + 0x890]
mov byte [esp + edx + 0x90], cl
inc dword [esp + 0x890]
mov ecx, dword [esp + 0x890]
cmp ecx, 0xd
jb 0x4201b0
mov ecx, dword [0x449c88]
test ecx, ecx
je case.0x41f9e7.31
mov edx, dword [esp + 0x90]
xor edi, edi
mov ebx, dword [0x449c8c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xad91fd63
je 0x420240
inc edi
cmp ecx, edi
jne 0x420230
jmp case.0x41f9e7.31
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je case.0x41f9e7.31
push eax
push 1
push dword [0x449c90]
push ecx
call fcn.0043a6a0
add esp, 0x10
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x90], 0x2010007
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov byte [esp + 0x9c], 0
mov dword [esp + 0x890], 0
mov ecx, dword [esp + 0x890]
cmp ecx, 0xc
ja 0x42030a
nop
nop
nop
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 - 0x74379f55]
add ecx, 0xab
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 0xa90], esi
mov ecx, dword [esp + 0xa90]
add cl, 0x53
mov edx, dword [esp + 0x890]
mov byte [esp + edx + 0x90], cl
inc dword [esp + 0x890]
mov ecx, dword [esp + 0x890]
cmp ecx, 0xd
jb 0x4202b0
mov ecx, dword [0x449c88]
test ecx, ecx
je 0x420350
mov edx, dword [esp + 0x90]
xor edi, edi
mov ebx, dword [0x449c8c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xad91fd63
je 0x420340
inc edi
cmp ecx, edi
jne 0x420330
jmp 0x420350
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x420356
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x444f9c]
push eax
push 1
push dword [0x449c90]
push ecx
call fcn.0043a6a0
add esp, 0x10
jmp dword [0x444f9c]
add ebx, esi
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
mov edx, dword [esp + 4]
je 0x4203aa
cmp eax, edx
jae 0x4203aa
movzx edi, cx
xor ecx, ecx
cmp edi, 0x800
setb dl
mov esi, 1
cmp edi, 0x80
jb 0x420370
mov cl, dl
xor ecx, 3
mov esi, ecx
jmp 0x420370
lea eax, [ebx + 1]
mov dword [esp + 0xc], eax
push eax
call fcn.00408b20
add esp, 4
test ebx, ebx
mov dword [esp + 0x10], eax
jle 0x42048c
lea ecx, [eax + ebx]
mov dword [esp + 8], ecx
add dword [esp + 0xc], eax
lea edx, [esp + 0x1200]
mov edi, eax
jmp 0x4203f6
mov byte [edi], cl
mov eax, 1
add edx, 2
add edi, eax
cmp edi, dword [esp + 8]
jae 0x42048e
cmp edx, dword [esp + 4]
jae 0x42048e
movzx ecx, word [edx]
test cx, cx
je 0x42048e
cmp cx, 0x7f
jbe 0x4203e0
mov eax, edi
not eax
add eax, dword [esp + 0xc]
cmp eax, 2
jb 0x420443
movzx esi, cx
cmp esi, 0x7ff
ja 0x420443
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 0x4203e7
cmp eax, 3
mov eax, 0
jb 0x4203e7
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 0x4203e7
xor ebx, ebx
push 1
call fcn.00408b20
add esp, 4
mov edi, eax
mov dword [esp + 0x10], eax
jmp 0x42048e
mov edi, eax
mov byte [edi], 0
mov dword [esp + 0x90], 0x1f021d2d
mov dword [esp + 0x94], 0x3171619
mov dword [esp + 0x98], 0xc08061d
mov dword [esp + 0x9c], 0xb0b2a4b
mov dword [esp + 0xa0], 0xecf10e10
mov dword [esp + 0xa4], 0xf4f0d1b3
mov dword [esp + 0xa8], 0xeee6ecee
mov dword [esp + 0xac], 0xf7fabbff
mov word [esp + 0xb0], 0x8df8
mov dword [esp + 0xb2], 0
mov dword [esp + 0xb6], 0
mov dword [esp + 0xba], 0
mov byte [esp + 0xbe], 0
mov dword [esp + 0x890], 0
mov eax, dword [esp + 0x890]
cmp eax, 0x2e
ja 0x420598
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 - 0x72b4fb12]
add eax, 0xee
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xa90], edx
mov eax, dword [esp + 0xa90]
add al, 0x7e
mov ecx, dword [esp + 0x890]
mov byte [esp + ecx + 0x90], al
inc dword [esp + 0x890]
mov eax, dword [esp + 0x890]
cmp eax, 0x2f
jb 0x420540
lea eax, [esp + 0x90]
mov ecx, dword [ebp + 8]
push ebx
mov esi, dword [esp + 0x14]
push esi
push eax
call fcn.00409630
jmp dword [0x444fb8]
push esi
mov esi, eax
call fcn.00408b30
mov eax, esi
add esp, 4
and al, 1
mov ecx, dword [case.0x41f9e7.44]
nop
nop
nop
nop
nop
nop
nop
jmp ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
int3
push eax
mov dword [esi + 0x48], esp
push eax
mov dword [esi + 0x20], esp
sub esp, 0x98
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x18], eax
mov esp, eax
push eax
mov dword [esi + 0x28], esp
push eax
mov dword [esi + 0x50], esp
push eax
mov dword [esi + 0x4c], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x70], esp
push eax
mov dword [esi + 0x1c], esp
sub esp, 0x800
mov eax, esp
mov dword [esi + 0x60], eax
mov dword [esi + 0x24], eax
push eax
mov edi, esp
sub esp, 0x20
mov ebx, esp
and ebx, 0xfffffff8
mov esp, ebx
push eax
mov dword [esi + 0x64], esp
push eax
mov dword [esi + 0x58], esp
push eax
mov dword [esi + 0x5c], esp
sub esp, 0x18
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x44], eax
mov esp, eax
mov eax, dword [case.0x41f9e7.51]
mov dword [esi + 0x2c], edi
nop
nop
nop
jmp eax
mov eax, dword [esi + 0x18]
add eax, 0x8c
mov dword [esi + 0x6c], eax
add dword [esi + 0x60], 2
mov eax, 0x200
mov ecx, 1
mov dword [esi + 0x68], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0xc], 0
jmp case.0x41f9e7.54
xor edx, edx
test eax, eax
sete dl
mov eax, 0x100
xor ecx, ecx
jmp dword [edx*4 + 0x445768]
mov edx, eax
mov eax, dword [esi + 0x48]
mov dword [eax], edx
mov eax, edx
mov edx, dword [case.0x41f9e7.56]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp edx
jmp dword [ecx*4 + 0x4456c0]
jmp dword [0x4456c8]
mov edi, dword [esi + 0x18]
jmp 0x420f00
mov eax, dword [esi + 0x4c]
mov edx, dword [eax]
inc edx
mov dword [eax], edx
xor eax, eax
mov ecx, dword [esi + 0x28]
mov dword [esi + 0x14], edx
cmp edx, dword [ecx]
setb al
jmp dword [eax*4 + 0x4456e8]
jmp dword [0x4456f4]
mov eax, dword [esi + 0x1c]
mov eax, dword [eax]
mov dword [esi + 0x14], eax
mov dword [esi + 0x30], 0x4a555457
lea eax, [esi + 0x34]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 9
ja 0x420aed
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [esi + ecx + 0x30]
lea edx, [eax + 0x4d]
mov edi, 0x7645bcb2
sub edi, eax
or edi, ecx
not ecx
or ecx, edx
add edi, ecx
mov eax, 0xfffffffe
sub eax, edi
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
mov ecx, eax
or ecx, 0xe4
and eax, 0xe4
add eax, ecx
inc al
mov ecx, dword [esi + 8]
mov byte [esi + ecx + 0x30], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xa
jb 0x420aa0
mov ecx, dword [0x449c88]
test ecx, ecx
je case.default.0x420b4c
mov edx, dword [esi + 0x30]
xor edi, edi
mov eax, dword [0x449c8c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [eax + edi*8], 0xad91fd63
je 0x420b20
inc edi
cmp ecx, edi
jne 0x420b10
jmp case.default.0x420b4c
mov eax, dword [eax + edi*8 + 4]
cmp eax, edx
je case.default.0x420b4c
push dword [esi + 0x14]
push 1
push dword [0x449c90]
push eax
call fcn.0043a6a0
add esp, 0x10
nop
nop
nop
nop
mov eax, dword [esi + 0x54]
mov edi, dword [eax]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x445728]
mov edi, dword [esi + 0x2c]
jmp dword [0x445714]
mov dword [edi], 0x800
mov dword [ebx], 0x33a3358a
mov dword [ebx + 4], 0x2fa031bf
mov dword [ebx + 8], 0x2bb32dba
mov dword [ebx + 0xc], 0x279a29ad
mov dword [ebx + 0x10], 0x23b725b9
mov dword [ebx + 0x14], 0x1f2021b9
mov byte [ebx + 0x18], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x18
ja 0x420bfa
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [ebx + ecx]
lea ecx, [eax - 0x7355d1f7]
mov edi, edx
not edi
or edi, ecx
and ecx, edx
add ecx, edi
neg ecx
add eax, ecx
add eax, 0x8caa2e08
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x30]
add al, 0xc1
mov ecx, dword [esi + 4]
mov byte [ebx + ecx], al
mov eax, dword [esi + 4]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
cmp eax, 0x19
jb 0x420bb0
mov edi, dword [esi + 0x2c]
push edi
push dword [esi + 0x24]
push 0
push ebx
mov eax, dword [esi + 0x1c]
push dword [eax]
call fcn.0043e020
add esp, 0x14
jmp case.0x41f9e7.71
mov edi, dword [esi + 0x2c]
push edi
push dword [esi + 0x24]
push 0
push ebx
mov eax, dword [esi + 0x1c]
push dword [eax]
call fcn.0043e020
add esp, 0x14
jmp dword [0x44571c]
mov dword [edi], 0x800
mov dword [ebx], 0x33a3358a
mov dword [ebx + 4], 0x2fa031bf
mov dword [ebx + 8], 0x2bb32dba
mov dword [ebx + 0xc], 0x279a29ad
mov dword [ebx + 0x10], 0x23b725b9
mov dword [ebx + 0x14], 0x1f2021b9
mov byte [ebx + 0x18], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x18
ja 0x420c20
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [ebx + ecx]
lea ecx, [eax - 0x7355d1f7]
mov edi, edx
not edi
or edi, ecx
and ecx, edx
add ecx, edi
neg ecx
add eax, ecx
add eax, 0x8caa2e08
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x30]
add al, 0xc1
mov ecx, dword [esi + 4]
mov byte [ebx + ecx], al
mov eax, dword [esi + 4]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
cmp eax, 0x19
jb 0x420c80
jmp 0x420c20
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x445720]
mov eax, dword [esi + 0x24]
movzx eax, word [eax]
test ax, ax
je 0x420d03
mov ecx, dword [esi + 0x60]
mov edx, dword [esi + 0x10]
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x420cf0
jmp 0x420d06
mov edx, dword [esi + 0x10]
mov word [edx], 0xa
add edx, 2
mov dword [esi + 0x10], edx
jmp case.0x41f9e7.74
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x445728]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x445700]
mov eax, dword [esi + 0x20]
push dword [eax]
push 0
push 0x20019
push dword [esi + 0x1c]
push edi
call fcn.0043d430
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x445708]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x445728]
push edi
call fcn.00408b30
add esp, 4
mov eax, dword [esi + 0x4c]
mov edx, dword [eax]
inc edx
mov dword [eax], edx
xor eax, eax
mov ecx, dword [esi + 0x28]
mov dword [esi + 0x14], edx
cmp edx, dword [ecx]
setb al
jmp dword [eax*4 + 0x4456e8]
mov eax, dword [esi + 0x50]
mov edi, dword [eax]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x420db3
mov eax, 0xffffffff
push eax
call fcn.00408b20
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x54]
mov dword [eax], ecx
mov eax, dword [esi + 0x70]
mov dword [eax], edi
mov edi, ecx
push eax
push ecx
push dword [esi + 0x14]
mov eax, dword [esi + 0x20]
push dword [eax]
call fcn.0043d580
add esp, 0x10
jmp dword [0x4456fc]
mov eax, dword [esi + 0x50]
mov edi, dword [eax]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x420df5
mov eax, 0xffffffff
push eax
call fcn.00408b20
add esp, 4
mov ecx, dword [esi + 0x54]
mov dword [ecx], eax
mov ecx, dword [esi + 0x70]
mov dword [ecx], edi
push ecx
push eax
push dword [esi + 0x14]
mov eax, dword [esi + 0x20]
push dword [eax]
call fcn.0043d580
add esp, 0x10
jmp case.0x41f9e7.67
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
mov dword [esi + 0xc], ecx
mov ecx, eax
and ecx, 0x7ffffefb
mov edx, eax
and edx, 0x104
or eax, 0x104
imul eax, edx
xor edx, 0x104
imul edx, ecx
add eax, edx
lea eax, [edi + eax*2]
push eax
push dword [esi + 0xc]
call fcn.0043a570
add esp, 8
mov dword [esi + 0xc], eax
lea eax, [eax + edi*2]
mov dword [esi + 0x10], eax
xor ecx, ecx
mov eax, dword [esi + 0x4c]
mov dword [eax], ecx
xor eax, eax
mov dword [esi + 0x14], 0
mov edx, dword [esi + 0x28]
cmp ecx, dword [edx]
setb al
jmp dword [eax*4 + 0x4456e8]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
jmp dword [0x445734]
mov word [edx], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], 0
mov edi, edx
sub edi, ecx
sar edi, 1
jmp dword [0x44573c]
xor edx, edx
cmp eax, 4
sete dl
mov eax, 0x100
xor ecx, ecx
jmp dword [edx*4 + 0x445760]
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0x445758]
or eax, 0x20019
mov dword [esi + 0x14], eax
mov dword [edi], 0xc390c19c
mov dword [edi + 4], 0xc781c581
mov dword [edi + 8], 0xcb99c981
mov dword [edi + 0xc], 0xcf9ccd98
mov dword [edi + 0x10], 0xd38ed189
mov dword [edi + 0x14], 0xd797d599
mov dword [edi + 0x18], 0xdb92d99b
mov dword [edi + 0x1c], 0xdf90dd95
mov dword [edi + 0x20], 0x237e2165
mov dword [edi + 0x24], 0x27692577
mov dword [edi + 0x28], 0x2b7e296e
mov dword [edi + 0x2c], 0x2f6f2d7b
mov dword [edi + 0x30], 0x33773162
mov dword [edi + 0x34], 0x377b3568
mov dword [edi + 0x38], 0x3b993991
mov dword [edi + 0x3c], 0x3f913d8e
mov dword [edi + 0x40], 0x3ad01b3
mov dword [edi + 0x44], 0x7b205a2
mov dword [edi + 0x48], 0xb5d0954
mov dword [edi + 0x4c], 0xfa00da5
mov dword [edi + 0x50], 0x13bd11b4
mov dword [edi + 0x54], 0x17a515a3
mov dword [edi + 0x58], 0x1b591944
mov dword [edi + 0x5c], 0x1fac1da9
mov dword [edi + 0x60], 0x63c761d2
mov dword [edi + 0x64], 0x67d265ca
mov dword [edi + 0x68], 0x6bcf693e
mov dword [edi + 0x6c], 0x6fdd6dde
mov dword [edi + 0x70], 0x73dd71d9
mov dword [edi + 0x74], 0x772a75da
mov dword [edi + 0x78], 0x7bd4792d
mov dword [edi + 0x7c], 0x7fd07dd5
mov dword [edi + 0x80], 0x43f641f3
mov dword [edi + 0x84], 0x47ea45e5
mov dword [edi + 0x88], 0x4b4a49e4
mov eax, dword [esi + 0x6c]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x97
ja 0x421074
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx eax, byte [edi + edx]
lea edx, [ecx + eax]
add edx, 0x6f6e51e0
add ecx, 0xe0
and ecx, eax
add ecx, ecx
mov eax, ecx
xor eax, edx
not ecx
and ecx, edx
add ecx, ecx
sub ecx, eax
mov dword [esi + 0x30], ecx
mov eax, dword [esi + 0x30]
add al, 0xe0
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x98
jb 0x421030
push 0
push 0
push dword [esi + 0x14]
push dword [esi + 0x20]
push edi
call fcn.0043d430
add esp, 0x14
jmp dword [0x4456d4]
mov eax, dword [esi + 0x48]
mov eax, dword [eax]
mov ecx, 0x20019
or eax, ecx
mov edi, dword [esi + 0x18]
mov dword [edi], 0xc390c19c
mov dword [edi + 4], 0xc781c581
mov dword [edi + 8], 0xcb99c981
mov dword [edi + 0xc], 0xcf9ccd98
mov dword [edi + 0x10], 0xd38ed189
mov dword [edi + 0x14], 0xd797d599
mov dword [edi + 0x18], 0xdb92d99b
mov dword [edi + 0x1c], 0xdf90dd95
mov dword [edi + 0x20], 0x237e2165
mov dword [edi + 0x24], 0x27692577
mov dword [edi + 0x28], 0x2b7e296e
mov dword [edi + 0x2c], 0x2f6f2d7b
mov dword [edi + 0x30], 0x33773162
mov dword [edi + 0x34], 0x377b3568
mov dword [edi + 0x38], 0x3b993991
mov dword [edi + 0x3c], 0x3f913d8e
mov dword [edi + 0x40], 0x3ad01b3
mov dword [edi + 0x44], 0x7b205a2
mov dword [edi + 0x48], 0xb5d0954
mov dword [edi + 0x4c], 0xfa00da5
mov dword [edi + 0x50], 0x13bd11b4
mov dword [edi + 0x54], 0x17a515a3
mov dword [edi + 0x58], 0x1b591944
mov dword [edi + 0x5c], 0x1fac1da9
mov dword [edi + 0x60], 0x63c761d2
mov dword [edi + 0x64], 0x67d265ca
mov dword [edi + 0x68], 0x6bcf693e
mov dword [edi + 0x6c], 0x6fdd6dde
mov dword [edi + 0x70], 0x73dd71d9
mov dword [edi + 0x74], 0x772a75da
mov dword [edi + 0x78], 0x7bd4792d
mov dword [edi + 0x7c], 0x7fd07dd5
mov dword [edi + 0x80], 0x43f641f3
mov dword [edi + 0x84], 0x47ea45e5
mov dword [edi + 0x88], 0x4b4a49e4
mov ecx, dword [esi + 0x6c]
mov dword [ecx + 8], 0
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x97
ja 0x42121c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
mov edi, dword [esi + 0x18]
movzx edi, byte [edi + edx]
lea edx, [ecx + edi]
add edx, 0x6f6e51e0
add ecx, 0xe0
and ecx, edi
add ecx, ecx
mov edi, ecx
xor edi, edx
not ecx
and ecx, edx
add ecx, ecx
sub ecx, edi
mov edi, dword [esi + 0x18]
mov dword [esi + 0x30], ecx
mov ecx, dword [esi + 0x30]
add cl, 0xe0
mov edx, dword [esi + 4]
mov byte [edi + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x98
jb 0x4211d0
push 0
push 0
push eax
push dword [esi + 0x20]
push edi
call fcn.0043d430
add esp, 0x14
mov eax, dword [esi + 0x48]
mov eax, dword [eax]
jmp 0x420f00
shr eax, 0x1f
jmp dword [eax*4 + 0x4456d8]
push 0
push 0
push 0
push 0
push dword [esi + 0x50]
push dword [esi + 0x28]
push 0
push 0
mov eax, dword [esi + 0x20]
push dword [eax]
call fcn.0043d920
add esp, 0x24
not eax
shr eax, 0x1f
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
mov edi, dword [esi + 0x68]
jmp dword [eax*4 + 0x4456e0]
mov dword [esi + 0x68], edi
mov dword [esi + 0x10], edx
mov dword [esi + 0xc], ecx
mov eax, dword [esi + 0x20]
mov eax, dword [eax]
mov dword [esi + 0x14], eax
mov dword [esi + 0x30], 0x4a555457
lea eax, [esi + 0x34]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 9
ja 0x42130d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [esi + ecx + 0x30]
lea edx, [eax + 0x4d]
mov edi, 0x7645bcb2
sub edi, eax
or edi, ecx
not ecx
or ecx, edx
add edi, ecx
mov eax, 0xfffffffe
sub eax, edi
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
mov ecx, eax
or ecx, 0xe4
and eax, 0xe4
add eax, ecx
inc al
mov ecx, dword [esi + 8]
mov byte [esi + ecx + 0x30], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xa
jb 0x4212c0
mov ecx, dword [0x449c88]
test ecx, ecx
je case.default.0x42138e
mov eax, dword [esi + 0x30]
mov dword [esi + 0x74], eax
xor eax, eax
mov edx, dword [0x449c8c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + eax*8], 0xad91fd63
je 0x421354
inc eax
cmp ecx, eax
jne 0x421330
jmp case.default.0x42138e
mov eax, 4
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0x445758]
mov eax, dword [edx + eax*8 + 4]
cmp eax, dword [esi + 0x74]
je case.default.0x42138e
push dword [esi + 0x14]
push 1
push dword [0x449c90]
push eax
call fcn.0043a6a0
add esp, 0x10
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push dword [esi + 0x64]
call fcn.0043c8e0
add esp, 4
movzx eax, al
jmp dword [eax*4 + 0x445740]
xor eax, eax
mov ecx, dword [esi + 0x64]
cmp dword [ecx], 1
sete al
jmp dword [eax*4 + 0x445748]
xor eax, eax
mov ecx, 1
jmp dword [ecx*4 + 0x445750]
mov eax, 2
xor ecx, ecx
jmp dword [ecx*4 + 0x445750]
xor eax, eax
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0x445758]
mov eax, dword [case.0x420b4c.21]
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
cmp edx, ecx
setne al
mov ebx, dword [esi + 0x44]
jmp dword [eax*4 + 0x445780]
xor ebx, ebx
jmp 0x421600
mov eax, ecx
movzx ecx, word [ecx]
xor edi, edi
test cx, cx
jne 0x421466
mov eax, dword [esi + 0x58]
mov dword [eax], edi
lea eax, [edi + 1]
mov dword [esi + 0x1c], eax
push eax
call fcn.00408b20
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x5c]
mov dword [eax], ecx
mov dword [esi + 0x24], ecx
mov eax, ecx
test edi, edi
mov edx, dword [esi + 0xc]
jle 0x421556
mov eax, dword [esi + 0x24]
add edi, eax
add dword [esi + 0x1c], eax
mov dword [esi + 0x2c], edi
jmp 0x4214b7
mov edi, edx
add edi, ebx
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
mov ebx, dword [esi + 0x44]
mov edx, dword [esi + 0x10]
je 0x42140c
test edx, edx
je 0x42146e
cmp eax, edx
jae 0x42140c
mov edx, edi
movzx edi, cx
xor ecx, ecx
cmp edi, 0x800
setb byte [esi + 0x1c]
mov ebx, 1
cmp edi, 0x80
jb 0x421450
movzx ebx, byte [esi + 0x1c]
mov cl, bl
xor ecx, 3
mov ebx, ecx
jmp 0x421450
mov byte [eax], bl
mov ecx, 1
add edx, 2
add eax, ecx
cmp eax, edi
mov ebx, dword [esi + 0x44]
jae 0x421556
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x4214c6
cmp edx, ecx
jae 0x421556
movzx ebx, word [edx]
test bx, bx
je 0x421553
cmp bx, 0x7f
jbe 0x4214a0
mov ecx, eax
not ecx
add ecx, dword [esi + 0x1c]
cmp ecx, 2
jb 0x421510
movzx edi, bx
cmp edi, 0x7ff
mov edi, dword [esi + 0x2c]
ja 0x421510
mov ecx, ebx
shr ecx, 6
add cl, 0xc0
mov byte [eax], cl
and bl, 0x3f
or bl, 0x80
mov byte [eax + 1], bl
mov ecx, 2
jmp 0x4214a7
cmp ecx, 3
mov ecx, 0
jb 0x4214a7
movzx ecx, bx
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
shr ecx, 0xc
or cl, 0xe0
mov byte [eax], cl
shr dword [esi + 0x18], 6
mov ecx, dword [esi + 0x18]
not ecx
or ecx, 0x3f
add ecx, dword [esi + 0x18]
add cl, 0x81
mov byte [eax + 1], cl
and bl, 0x3f
or bl, 0x80
mov byte [eax + 2], bl
mov ecx, 3
jmp 0x4214a7
mov ebx, dword [esi + 0x44]
mov byte [eax], 0
mov eax, dword [esi + 0x58]
mov edx, dword [eax]
mov dword [ebx], 0xa794ae83
mov dword [ebx + 4], 0x92a494a3
mov dword [ebx + 8], 0xbfa2bd76
mov byte [ebx + 0xc], 0x2c
mov dword [ebx + 0xd], 0
mov dword [ebx + 0x10], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x13
ja 0x4215d2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [ebx + ecx]
lea edi, [eax - 0x1fe205f8]
add eax, 8
and eax, ecx
or edi, ecx
sub edi, eax
mov dword [esi + 0x30], edi
mov eax, dword [esi + 0x30]
add al, 0xc8
mov ecx, dword [esi + 4]
mov byte [ebx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x14
jb 0x4215a0
mov ecx, dword [ebp + 8]
push edx
push dword [esi + 0x24]
push ebx
call fcn.00409630
mov ebx, eax
mov eax, dword [esi + 0x5c]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x445788]
push eax
call fcn.00408b30
add esp, 4
mov ecx, dword [esi + 0xc]
push ecx
call fcn.00438e10
add esp, 4
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
int3
push eax
sub esp, 8
mov ecx, esp
sub esp, 0x20
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov dword [ecx + 8], 0
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov dword [eax], 0x9b06990b
mov dword [eax + 4], 0x87278529
mov dword [eax + 8], 0x83548115
mov dword [eax + 0xc], 0x8f168d21
mov dword [eax + 0x10], 0x8b8a8925
mov dword [eax + 0x14], 0
mov dword [eax + 0x18], 0
mov byte [eax + 0x1c], 0
mov dword [esi + 4], 0
mov edx, dword [esi + 4]
cmp edx, 0x1c
ja 0x421ba8
nop
nop
nop
nop
nop
mov edx, dword [esi + 4]
mov edi, dword [esi + 4]
movzx edi, byte [eax + edi]
lea ebx, [edx + 0xec]
and ebx, edi
add edx, edi
add ebx, ebx
sub edx, ebx
add edx, 0xe9b1e1ec
mov dword [esi + 8], edx
mov edx, dword [esi + 8]
add dl, 0x8c
mov edi, dword [esi + 4]
mov byte [eax + edi], dl
inc dword [esi + 4]
mov edx, dword [esi + 4]
cmp edx, 0x1d
jb 0x421b70
push eax
call fcn.00438eb0
jmp case.0x4215ed.2
mov ecx, dword [esi + 0x20]
push eax
call fcn.00438eb0
jmp dword [0x44579c]
push eax
mov ebx, esp
sub esp, 0xc
mov ecx, esp
sub esp, 0x20
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
push eax
sub esp, 8
mov dword [esi + 0x44], esp
sub esp, 0x38
mov edi, esp
and edi, 0xfffffff8
mov esp, edi
push eax
mov dword [esi + 0x38], esp
push eax
mov dword [esi + 0x18], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x50], esp
sub esp, 0x400
mov dword [esi + 0x1c], esp
push eax
mov dword [esi + 0x64], esp
push eax
mov dword [esi + 0x4c], esp
push eax
mov dword [esi + 0x48], esp
sub esp, 0x10
mov edx, esp
and edx, 0xfffffff8
mov dword [esi + 0x10], edx
mov esp, edx
push eax
sub esp, 0x24
mov edx, esp
and edx, 0xfffffff8
mov dword [esi + 0x3c], edx
mov esp, edx
mov dword [esi + 0x60], ebx
mov edx, dword [ebp + 8]
mov dword [ebx], edx
mov dword [ecx + 8], 0
mov dword [ecx + 4], 0
mov dword [esi + 0x20], ecx
mov dword [ecx], 0
mov dword [eax], 0x9b06990b
mov dword [eax + 4], 0x87278529
mov dword [eax + 8], 0x83548115
mov dword [eax + 0xc], 0x8f168d21
mov dword [eax + 0x10], 0x8b8a8925
mov dword [eax + 0x14], 0
mov dword [eax + 0x18], 0
mov byte [eax + 0x1c], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x1c
ja 0x421bb0
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [eax + edx]
lea ebx, [ecx + 0xec]
and ebx, edx
add ecx, edx
add ebx, ebx
sub ecx, ebx
add ecx, 0xe9b1e1ec
mov dword [esi + 8], ecx
mov ecx, dword [esi + 8]
add cl, 0x8c
mov edx, dword [esi + 4]
mov byte [eax + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x1d
jb 0x421c90
jmp 0x421bb0
shr eax, 0x1f
jmp dword [eax*4 + 0x4457a0]
mov ecx, dword [esi + 0x20]
push 0x410
call fcn.00439110
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x4457b8]
mov dword [edi], 0xa28bb4a1
mov dword [edi + 4], 0xaca281a4
mov dword [edi + 8], 0xb8a1a39d
mov dword [edi + 0xc], 0x87aea699
mov dword [edi + 0x10], 0xa4939286
mov dword [edi + 0x14], 0x8fb09691
mov dword [edi + 0x18], 0x8a8dae8a
mov dword [edi + 0x1c], 0x86af88b3
mov dword [edi + 0x20], 0xa6b4b6b2
mov dword [edi + 0x24], 0x9ebb59b5
mov dword [edi + 0x28], 0x7342bdbd
mov dword [edi + 0x2c], 0
mov word [edi + 0x30], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x31
ja 0x421d96
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0x8a]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x8098478a
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0x3a
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x32
jb 0x421d60
mov ecx, dword [esi + 0x20]
push 0
push 0x2b
push edi
mov ebx, dword [esi + 0x44]
push ebx
call fcn.004396a0
mov edi, dword [ebx]
mov ecx, dword [ebx + 4]
xor eax, eax
cmp edi, ecx
sete al
jmp dword [eax*4 + 0x4457c0]
mov eax, ecx
sub eax, edi
sar eax, 2
imul eax, eax, 0x421
push eax
mov ebx, ecx
call fcn.00408b20
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x50]
mov dword [eax], ebx
mov eax, dword [esi + 0x1c]
inc eax
mov dword [esi + 0x58], eax
mov dword [esi + 0x24], 0
xor eax, eax
cmp edi, ebx
mov ecx, dword [esi + 0x38]
mov dword [ecx], edx
mov ecx, dword [esi + 0x18]
mov dword [esi + 0x14], edx
mov dword [ecx], edx
mov ecx, dword [esi + 0x54]
mov dword [ecx], edi
setne al
mov ecx, dword [esi + 0x10]
add ecx, 4
mov dword [esi + 0x5c], ecx
jmp dword [eax*4 + 0x4457c8]
movzx eax, byte [esi + 0x24]
mov edx, dword [esi + 0x3c]
mov ecx, dword [esi + 0x14]
jmp dword [eax*4 + 0x445840]
mov eax, dword [esi + 0x38]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x445858]
xor ebx, ebx
jmp dword [0x4457b4]
mov ecx, dword [esi + 0x20]
call fcn.00439250
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esi + 0x54]
mov edi, dword [eax]
add edi, 4
mov dword [eax], edi
xor eax, eax
mov ecx, dword [esi + 0x50]
cmp edi, dword [ecx]
setne al
jmp dword [eax*4 + 0x4457c8]
mov eax, dword [edi]
mov dword [esi + 0xc], eax
push 0x400
push 0
mov ebx, dword [esi + 0x1c]
push ebx
call fcn.00408cf0
add esp, 0xc
mov ecx, dword [esi + 0x20]
mov edi, dword [esi + 0x64]
push edi
push 0x400
push ebx
push dword [esi + 0xc]
call fcn.00439530
xor ecx, ecx
cmp eax, 0xc0000000
setae cl
jmp dword [ecx*4 + 0x4457d0]
xor eax, eax
cmp dword [edi], 0
sete al
jmp dword [eax*4 + 0x4457d8]
xor eax, eax
mov ecx, 1
jmp dword [ecx*4 + 0x4457e0]
mov eax, 3
xor ecx, ecx
jmp dword [ecx*4 + 0x4457e0]
mov eax, dword [esi + 0x1c]
mov byte [eax + 0x3ff], 0
movzx edx, byte [eax]
xor eax, eax
mov ecx, 0
test dl, dl
je 0x421f20
mov ecx, dword [esi + 0x1c]
nop
nop
nop
nop
nop
nop
nop
cmp dl, 0x2e
je 0x421f20
movzx edx, byte [ecx + 1]
inc ecx
test dl, dl
jne 0x421f10
xor ecx, ecx
xor edx, edx
test ecx, ecx
setne dl
jmp dword [edx*4 + 0x4457e8]
lea ebx, [ecx + 1]
movzx edx, byte [ecx + 1]
xor eax, eax
mov edi, 0
test dl, dl
je 0x421f60
mov edi, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dl, 0x2e
je 0x421f60
movzx edx, byte [edi + 1]
inc edi
test dl, dl
jne 0x421f50
xor edi, edi
xor edx, edx
test edi, edi
setne dl
jmp dword [edx*4 + 0x4457f0]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x445810]
xor eax, eax
mov ecx, dword [case.0x4221e1.7]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
cmp eax, 3
sete cl
jmp dword [ecx*4 + 0x445828]
mov eax, dword [case.0x4221e1.9]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov edx, edi
sub edx, ebx
lea eax, [edx + edx*2]
shr eax, 2
mov dword [esi + 0x28], eax
movzx eax, byte [ecx + edx]
cmp eax, 0x3d
je 0x421fcd
cmp eax, 0x2e
jne 0x421fd3
mov ecx, dword [esi + 0x28]
dec ecx
jmp 0x421fd6
mov ecx, dword [esi + 0x28]
movzx eax, byte [edx + ebx - 2]
cmp eax, 0x3d
mov dword [esi + 0x40], edx
je 0x421fe8
cmp eax, 0x2e
jne 0x421fe9
dec ecx
mov dword [esi + 0x28], ecx
lea eax, [ecx + 1]
push eax
call fcn.00408b20
add esp, 4
mov dword [esi + 0x30], eax
cmp edi, ebx
je case.0x41f9e7.148
mov eax, ebx
xor ebx, ebx
mov edi, 2
mov dword [esi + 0xc], eax
jmp 0x422035
mov edx, dword [esi + 0x2c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [edi + 4]
add edi, 2
mov ebx, edx
cmp edi, ecx
mov edi, eax
mov eax, dword [esi + 0xc]
jae case.0x41f9e7.148
movzx eax, byte [eax + edi - 2]
push eax
call fcn.004189f0
add esp, 4
mov byte [esi + 0x34], al
mov eax, dword [esi + 0xc]
movzx eax, byte [eax + edi - 1]
push eax
call fcn.004189f0
add esp, 4
movzx ecx, byte [esi + 0x34]
shl cl, 2
mov edx, eax
shr dl, 4
and dl, 3
or dl, cl
mov ecx, dword [esi + 0x30]
mov byte [ecx + ebx], dl
lea edx, [ebx + 1]
mov ecx, dword [esi + 0x40]
cmp edi, ecx
jae 0x422020
mov byte [esi + 0x2c], al
mov dword [esi + 0x34], ebx
mov eax, dword [esi + 0xc]
movzx eax, byte [eax + edi]
push eax
mov ebx, edx
call fcn.004189f0
mov edx, ebx
mov ecx, dword [esi + 0x40]
add esp, 4
cmp al, 0x40
je 0x422020
movzx edx, byte [esi + 0x2c]
shl dl, 4
mov ah, al
shr ah, 2
and ah, 0xf
or ah, dl
mov ebx, dword [esi + 0x34]
lea edx, [ebx + 2]
mov dword [esi + 0x2c], edx
mov edx, dword [esi + 0x30]
mov byte [edx + ebx + 1], ah
mov ebx, eax
lea eax, [edi + 1]
cmp eax, ecx
jae 0x422011
mov eax, dword [esi + 0xc]
movzx eax, byte [eax + edi + 1]
push eax
call fcn.004189f0
mov ecx, dword [esi + 0x40]
add esp, 4
cmp al, 0x40
mov edx, dword [esi + 0x2c]
je 0x422020
shl bl, 6
add al, bl
mov edx, dword [esi + 0x30]
mov ebx, dword [esi + 0x34]
mov byte [edx + ebx + 2], al
add ebx, 3
mov edx, ebx
jmp 0x422020
mov eax, dword [esi + 0x28]
mov edi, dword [esi + 0x30]
mov byte [edi + eax], 0
push edi
call fcn.00401ea0
add esp, 4
mov ebx, eax
mov eax, dword [esi + 0x4c]
mov dword [eax], ebx
jmp dword [0x4457f8]
push edi
call fcn.00408b30
add esp, 4
push ebx
call fcn.00402780
add esp, 4
mov ecx, dword [esi + 0x48]
mov dword [ecx], eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x445800]
jmp 0x422253
mov ecx, dword [esi + 0x10]
mov dword [ecx], 0x13728e8b
mov eax, dword [esi + 0x5c]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xa
ja 0x4221cc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 4]
mov eax, dword [esi + 4]
movzx edi, byte [ecx + eax]
mov eax, 0x7c
sub eax, edx
sub eax, edi
lea ecx, [edx + 0x83]
add edx, edi
add edx, 0x248e5583
and ecx, edi
add ecx, ecx
and eax, ecx
not ecx
and ecx, edx
sub ecx, eax
mov dword [esi + 8], ecx
mov eax, dword [esi + 8]
add al, 0x6b
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x10]
mov byte [edx + ecx], al
mov ecx, dword [esi + 0x10]
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xb
jb 0x422180
push ecx
mov eax, dword [esi + 0x48]
push dword [eax]
call fcn.004026d0
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x445808]
mov ecx, dword [esi + 0x18]
mov ecx, dword [ecx]
movzx edx, byte [eax]
test dl, dl
je 0x42220b
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx], dl
inc ecx
movzx edx, byte [eax]
inc eax
test dl, dl
jne 0x422200
mov byte [ecx], 0x3a
lea eax, [ecx + 2]
mov edx, dword [esi + 0x18]
mov dword [edx], eax
mov byte [ecx + 1], 0x20
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [esi + 0x1c]
movzx ecx, byte [ecx]
test cl, cl
je 0x42223b
mov edx, dword [esi + 0x58]
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x422230
lea edx, [eax + 1]
mov ecx, dword [esi + 0x18]
mov dword [esi + 0x14], edx
mov dword [ecx], edx
mov byte [eax], 0xa
mov eax, dword [esi + 0x4c]
mov ebx, dword [eax]
mov al, 1
mov dword [esi + 0x24], eax
push ebx
call fcn.00402a10
add esp, 4
xor eax, eax
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x445810]
xor ebx, ebx
test edi, edi
jne 0x42238b
jmp case.0x4215ed.11
mov byte [ecx], 0
mov eax, dword [esi + 0x60]
mov edi, dword [eax]
mov eax, dword [esi + 0x38]
mov eax, dword [eax]
sub ecx, eax
mov dword [esi + 0x14], ecx
mov dword [esi + 0x10], eax
mov dword [edx], 0x3f3a3ded
mov dword [edx + 4], 0xb370601
mov dword [edx + 8], 0xc00063d
mov dword [edx + 0xc], 0x32022ec3
mov dword [edx + 0x10], 0x27c9083d
mov dword [edx + 0x14], 0x152b0e0b
mov dword [edx + 0x18], 0x1b1ed71b
mov word [edx + 0x1c], 0x811c
mov dword [edx + 0x1e], 0
mov dword [edx + 0x22], 0
mov byte [edx + 0x26], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x26
ja 0x422327
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edx + ecx]
lea edx, [eax - 0x37914066]
add eax, 0x9a
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 8], edx
mov edx, dword [esi + 0x3c]
mov eax, dword [esi + 8]
add al, 0xca
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x27
jb 0x4222f0
mov ebx, dword [esi + 0x10]
jmp dword [0x445848]
mov ecx, edi
push dword [esi + 0x14]
push ebx
push edx
call fcn.00409630
mov edx, dword [esi + 0x3c]
nop
mov ecx, edi
push dword [esi + 0x14]
push ebx
push edx
call fcn.00409630
mov edx, dword [esi + 0x3c]
jmp dword [0x445850]
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x38]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x445858]
push eax
call fcn.00408b30
add esp, 4
cmp byte [esi + 0x24], 0
setne bl
mov eax, dword [esi + 0x44]
mov edi, dword [eax]
mov ecx, dword [eax + 4]
test edi, edi
je case.0x4215ed.11
cmp edi, ecx
je case.0x4215ed.11
push edi
call fcn.00408b30
add esp, 4
mov eax, dword [esi + 0x44]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
jmp case.0x4215ed.11
int3
mov eax, dword [case.0x42291c.16]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor ecx, ecx
test ebx, ebx
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x4458e0]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x38], 0xb3c9b5d2
mov dword [esp + 0x3c], 0xcfc2b1c3
mov dword [esp + 0x40], 0xcbbbcdb4
mov dword [esp + 0x44], 0xc7acc9b3
mov dword [esp + 0x48], 0xc3b5c5bb
mov dword [esp + 0x4c], 0xdfbac1b0
mov dword [esp + 0x50], 0xdba5dda9
mov dword [esp + 0x54], 0xd752d9e8
mov dword [esp + 0x58], 0xd3aed5aa
lea eax, [esp + 0x5c]
mov dword [esp + 0x5c], 0xd1d2
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0x27
ja 0x4224ba
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x38]
add ecx, 0xd22958b9
xor ecx, edx
mov dword [esp + 0xd4], ecx
mov ecx, dword [esp + 0xd4]
add cl, 0xf1
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x38], cl
mov ecx, dword [esp + 4]
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
cmp ecx, 0x28
jb 0x422470
lea edi, [esp + 0xa8]
lea edx, [esp + 0x38]
mov ecx, 9
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xcc]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne 0x4224f0
cmp eax, 0xffffffd9
jge 0x42298a
mov eax, 0xffffffff
jmp 0x42298d
xor edx, edx
test esi, esi
sete dl
mov eax, 0x20119
xor ecx, ecx
jmp dword [edx*4 + 0x4458c8]
jmp dword [ecx*4 + 0x445860]
mov dword [esp + 0x38], 0xab72a57a
mov dword [esp + 0x3c], 0xaf61a961
mov dword [esp + 0x40], 0xb379ad61
mov dword [esp + 0x44], 0xb766b166
mov dword [esp + 0x48], 0xbb68b569
mov dword [esp + 0x4c], 0xbf7fb969
mov dword [esp + 0x50], 0x4374bd7b
mov dword [esp + 0x54], 0x4792418d
mov dword [esp + 0x58], 0x4b98458d
mov dword [esp + 0x5c], 0x4f99499f
mov dword [esp + 0x60], 0x53984d84
mov dword [esp + 0x64], 0x5797518b
mov dword [esp + 0x68], 0x5b9f5580
mov dword [esp + 0x6c], 0x5f825986
mov dword [esp + 0x70], 0x63b05db9
mov dword [esp + 0x74], 0x678b6198
mov dword [esp + 0x78], 0x6bb165ba
mov dword [esp + 0x7c], 0x6f83699e
mov dword [esp + 0x80], 0x739f6d89
mov dword [esp + 0x84], 0x7172
mov dword [esp + 0xa8], 0
mov ecx, dword [esp + 0xa8]
cmp ecx, 0x4f
ja 0x422650
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa8]
movzx esi, byte [esp + ecx + 0x38]
lea ecx, [edx + 0xe472665]
and ecx, esi
add edx, esi
add edx, 0xe472665
add ecx, ecx
mov esi, edx
not esi
and esi, ecx
not ecx
and ecx, edx
sub ecx, esi
mov dword [esp + 0xd4], ecx
mov ecx, dword [esp + 0xd4]
add cl, 0x3d
mov edx, dword [esp + 0xa8]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 0xa8]
mov ecx, dword [esp + 0xa8]
cmp ecx, 0x50
jb 0x4225f0
lea ecx, [esp + 4]
lea edx, [esp + 0x38]
push 0
push 0
push eax
push ecx
push edx
call fcn.0043d430
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x445868]
jmp dword [0x445874]
mov esi, 4
xor eax, eax
cmp esi, 4
setb al
jmp dword [eax*4 + 0x4458b8]
xor edx, edx
cmp esi, 4
sete dl
mov eax, 0x20119
xor ecx, ecx
jmp dword [edx*4 + 0x4458c0]
xor eax, eax
jmp dword [eax*4 + 0x4458b0]
lea eax, [esp + 0x38]
push eax
call fcn.0043c8e0
add esp, 4
movzx eax, al
jmp dword [eax*4 + 0x4458a0]
xor eax, eax
cmp dword [esp + 0x38], 1
sete al
jmp dword [eax*4 + 0x4458a8]
xor esi, esi
mov eax, 1
jmp dword [eax*4 + 0x4458b0]
xor esi, esi
xor eax, eax
cmp esi, 4
setb al
jmp dword [eax*4 + 0x4458b8]
xor eax, eax
cmp esi, 4
setb al
jmp dword [eax*4 + 0x4458b8]
xor ebx, ebx
jmp dword [0x445890]
push esi
call fcn.00408b30
add esp, 4
jmp case.0x42266a.6
mov ecx, dword [esp + 0x2c]
lea eax, [ecx + ecx]
add eax, 2
inc ecx
jns 0x422752
mov eax, 0xffffffff
push eax
call fcn.00408b20
add esp, 4
mov esi, eax
mov dword [esp + 0x38], 0xab56a569
mov dword [esp + 0x3c], 0xaf5ca95f
mov dword [esp + 0x40], 0xb340ad49
mov dword [esp + 0x44], 0xb760b15e
mov dword [esp + 0x48], 0xbb40b551
mov dword [esp + 0x4c], 0xbfb8b952
mov byte [esp + 0x50], 0
mov dword [esp + 0xa8], 0
mov eax, dword [esp + 0xa8]
cmp eax, 0x18
ja 0x422805
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa8]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + ecx]
add edx, 0x33efd465
add eax, 0x33efd465
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xd4], edx
mov eax, dword [esp + 0xd4]
add al, 0x3d
mov ecx, dword [esp + 0xa8]
mov byte [esp + ecx + 0x38], al
inc dword [esp + 0xa8]
mov eax, dword [esp + 0xa8]
cmp eax, 0x19
jb 0x4227b0
push edi
push esi
push 0
lea eax, [esp + 0x44]
push eax
push dword [esp + 0x14]
call fcn.0043e020
add esp, 0x14
shr eax, 0x1f
mov ebx, esi
jmp dword [eax*4 + 0x445888]
mov eax, dword [esp + 4]
mov dword [esp + 0x38], 0x4a555457
lea ecx, [esp + 0x3c]
mov word [ecx + 4], 0
mov dword [ecx], 0
mov dword [esp + 0xa8], 0
mov ecx, dword [esp + 0xa8]
cmp ecx, 9
ja 0x4228ca
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0xa8]
movzx edx, byte [esp + edx + 0x38]
lea esi, [ecx + 0x4d]
mov edi, 0x7645bcb2
sub edi, ecx
or edi, edx
not edx
or edx, esi
add edi, edx
mov ecx, 0xfffffffe
sub ecx, edi
mov dword [esp + 0xd4], ecx
mov ecx, dword [esp + 0xd4]
mov edx, ecx
or edx, 0xe4
and ecx, 0xe4
add ecx, edx
inc cl
mov edx, dword [esp + 0xa8]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 0xa8]
mov ecx, dword [esp + 0xa8]
cmp ecx, 0xa
jb 0x422860
mov ecx, dword [0x449c88]
test ecx, ecx
je case.default.0x42291c
mov edx, dword [esp + 0x38]
xor esi, esi
mov edi, dword [0x449c8c]
cmp dword [edi + esi*8], 0xad91fd63
je 0x4228f0
inc esi
cmp ecx, esi
jne 0x4228e0
jmp case.default.0x42291c
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.default.0x42291c
push eax
push 1
push dword [0x449c90]
push ecx
call fcn.0043a6a0
add esp, 0x10
nop
nop
nop
nop
nop
nop
xor eax, eax
test ebx, ebx
setne al
mov esi, 2
jmp dword [eax*4 + 0x445898]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x445880]
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x14]
push eax
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x24]
call fcn.0043d920
add esp, 0x24
lea edi, [esp + 0x2c]
lea eax, [esp + 0x14]
push edi
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x24]
call fcn.0043d920
add esp, 0x24
jmp dword [0x44587c]
add eax, 0x26
push eax
call fcn.00408b20
add esp, 4
mov esi, eax
movzx ecx, word [ebx]
test cx, cx
je 0x4229c1
lea edx, [ebx + 2]
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4229b0
mov word [eax], 0
movzx ecx, word [esp + 0xa8]
test cx, cx
je 0x4229f1
lea edx, [esp + 0xaa]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4229e0
mov word [eax], 0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x90], esi
jmp dword [eax*4 + 0x4458e8]
jmp dword [0x4458f4]
push ebx
call fcn.00408b30
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
push ebx
call fcn.00408b30
add esp, 4
jmp dword [0x4458fc]
lea eax, [esp + 0x14]
push 0x60
push 3
push 0x120089
push eax
push esi
call fcn.0043cb20
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x445900]
xor esi, esi
xor edi, edi
jmp dword [0x445980]
push dword [esp + 0x90]
call fcn.00408b30
add esp, 4
xor eax, eax
cmp esi, edi
sete al
jmp dword [eax*4 + 0x445988]
xor eax, eax
jmp dword [0x445aa8]
jmp dword [0x445908]
lea eax, [esp + 0x2c]
push 0
push eax
push dword [esp + 0x1c]
call fcn.0043cee0
add esp, 0xc
nop
nop
nop
nop
nop
nop
lea eax, [esp + 0x2c]
push 0
push eax
push dword [esp + 0x1c]
call fcn.0043cee0
add esp, 0xc
jmp dword [0x445910]
not eax
shr eax, 0x1f
xor edi, edi
xor ebx, ebx
jmp dword [eax*4 + 0x445918]
mov esi, dword [esp + 0x2c]
lea eax, [esi + 1]
push eax
call fcn.00408b20
add esp, 4
push 0
push esi
mov dword [esp + 0x90], eax
push eax
push dword [esp + 0x20]
call fcn.0043d000
add esp, 0x10
not eax
shr eax, 0x1f
xor edi, edi
xor ebx, ebx
jmp dword [eax*4 + 0x445920]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x88]
mov byte [edi + esi], 0
push 0x20
call fcn.00408b20
add esp, 4
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax], 0
mov dword [esp + 0x8c], eax
mov ecx, eax
push esi
push edi
call fcn.00425300
movzx eax, al
xor edi, edi
xor ebx, ebx
jmp dword [eax*4 + 0x445928]
mov dword [esp + 0x38], 0x7707e63
mov dword [esp + 0x3c], 0x7a086803
mov dword [esp + 0x40], 0x77636fb7
mov dword [esp + 0x44], 0x70ad7c0a
mov dword [esp + 0x48], 0x6e7b6010
mov dword [esp + 0x4c], 0x686958ab
mov dword [esp + 0x50], 0x1f601867
mov dword [esp + 0x54], 0x911f
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x1f
ja 0x422c19
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 4]
mov eax, dword [esp + 4]
movzx esi, byte [esp + eax + 0x38]
lea eax, [edx - 0x9ec03e]
lea ecx, [edx + esi]
add ecx, 0xff613fc2
add edx, 0xc2
and edx, esi
and eax, esi
add eax, edx
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xd4]
add al, 0xb2
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x38], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x20
jb 0x422bc0
mov ecx, dword [esp + 0x8c]
lea eax, [esp + 0x38]
push eax
call fcn.00425540
xor ecx, ecx
test eax, eax
setne cl
xor edi, edi
xor ebx, ebx
jmp dword [ecx*4 + 0x445930]
mov esi, dword [eax + 8]
xor ebx, ebx
xor eax, eax
test esi, esi
setne al
xor edi, edi
xor ecx, ecx
jmp dword [eax*4 + 0x445938]
mov eax, dword [esi]
mov dword [esp + 0x20], eax
mov eax, edi
sub eax, ebx
sar eax, 3
cmp edi, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x34], esi
jne 0x422d35
mov dword [esp + 0x10], ecx
mov ecx, eax
lea edx, [eax + 1]
shr eax, 1
add eax, ecx
cmp eax, edx
ja 0x422c90
mov eax, edx
mov edi, eax
and edi, 8
mov ecx, eax
or ecx, 8
imul ecx, edi
xor edi, 8
mov dword [esp + 0x28], eax
and eax, 0xfffffff7
imul eax, edi
add ecx, eax
push ecx
call fcn.00408b20
add esp, 4
mov dword [esp + 0xc], eax
test ebx, ebx
je 0x422d23
mov edi, dword [esp + 0x10]
cmp ebx, edi
je 0x422d1a
mov edx, ebx
not edx
xor ecx, ecx
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea edi, [ebx + ecx]
mov esi, ebx
mov ebx, edx
and ebx, esi
and edi, dword [esp + 0x24]
sub edi, ebx
mov ebx, dword [esi + ecx]
mov dword [eax + edi], ebx
mov ebx, dword [esi + ecx + 4]
mov dword [eax + edi + 4], ebx
mov ebx, esi
mov dword [esi + ecx], 0
add edx, 0xfffffff8
lea edi, [ebx + ecx]
add edi, 8
add ecx, 8
cmp edi, dword [esp + 0x10]
jne 0x422ce0
mov edi, ebx
push edi
call fcn.00408b30
add esp, 4
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0xc]
lea edi, [ebx + eax*8]
mov ecx, dword [esp + 0x28]
lea ecx, [ebx + ecx*8]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x28], edi
mov dword [ebx + eax*8], 0
mov dword [esp + 0xc], ebx
mov dword [ebx + eax*8 + 4], 0
xor ebx, ebx
mov edi, dword [esp + 0x20]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, ebx
inc ebx
cmp byte [edi + esi], 0
jne 0x422d60
lea eax, [ebx - 1]
mov dword [esp + 0x30], eax
push ebx
call fcn.00408b20
add esp, 4
mov edx, eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
mov dword [ecx + eax*8], edx
mov ecx, ebx
shr ecx, 2
mov eax, edi
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov edx, ebx
and edx, 0xfffffffc
mov edi, dword [esp + 0x24]
add edi, edx
add edx, dword [esp + 0x20]
mov eax, ebx
and eax, 3
mov ecx, eax
shr ecx, 1
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], edx
mov dword [esp + 0x24], edi
mov edx, dword [esp + 0x98]
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov ecx, eax
xor ecx, 0xfffffffe
or eax, 1
and eax, ecx
je 0x422dfa
mov ecx, ebx
and ecx, 2
mov edx, dword [esp + 0x94]
add edx, ecx
mov edi, dword [esp + 0x24]
add edi, ecx
push eax
push edx
push edi
call fcn.00408b50
add esp, 0xc
xor eax, eax
cmp ebx, 1
mov edi, dword [esp + 0x28]
je 0x422e8d
mov eax, 0xffffffff
cmp ebx, 2
je 0x422e63
and esi, 0xfffffffe
mov ebx, dword [esp + 0x20]
nop
nop
nop
nop
nop
nop
mov ecx, eax
shr ecx, 8
xor al, byte [ebx]
movzx eax, al
mov eax, dword [eax*4 + 0x4407d0]
mov edx, eax
and edx, ecx
add ecx, eax
add edx, edx
sub ecx, edx
mov eax, ecx
shr eax, 8
xor cl, byte [ebx + 1]
add ebx, 2
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4407d0]
mov edx, ecx
and edx, eax
add eax, ecx
add edx, edx
sub eax, edx
add esi, 0xfffffffe
jne 0x422e20
mov dword [esp + 0x20], ebx
test byte [esp + 0x30], 1
je 0x422e8b
mov ecx, eax
shr ecx, 8
mov edx, dword [esp + 0x20]
xor al, byte [edx]
movzx eax, al
mov eax, dword [eax*4 + 0x4407d0]
mov edx, eax
and edx, ecx
add ecx, eax
add edx, edx
sub ecx, edx
mov eax, ecx
not eax
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0xc]
mov dword [edx + ecx*8 + 4], eax
add edi, 8
mov esi, dword [esp + 0x34]
jmp dword [0x445944]
mov esi, dword [esi + 4]
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [esi + 4]
jmp dword [0x44594c]
xor eax, eax
test esi, esi
setne al
mov ecx, edx
mov ebx, edx
mov ecx, dword [esp + 0x10]
jmp dword [eax*4 + 0x445938]
mov eax, dword [case.0x422c35.0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [case.0x42291c.36]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x445970]
mov esi, dword [esp + 0x8c]
mov ecx, esi
call fcn.004256c0
push esi
call fcn.00408b30
add esp, 4
jmp dword [0x445978]
jmp dword [0x445978]
push dword [esp + 0x88]
call fcn.00408b30
add esp, 4
mov dword [esp + 0xc], ebx
mov ebx, edi
mov eax, dword [esp + 0x14]
mov dword [esp + 0x38], 0x4a555457
mov dword [esp + 0x3c], 0
mov word [esp + 0x40], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 9
ja 0x422fbb
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x38]
lea esi, [ecx + 0x4d]
mov edi, 0x7645bcb2
sub edi, ecx
or edi, edx
not edx
or edx, esi
add edi, edx
mov ecx, 0xfffffffe
sub ecx, edi
mov dword [esp + 0xd4], ecx
mov ecx, dword [esp + 0xd4]
mov edx, ecx
or edx, 0xe4
and ecx, 0xe4
add ecx, edx
inc cl
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xa
jb 0x422f60
mov ecx, dword [0x449c88]
test ecx, ecx
je 0x422ffc
mov edx, dword [esp + 0x38]
xor esi, esi
mov edi, dword [0x449c8c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xad91fd63
je 0x422ff0
inc esi
cmp ecx, esi
jne 0x422fe0
jmp 0x422ffc
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x4235a0
mov edi, ebx
mov esi, dword [esp + 0xc]
jmp dword [0x445980]
xor eax, eax
cmp esi, edi
sete al
jmp dword [eax*4 + 0x445988]
mov dword [esp + 0x28], edi
mov eax, edi
mov dword [esp + 0xc], esi
sub eax, esi
sar eax, 3
imul eax, eax, 0x421
push eax
call fcn.00408b20
add esp, 4
mov dword [esp + 0x1c], eax
mov dword [esp + 0x38], 0xf3be8de9
mov dword [esp + 0x3c], 0xf751f163
mov dword [esp + 0x40], 0xfb56f555
mov dword [esp + 0x44], 0xff6ef9b9
mov dword [esp + 0x48], 0xe3a6fd6c
mov dword [esp + 0x4c], 0xe772e141
mov dword [esp + 0x50], 0xeb8fe545
mov dword [esp + 0x54], 0xef59e954
mov dword [esp + 0x58], 0xd377ed78
mov dword [esp + 0x5c], 0xd77bd171
mov dword [esp + 0x60], 0xdb76d568
mov dword [esp + 0x64], 0xdf79d94b
mov dword [esp + 0x68], 0xc36edd7d
mov dword [esp + 0x6c], 0xc75cc192
mov dword [esp + 0x70], 0xcb60c560
lea eax, [esp + 0x74]
mov word [esp + 0x74], 0xc9c8
mov dword [esp + 0x76], 0
mov dword [esp + 0x79], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0x44
ja 0x423125
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x38]
lea esi, [ecx + 0x17f8f7be]
add ecx, 0xbe
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 0xd4], esi
mov ecx, dword [esp + 0xd4]
add cl, 0xce
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x45
jb 0x4230e0
lea esi, [esp + 0xd4]
lea edx, [esp + 0x38]
mov edi, esi
mov ecx, 0xf
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x110]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea ebx, [esp + 0x2c]
push ebx
push 0
push 0
push 0x1e
push esi
push 0
call dword [0x449c84]
mov edi, dword [esp + 0x2c]
test edi, edi
jns 0x423171
mov eax, 0xffffffff
jmp 0x423174
lea eax, [edi + edi]
push eax
call fcn.00408b20
add esp, 4
mov esi, eax
push ebx
push edi
push eax
push 0x1e
lea eax, [esp + 0xe4]
push eax
push 0
call dword [0x449c84]
lea eax, [esp + 0x9c]
push 0x60
push 3
push 0x120089
push eax
mov dword [esp + 0xa8], esi
push esi
call fcn.0043cb20
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x445990]
xor edx, edx
mov ebx, dword [esp + 0x1c]
jmp dword [0x445a80]
push dword [esp + 0x98]
mov esi, ebx
mov ebx, edx
call fcn.00408b30
add esp, 4
mov eax, ebx
and al, 1
movzx ecx, al
mov edi, dword [esp + 0x28]
mov eax, ebx
mov ebx, esi
mov esi, dword [esp + 0xc]
jmp dword [ecx*4 + 0x445a88]
mov byte [ebx], 0
sub ebx, dword [esp + 0x1c]
mov dword [esp + 0x38], 0xe7d4d581
mov dword [esp + 0x3c], 0xdbefece5
mov dword [esp + 0x40], 0xa6dedce1
mov dword [esp + 0x44], 0x9ca484e3
mov dword [esp + 0x48], 0x8fe5a691
mov dword [esp + 0x4c], 0xad9394ab
mov dword [esp + 0x50], 0xbba8efab
mov word [esp + 0x54], 0x21b6
mov dword [esp + 0x56], 0
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x14]
cmp eax, 0x21
ja 0x4232a5
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
movzx ecx, byte [esp + ecx + 0x38]
mov edx, eax
and edx, 0xd24848b5
xor eax, 0x524848b5
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 4], edx
mov eax, dword [esp + 4]
add al, 0xd
mov ecx, dword [esp + 0x14]
mov byte [esp + ecx + 0x38], al
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, 0x22
jb 0x423260
mov ecx, dword [ebp + 8]
push ebx
push dword [esp + 0x20]
lea eax, [esp + 0x40]
push eax
call fcn.00409630
jmp dword [0x445a90]
lea eax, [esp + 0xa4]
push 0
push eax
push dword [esp + 0xa4]
call fcn.0043cee0
add esp, 0xc
not eax
shr eax, 0x1f
xor ecx, ecx
mov ebx, dword [esp + 0x1c]
jmp dword [eax*4 + 0x445998]
mov esi, dword [esp + 0xa4]
lea eax, [esi + 1]
push eax
call fcn.00408b20
add esp, 4
mov edi, eax
push 0
push esi
push eax
push dword [esp + 0xa8]
call fcn.0043d000
add esp, 0x10
not eax
shr eax, 0x1f
xor ecx, ecx
mov ebx, dword [esp + 0x1c]
jmp dword [eax*4 + 0x4459a0]
mov esi, dword [esp + 0xa4]
mov byte [edi + esi], 0
push 0x20
call fcn.00408b20
add esp, 4
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax], 0
mov dword [esp + 0xa0], eax
mov ecx, eax
push esi
mov dword [esp + 0xd4], edi
push edi
call fcn.00425300
movzx eax, al
mov dword [esp + 0x10], 0
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0xc]
jmp dword [eax*4 + 0x4459a8]
mov dword [esp + 0x38], 0x6f5e6833
mov dword [esp + 0x3c], 0x586e5e73
mov dword [esp + 0x40], 0x6f5347af
mov dword [esp + 0x44], 0x42a55264
mov dword [esp + 0x48], 0x744b4e62
mov dword [esp + 0x4c], 0x717da8bb
mov dword [esp + 0x50], 0x77454670
mov dword [esp + 0x54], 0x7f4146a7
mov word [esp + 0x58], 0xd941
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov word [esp + 0x62], 0
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x14]
cmp eax, 0x2b
ja 0x423445
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0x47fd97bf]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add edx, esi
neg edx
add eax, edx
add eax, 0x47fd97be
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0xc7
mov ecx, dword [esp + 0x14]
mov byte [esp + ecx + 0x38], al
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, 0x2c
jb 0x423400
lea esi, [esp + 0x38]
mov edi, dword [esp + 0xa0]
jmp dword [0x4459b0]
mov ecx, edi
push esi
call fcn.00425540
nop
nop
mov ecx, edi
push esi
call fcn.00425540
jmp dword [0x4459b8]
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp + 0x10], 0
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0xc]
jmp dword [ecx*4 + 0x4459c0]
mov dword [esp + 0xc], esi
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0xd0]
jmp dword [0x445a60]
mov esi, dword [esp + 0xa0]
mov ecx, esi
call fcn.004256c0
push esi
call fcn.00408b30
mov ecx, dword [esp + 0x14]
add esp, 4
jmp dword [0x445a68]
jmp dword [0x445a68]
push edi
mov esi, ecx
call fcn.00408b30
mov ecx, esi
add esp, 4
mov eax, dword [case.0x422c35.26]
nop
nop
nop
nop
nop
nop
jmp eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x38], 0x4a555457
mov dword [esp + 0x3c], 0
mov word [esp + 0x40], 0
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0x14]
cmp ecx, 9
ja 0x423575
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
movzx edx, byte [esp + edx + 0x38]
lea esi, [ecx + 0x4d]
mov edi, 0x7645bcb2
sub edi, ecx
or edi, edx
not edx
or edx, esi
add edi, edx
mov ecx, 0xfffffffe
sub ecx, edi
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
mov edx, ecx
or edx, 0xe4
and ecx, 0xe4
add ecx, edx
inc cl
mov edx, dword [esp + 0x14]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
cmp ecx, 0xa
jb 0x423520
mov ecx, dword [0x449c88]
test ecx, ecx
je 0x4235ca
mov edx, dword [esp + 0x38]
xor esi, esi
mov edi, dword [0x449c8c]
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xad91fd63
je 0x4235be
inc esi
cmp ecx, esi
jne 0x423590
jmp 0x4235ca
push eax
push 1
push dword [0x449c90]
push ecx
call fcn.0043a6a0
add esp, 0x10
mov edi, ebx
mov esi, dword [esp + 0xc]
jmp dword [0x445980]
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x4236b0
mov edx, dword [esp + 0x10]
jmp dword [0x445a80]
mov eax, edx
and al, 1
movzx ecx, al
mov edi, dword [esp + 0x28]
mov eax, edx
mov esi, dword [esp + 0xc]
jmp dword [ecx*4 + 0x445a88]
jmp dword [0x445a90]
push dword [esp + 0x1c]
mov ebx, esi
mov esi, eax
call fcn.00408b30
mov eax, esi
mov esi, ebx
add esp, 4
mov ecx, dword [case.0x42291c.127]
nop
nop
nop
nop
jmp ecx
and al, 1
jmp dword [0x445aa8]
test esi, esi
je case.0x42291c.132
cmp esi, edi
je case.0x42291c.132
mov dword [esp + 0x10], eax
mov ebx, esi
jmp 0x423634
cmp esi, edi
je 0x423648
mov eax, dword [esi]
add esi, 8
test eax, eax
je 0x423630
push eax
call fcn.00408b30
add esp, 4
jmp 0x423630
push ebx
call fcn.00408b30
add esp, 4
xor edi, edi
xor esi, esi
mov eax, dword [esp + 0x10]
jmp case.0x42291c.132
push ebx
call fcn.00408b30
add esp, 4
xor edi, edi
xor esi, esi
mov eax, dword [esp + 0x10]
jmp dword [0x445ab0]
test esi, esi
je 0x423671
cmp esi, edi
je 0x423671
mov dword [esp + 0x10], eax
mov ebx, esi
jmp 0x423694
cmp esi, edi
je 0x423660
mov eax, dword [esi]
add esi, 8
test eax, eax
je 0x423690
push eax
call fcn.00408b30
add esp, 4
jmp 0x423690
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push eax
push 1
push dword [0x449c90]
push ecx
call fcn.0043a6a0
add esp, 0x10
mov edx, dword [esp + 0x10]
jmp dword [0x445a80]
add eax, 8
mov dword [esp + 0x10], 0
mov ecx, dword [eax]
xor eax, eax
test ecx, ecx
setne al
mov ebx, dword [esp + 0x1c]
jmp dword [eax*4 + 0x4459c8]
add ecx, 4
mov ecx, dword [ecx]
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x4459c8]
mov edx, dword [ecx]
cmp dword [ecx + 0x18], 3
mov edi, 0
jne case.default.0x42371a
mov edi, dword [ecx + 0x10]
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x4459d0]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x4459d8]
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x94], ebx
mov dword [esp + 0xc], esi
mov eax, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
inc eax
cmp byte [ecx], 0
jne case.default.0x42378b
mov esi, edi
sub ecx, edi
inc ecx
shr ecx, 1
mov dword [esp + 0x8c], ecx
lea eax, [ecx + 1]
push eax
call fcn.00408b20
add esp, 4
mov edi, dword [case.0x42291c.86]
movsx edx, byte [esi]
xor ebx, ebx
test edx, edx
setne bl
mov dword [esp + 0x90], eax
mov ecx, eax
jmp dword [ebx*4 + 0x4459e0]
mov ecx, dword [esp + 0x24]
mov byte [ecx], dl
inc ecx
movsx edx, byte [esi]
xor ebx, ebx
test edx, edx
setne bl
jmp dword [ebx*4 + 0x4459e0]
mov dword [esp + 0x20], esi
inc esi
mov dword [esp + 0x24], ecx
mov ebx, edx
or ebx, 0x20
add ebx, 0xffffff9f
cmp ebx, 5
ja 0x4237e0
mov ebx, edx
or ebx, 0xffffffbe
and edx, 0xffffff9e
add edx, ebx
add edx, 0xb
jmp case.0x42291c.84
add edx, 0xffffffd0
cmp edx, 0xa
jb case.0x42291c.84
mov edx, 0xffffffff
nop
nop
nop
jmp edi
movsx ebx, byte [esi]
xor ecx, ecx
test ebx, ebx
setne cl
jmp dword [ecx*4 + 0x4459f8]
shl edx, 4
mov eax, dword [esp + 0x20]
add eax, 2
mov esi, ebx
or esi, 0x20
add esi, 0xffffff9f
cmp esi, 5
ja case.default.0x42383c
mov esi, ebx
or esi, 0xffffffbe
and ebx, 0xffffff9e
add ebx, esi
add ebx, 0xb
or ebx, edx
mov ecx, dword [esp + 0x24]
mov byte [ecx], bl
inc ecx
movsx edx, byte [eax]
xor ebx, ebx
test edx, edx
setne bl
mov esi, eax
jmp dword [ebx*4 + 0x4459e0]
add ebx, 0xffffffd0
cmp ebx, 0xa
mov ecx, dword [esp + 0x24]
jb case.default.0x423872
mov ebx, 0xffffffff
or ebx, edx
mov byte [ecx], bl
inc ecx
mov esi, eax
movsx edx, byte [eax]
xor ebx, ebx
test edx, edx
setne bl
jmp dword [ebx*4 + 0x4459e0]
mov byte [ecx], 0
mov edi, dword [esp + 0x34]
inc edi
movzx eax, byte [edi - 1]
movsx ecx, al
lea edx, [ecx - 9]
cmp edx, 5
jb 0x423880
cmp ecx, 0x20
je 0x423880
movzx ecx, al
cmp ecx, 0x2b
je 0x4238a6
cmp ecx, 0x2d
jne 0x423afd
cmp al, 0x2b
sete byte [esp + 0x88]
movzx eax, byte [edi]
cmp al, 0x30
jne 0x4238c7
movzx eax, byte [edi + 1]
and al, 0xdf
xor ecx, ecx
cmp al, 0x58
sete cl
lea edi, [edi + ecx*2]
xor ecx, ecx
xor eax, eax
xor ebx, ebx
jmp 0x4238d6
mov eax, ebx
mov ecx, edx
mov ebx, esi
mov edx, ebx
mov esi, eax
mov dword [esp + 0x24], ecx
movsx eax, byte [edi]
lea ecx, [eax - 0x30]
cmp ecx, 0xa
jb 0x42390a
mov ecx, eax
and ecx, 0xffffffdf
add ecx, 0xffffffbf
cmp ecx, 0x19
ja 0x423984
or al, 0x20
cmp al, 0x66
jg 0x423984
movsx ecx, al
add ecx, 0xffffffa9
mov dword [esp + 0x20], ecx
inc edi
mov ecx, esi
and ecx, edx
mov eax, 0xffffffff
mov ebx, 0xffffffff
cmp ecx, 0xffffffff
mov ecx, 0x22
je 0x4238d6
mov ecx, edx
shld edx, esi, 4
shr ecx, 0x1c
shl esi, 4
mov eax, ecx
neg eax
mov ebx, 0
sbb ebx, ebx
or edx, ebx
or ebx, esi
mov eax, edx
mov edx, dword [esp + 0x20]
mov esi, edx
sar esi, 0x1f
add ebx, edx
adc esi, eax
mov eax, 0xffffffff
mov edx, 0xffffffff
jb 0x423961
mov eax, esi
mov edx, ebx
mov esi, eax
mov ebx, edx
mov edx, 0x22
mov eax, 0x22
jb 0x423975
mov eax, dword [esp + 0x24]
test ecx, ecx
jne 0x4238d0
mov edx, eax
jmp 0x4238d0
mov dword [esp + 0x34], 0
mov eax, esi
neg eax
mov ecx, 0
mov dword [esp + 0x20], edx
sbb ecx, edx
cmp byte [esp + 0x88], 0
jne case.default.0x4239be
mov esi, eax
mov dword [esp + 0x20], ecx
mov edi, dword [case.0x42291c.97]
xor eax, eax
mov ebx, dword [esp + 0xc]
cmp ebx, dword [esp + 0x28]
setne al
jmp dword [eax*4 + 0x445a00]
mov eax, dword [ebx]
mov dword [esp + 0x34], eax
xor eax, eax
jmp dword [eax*4 + 0x445a20]
add ebx, 8
xor eax, eax
cmp ebx, dword [esp + 0x28]
setne al
jmp dword [eax*4 + 0x445a00]
cmp dword [esp + 0x24], 0x22
setne al
mov ecx, dword [ebx + 4]
mov edx, ecx
shr edx, 0x1c
xor edx, dword [esp + 0x20]
shl ecx, 4
or ecx, 1
xor ecx, esi
or ecx, edx
sete cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x445a08]
jmp edi
mov eax, 1
jmp dword [eax*4 + 0x445a20]
mov eax, dword [case.0x42291c.103]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
mov esi, dword [esp + 0x34]
test esi, esi
setne al
lea edi, [esp + 0x38]
mov ecx, dword [esp + 0x30]
jmp dword [eax*4 + 0x445a38]
mov esi, dword [esp + 0xc]
mov ebx, dword [esp + 0x94]
jmp dword [0x445a48]
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x3c], eax
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi + eax + 1], 0
lea eax, [eax + 1]
jne case.default.0x423ae8
mov dword [esp + 4], eax
mov dword [esp + 8], esi
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
push 0x79955919
push dword [0x449c94]
call fcn.0043bf80
add esp, 8
lea ecx, [esp + 4]
lea edx, [esp + 0x14]
push edx
push 1
push 0
push 0
push ecx
push 0
push edi
call eax
xor ecx, ecx
test eax, eax
setne cl
mov ebx, dword [esp + 0x94]
jmp dword [ecx*4 + 0x445a40]
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x30]
jmp dword [0x445a48]
dec edi
mov byte [esp + 0x88], 1
cmp al, 0x30
je 0x4238b7
jmp 0x4238c7
movzx eax, byte [esi]
test al, al
je 0x423b2b
inc esi
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x423b20
mov word [ebx], 0x203a
mov eax, ebx
add eax, 2
mov esi, dword [esp + 0x14]
test esi, esi
je 0x423b65
mov ecx, dword [esp + 0x18]
mov edx, esi
and edx, 3
je 0x423b69
xor edi, edi
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + edi], bl
inc edi
cmp edx, edi
jne 0x423b4a
add eax, edi
mov edx, esi
sub edx, edi
mov ebx, eax
jmp 0x423b6b
mov ebx, eax
jmp 0x423bab
mov edx, esi
cmp esi, 4
jb 0x423bab
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax], bl
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + 1], bl
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + 2], bl
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
lea esi, [eax + 4]
mov byte [eax + 3], bl
mov ebx, esi
mov eax, esi
add edx, 0xfffffffc
jne 0x423b70
mov byte [ebx], 0xa
inc ebx
push 0xe9520bac
push dword [0x449c7c]
call fcn.0043bf80
add esp, 8
push dword [esp + 0x18]
call eax
mov al, 1
mov dword [esp + 0x10], eax
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x30]
jmp dword [0x445a48]
push dword [esp + 0x90]
call fcn.00408b30
mov ecx, dword [esp + 0x34]
add esp, 4
nop
jmp dword [0x445a5c]
push eax
sub esp, 0x10
mov dword [esi + 0x3c], esp
sub esp, 0x20
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
push eax
mov dword [esi + 8], esp
sub esp, 0x10
mov dword [esi + 0x48], esp
sub esp, 0x18
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x30], ecx
mov esp, ecx
push eax
sub esp, 0x18
mov dword [esi + 0x40], esp
sub esp, 0x20
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0xc], ecx
mov esp, ecx
push eax
sub esp, 0x14
mov dword [esi + 0x38], esp
sub esp, 0x20
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x34], ecx
mov esp, ecx
mov dword [eax], 0x6b2b6d31
mov dword [eax + 4], 0x67f669f8
mov dword [eax + 8], 0x63036518
mov dword [eax + 0xc], 0x9fff61ec
mov dword [eax + 0x10], 0x9b9a9dc1
lea ecx, [eax + 0x14]
mov dword [esi + 0x54], ecx
mov dword [eax + 0x18], 0
mov dword [eax + 0x14], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x1b
ja 0x423cee
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edi, dword [esi + 4]
movzx edi, byte [eax + edi]
lea ebx, [ecx + 0x29aa75f2]
mov edx, ebx
and edx, edi
not edi
or edi, ebx
add edi, edx
neg edi
add ecx, edi
add ecx, 0x29aa75f1
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
add cl, 0x62
mov edx, dword [esi + 4]
mov byte [eax + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x1c
jb 0x423cb0
mov ecx, 5
mov ebx, dword [esi + 0x3c]
mov edi, ebx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov edi, ebx
add edi, 0x14
xor ecx, ecx
mov eax, dword [esi + 0x54]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov edi, dword [esi + 8]
push edi
push 0
push 0
push 9
push ebx
push 0
call dword [0x449c84]
mov edi, dword [edi]
test edi, edi
jns 0x423d2b
mov eax, 0xffffffff
jmp 0x423d2e
lea eax, [edi + edi]
push eax
call fcn.00408b20
add esp, 4
push dword [esi + 8]
push edi
push eax
push 9
push ebx
push 0
call dword [0x449c84]
mov edi, dword [esi + 0x30]
mov dword [edi], 0x739b6da8
mov dword [edi + 4], 0x77917187
mov dword [edi + 8], 0x7b8c7587
mov dword [edi + 0xc], 0x7f7e799c
lea eax, [edi + 0x10]
mov dword [esi + 8], eax
mov dword [edi + 0x10], 0
mov byte [edi + 0x14], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x14
mov ebx, dword [esi + 0x34]
ja 0x423dc9
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [edi + edx]
lea edi, [ecx - 0x94ba52]
add ecx, 0xae
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esi + 0x18], edi
mov edi, dword [esi + 0x30]
mov ecx, dword [esi + 0x18]
add cl, 0x3e
mov edx, dword [esi + 4]
mov byte [edi + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x15
jb 0x423d90
mov ecx, 4
mov edx, dword [esi + 0x48]
mov eax, edi
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
add edx, 0x10
mov edi, edx
xor ecx, ecx
mov eax, dword [esi + 8]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov edi, dword [esi + 0xc]
mov dword [edi], 0x23bb219a
mov dword [edi + 4], 0x1f811daf
mov dword [edi + 8], 0x1b8a198f
mov dword [edi + 0xc], 0x17a91586
mov dword [edi + 0x10], 0x138611b5
mov dword [edi + 0x14], 0xf9e0db1
mov dword [edi + 0x18], 0xb080985
lea eax, [edi + 0x1c]
mov dword [esi + 0x30], eax
mov dword [edi + 0x1c], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x1f
ja 0x423e89
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
mov edi, dword [esi + 0xc]
movzx edi, byte [edi + edx]
lea edx, [ecx + edi]
add edx, 0xcd46355b
add ecx, 0xcd46355b
and ecx, edi
add ecx, ecx
mov edi, ecx
xor edi, edx
not ecx
and ecx, edx
add ecx, ecx
sub ecx, edi
mov edi, dword [esi + 0xc]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
add cl, 0x83
mov edx, dword [esi + 4]
mov byte [edi + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x20
jb 0x423e40
mov ecx, 7
mov edx, dword [esi + 0x40]
mov eax, edi
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
add edx, 0x1c
mov edi, edx
xor ecx, ecx
mov eax, dword [esi + 0x30]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [ebx], 0x8b738d50
mov dword [ebx + 4], 0x87798907
mov dword [ebx + 8], 0x830c8577
mov dword [ebx + 0xc], 0x9f4e817c
mov dword [ebx + 0x10], 0x9b449d70
lea eax, [ebx + 0x14]
mov word [ebx + 0x14], 0x9998
mov dword [ebx + 0x16], 0
mov dword [ebx + 0x1a], 0
mov byte [ebx + 0x1e], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x1e
ja 0x423f36
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [ebx + edx]
lea edi, [ecx + 0x14dd18c2]
add ecx, 0xc2
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esi + 0x18], edi
mov ecx, dword [esi + 0x18]
add cl, 0xb2
mov edx, dword [esi + 4]
mov byte [ebx + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x1f
jb 0x423f00
mov ecx, 5
mov edx, dword [esi + 0x38]
mov edi, edx
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
add edx, 0x14
mov edi, edx
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
jmp case.0x42291c.136
mov ecx, 5
mov edx, ebx
mov ebx, dword [esi + 0x7c]
mov edi, ebx
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edi, ebx
add edi, 0x14
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov edx, dword [esi + 0x5c]
mov eax, dword [esi + 0x2c]
mov dword [edx], eax
mov eax, dword [esi + 0x44]
mov dword [edx + 4], eax
mov dword [edx + 8], ebx
mov eax, edx
add eax, 0xc
mov ecx, dword [esi + 0x64]
mov dword [ecx], eax
mov eax, dword [esi + 0x84]
mov byte [eax], 0
mov eax, dword [esi + 0x68]
mov dword [eax], edx
jmp dword [0x445ac0]
push eax
mov ecx, esp
sub esp, 0x14
mov dword [esi + 0x14], esp
sub esp, 0x20
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
push eax
mov dword [esi + 0x48], esp
push eax
mov dword [esi + 0x6c], esp
sub esp, 0x10
mov dword [esi + 0x2c], esp
sub esp, 0x18
mov edx, esp
and edx, 0xfffffff8
mov dword [esi + 8], edx
mov esp, edx
push eax
sub esp, 0x18
mov dword [esi + 0x44], esp
sub esp, 0x20
mov edx, esp
and edx, 0xfffffff8
mov dword [esi + 0xc], edx
mov esp, edx
push eax
sub esp, 0x14
mov dword [esi + 0x7c], esp
sub esp, 0x20
mov edx, esp
and edx, 0xfffffff8
mov dword [esi + 0x58], edx
mov esp, edx
push eax
sub esp, 8
mov dword [esi + 0x5c], esp
push eax
mov dword [esi + 0x84], esp
push eax
mov dword [esi + 0x68], esp
push eax
mov dword [esi + 0x64], esp
push eax
mov dword [esi + 0x38], esp
push eax
mov dword [esi + 0x50], esp
push eax
mov dword [esi + 0x34], esp
sub esp, 0x1c
mov dword [esi + 0x54], esp
sub esp, 0x28
mov edx, esp
and edx, 0xfffffff8
mov dword [esi + 0xbc], edx
mov esp, edx
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x40], esp
push eax
mov dword [esi + 0xa0], esp
push eax
mov dword [esi + 0x94], esp
push eax
mov dword [esi + 0x90], esp
sub esp, 0x20
mov edx, esp
and edx, 0xfffffff8
mov dword [esi + 0xb4], edx
mov esp, edx
push eax
mov dword [esi + 0x8c], esp
sub esp, 8
mov dword [esi + 0xb0], esp
sub esp, 8
mov dword [esi + 0x60], esp
sub esp, 0x10
mov dword [esi + 0x3c], esp
sub esp, 0x18
mov edx, esp
and edx, 0xfffffff8
mov dword [esi + 0x4c], edx
mov esp, edx
push eax
mov dword [esi + 0x70], esp
sub esp, 0x30
mov dword [esi + 0x74], esp
sub esp, 0x38
mov edx, esp
and edx, 0xfffffff8
mov dword [esi + 0xb8], edx
mov esp, edx
push eax
mov dword [esi + 0xa8], esp
sub esp, 0x14
mov dword [esi + 0x9c], esp
sub esp, 0x20
mov edx, esp
and edx, 0xfffffff8
mov dword [esi + 0x30], edx
mov esp, edx
push eax
mov dword [esi + 0xa4], esp
sub esp, 0x10
mov edx, esp
and edx, 0xfffffff8
mov dword [esi + 0x98], edx
mov esp, edx
mov dword [esi + 0x80], ecx
mov edx, dword [ebp + 8]
mov dword [ecx], edx
mov dword [eax], 0x6b2b6d31
mov dword [eax + 4], 0x67f669f8
mov dword [eax + 8], 0x63036518
mov dword [eax + 0xc], 0x9fff61ec
mov dword [eax + 0x10], 0x9b9a9dc1
lea ecx, [eax + 0x14]
mov dword [esi + 0x78], ecx
mov dword [eax + 0x18], 0
mov dword [eax + 0x14], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x1b
ja 0x42417e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edi, dword [esi + 4]
movzx edi, byte [eax + edi]
lea ebx, [ecx + 0x29aa75f2]
mov edx, ebx
and edx, edi
not edi
or edi, ebx
add edi, edx
neg edi
add ecx, edi
add ecx, 0x29aa75f1
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
add cl, 0x62
mov edx, dword [esi + 4]
mov byte [eax + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x1c
jb 0x424140
mov edx, dword [esi + 0x14]
mov edi, edx
mov ecx, 5
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov edi, edx
add edi, 0x14
xor ecx, ecx
mov eax, dword [esi + 0x78]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov edi, dword [esi + 0x48]
push edi
push 0
push 0
push 9
push edx
push 0
call dword [0x449c84]
mov edi, dword [edi]
test edi, edi
jns 0x4241c0
mov eax, 0xffffffff
jmp 0x4241c3
lea eax, [edi + edi]
mov ebx, dword [esi + 0x58]
push eax
call fcn.00408b20
add esp, 4
mov ecx, dword [esi + 0x6c]
mov dword [ecx], eax
push dword [esi + 0x48]
push edi
push eax
push 9
push dword [esi + 0x14]
push 0
call dword [0x449c84]
mov edi, dword [esi + 8]
mov dword [edi], 0x739b6da8
mov dword [edi + 4], 0x77917187
mov dword [edi + 8], 0x7b8c7587
mov dword [edi + 0xc], 0x7f7e799c
lea eax, [edi + 0x10]
mov dword [esi + 0x14], eax
mov dword [edi + 0x10], 0
mov byte [edi + 0x14], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x14
ja 0x424269
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [edi + edx]
lea edi, [ecx - 0x94ba52]
add ecx, 0xae
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esi + 0x18], edi
mov edi, dword [esi + 8]
mov ecx, dword [esi + 0x18]
add cl, 0x3e
mov edx, dword [esi + 4]
mov byte [edi + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x15
jb 0x424230
mov edx, dword [esi + 0x2c]
mov eax, edi
mov edi, edx
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
add edx, 0x10
mov edi, edx
xor ecx, ecx
mov eax, dword [esi + 0x14]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov edi, dword [esi + 0xc]
mov dword [edi], 0x23bb219a
mov dword [edi + 4], 0x1f811daf
mov dword [edi + 8], 0x1b8a198f
mov dword [edi + 0xc], 0x17a91586
mov dword [edi + 0x10], 0x138611b5
mov dword [edi + 0x14], 0xf9e0db1
mov dword [edi + 0x18], 0xb080985
lea eax, [edi + 0x1c]
mov dword [esi + 8], eax
mov dword [edi + 0x1c], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x1f
ja 0x424329
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
mov edi, dword [esi + 0xc]
movzx edi, byte [edi + edx]
lea edx, [ecx + edi]
add edx, 0xcd46355b
add ecx, 0xcd46355b
and ecx, edi
add ecx, ecx
mov edi, ecx
xor edi, edx
not ecx
and ecx, edx
add ecx, ecx
sub ecx, edi
mov edi, dword [esi + 0xc]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
add cl, 0x83
mov edx, dword [esi + 4]
mov byte [edi + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x20
jb 0x4242e0
mov edx, dword [esi + 0x44]
mov eax, edi
mov edi, edx
mov ecx, 7
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
add edx, 0x1c
mov edi, edx
xor ecx, ecx
mov eax, dword [esi + 8]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [ebx], 0x8b738d50
mov dword [ebx + 4], 0x87798907
mov dword [ebx + 8], 0x830c8577
mov dword [ebx + 0xc], 0x9f4e817c
mov dword [ebx + 0x10], 0x9b449d70
lea eax, [ebx + 0x14]
mov word [ebx + 0x14], 0x9998
mov dword [ebx + 0x16], 0
mov dword [ebx + 0x1a], 0
mov byte [ebx + 0x1e], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x1e
ja 0x423f60
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [ebx + edx]
lea edi, [ecx + 0x14dd18c2]
add ecx, 0xc2
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esi + 0x18], edi
mov ecx, dword [esi + 0x18]
add cl, 0xb2
mov edx, dword [esi + 4]
mov byte [ebx + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x1f
jb 0x4243a0
jmp 0x423f60
mov eax, dword [esi + 0x9c]
add eax, 2
mov dword [esi + 0x78], eax
mov eax, dword [esi + 0x74]
add eax, 2
mov dword [esi + 0x58], eax
mov eax, dword [esi + 0x3c]
add eax, 2
mov dword [esi + 0x5c], eax
mov eax, dword [esi + 0x54]
lea ebx, [eax + 2]
mov eax, dword [case.0x42291c.142]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
cmp edx, dword [ecx]
setne al
jmp dword [eax*4 + 0x445ad8]
mov eax, dword [edx]
mov ecx, dword [esi + 0x38]
mov dword [ecx], eax
mov ecx, dword [esi + 0x50]
mov byte [ecx], 0
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x424440
sar ecx, 1
mov eax, dword [esi + 0x34]
mov dword [eax], ecx
mov eax, dword [esi + 0xbc]
mov dword [eax], 0xfb04f92a
mov dword [eax + 4], 0xff19fd6b
mov dword [eax + 8], 0xf36cf11d
mov dword [eax + 0xc], 0xf701f5d2
mov dword [eax + 0x10], 0xeb0be962
mov dword [eax + 0x14], 0xef0bed7e
lea ecx, [eax + 0x18]
mov dword [esi + 0xc], ecx
mov word [eax + 0x18], 0xe1ee
mov dword [eax + 0x1a], 0
mov dword [eax + 0x1e], 0
mov dword [eax + 0x22], 0
mov byte [eax + 0x26], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x26
ja 0x4244ec
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [eax + edx]
add ecx, 0x66b3681f
xor ecx, edx
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
add cl, 0x27
mov edx, dword [esi + 4]
mov byte [eax + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x27
jb 0x4244c0
mov edx, eax
mov ecx, 6
mov eax, dword [esi + 0x54]
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [eax + 0x18]
mov ecx, 1
mov eax, dword [esi + 0xc]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esi + 0x48]
mov eax, dword [eax]
mov ecx, dword [esi + 0x34]
mov ecx, dword [ecx]
lea edx, [eax + ecx]
add ecx, eax
add ecx, 0xd
lea eax, [edx + edx]
add eax, 0x1a
test ecx, ecx
jns 0x42452f
mov eax, 0xffffffff
push eax
call fcn.00408b20
add esp, 4
mov ecx, dword [esi + 0x88]
mov dword [ecx], eax
mov ecx, dword [esi + 0x6c]
mov ecx, dword [ecx]
movzx edx, word [ecx]
test dx, dx
je 0x424561
add ecx, 2
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x424550
mov word [eax], 0x5c
add eax, 2
mov ecx, dword [esi + 0x38]
mov ecx, dword [ecx]
movzx edx, word [ecx]
test dx, dx
je 0x424591
add ecx, 2
nop
nop
nop
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x424580
mov word [eax], 0
mov ecx, dword [esi + 0x54]
movzx ecx, word [ecx]
test cx, cx
je 0x4245c1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x4245b0
mov word [eax], 0
push 0x60
push 3
push 0x120089
push dword [esi + 0x40]
mov eax, dword [esi + 0x88]
push dword [eax]
call fcn.0043cb20
add esp, 0x14
mov ecx, dword [case.0x42291c.148]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x445af0]
mov eax, dword [case.0x42291c.155]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
push 0
mov edi, dword [esi + 0xa0]
push edi
mov eax, dword [esi + 0x40]
push dword [eax]
call fcn.0043cee0
add esp, 0xc
mov ecx, dword [case.0x42291c.158]
nop
nop
jmp ecx
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x445b18]
mov ebx, dword [edi]
lea eax, [ebx + 1]
push eax
call fcn.00408b20
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x94]
mov dword [eax], edi
push 0
push ebx
push edi
mov eax, dword [esi + 0x40]
push dword [eax]
call fcn.0043d000
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x445b20]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x445b78]
push edi
call fcn.00408b30
add esp, 4
mov eax, dword [case.0x42291c.160]
nop
jmp eax
jmp dword [0x445b90]
mov eax, dword [esi + 0xa0]
mov eax, dword [eax]
mov byte [edi + eax], 0
push edi
call fcn.00401ea0
add esp, 4
mov ecx, dword [esi + 0x90]
mov dword [ecx], eax
xor ecx, ecx
test eax, eax
setne cl
mov ebx, dword [esi + 0xb4]
jmp dword [ecx*4 + 0x445b28]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x445b78]
push eax
call fcn.00402780
add esp, 4
mov dword [ebx], 0xd4d1dadf
mov dword [ebx + 4], 0xc3c6c8c6
mov dword [ebx + 8], 0xdcc8d006
mov dword [ebx + 0xc], 0xcbcec0ce
mov dword [ebx + 0x10], 0xece1d9d9
mov word [ebx + 0x14], 0xf8e5
mov byte [ebx + 0x16], 0x46
mov dword [ebx + 0x17], 0
mov dword [ebx + 0x1b], 0
mov byte [ebx + 0x1f], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x1f
ja 0x424768
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [ebx + edx]
lea edi, [ecx + 0xce]
add ecx, edx
and edi, edx
add edi, edi
sub ecx, edi
add ecx, 0x3bb67ce
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
add cl, 0x5e
mov edx, dword [esi + 4]
mov byte [ebx + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x20
jb 0x424730
push ebx
push eax
call fcn.004028d0
add esp, 8
mov edx, 0xffffffff
mov ecx, 0xfffffffd
nop
nop
nop
nop
add ecx, 3
cmp byte [eax + edx + 1], 0
lea edx, [edx + 1]
jne 0x424780
shr ecx, 2
mov dword [esi + 0x2c], edx
movzx edx, byte [eax + edx - 1]
cmp edx, 0x3d
je 0x4247a2
cmp edx, 0x2e
jne 0x4247a3
dec ecx
mov edx, dword [esi + 0x2c]
movzx edx, byte [eax + edx - 2]
cmp edx, 0x3d
mov dword [esi + 0x44], eax
je 0x4247b8
cmp edx, 0x2e
jne 0x4247b9
dec ecx
mov eax, ecx
and eax, 1
mov dword [esi + 0xac], ecx
xor ecx, 1
lea eax, [ecx + eax*2]
push eax
call fcn.00408b20
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x8c]
mov dword [esi + 0x14], ecx
mov dword [eax], ecx
cmp dword [esi + 0x2c], 0
je 0x4248de
xor ecx, ecx
mov edi, 2
jmp 0x424810
mov ecx, dword [esi + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [edi + 4]
add edi, 2
cmp edi, edx
mov edi, eax
jae 0x4248de
mov dword [esi + 0xc], ecx
mov ebx, dword [esi + 0x44]
movzx eax, byte [ebx + edi - 2]
push eax
call fcn.004189f0
add esp, 4
mov byte [esi + 8], al
movzx eax, byte [ebx + edi - 1]
push eax
call fcn.004189f0
mov edx, dword [esi + 0x2c]
add esp, 4
movzx ecx, byte [esi + 8]
shl cl, 2
mov ah, al
shr ah, 4
and ah, 3
or ah, cl
mov ecx, dword [esi + 0x14]
mov ebx, dword [esi + 0xc]
mov byte [ecx + ebx], ah
lea ecx, [ebx + 1]
cmp edi, edx
jae 0x424800
mov byte [esi + 8], al
mov eax, dword [esi + 0x44]
movzx eax, byte [eax + edi]
push eax
mov ebx, ecx
call fcn.004189f0
mov ecx, ebx
mov edx, dword [esi + 0x2c]
add esp, 4
cmp al, 0x40
je 0x424800
movzx ecx, byte [esi + 8]
shl cl, 4
mov byte [esi + 0x7c], al
shr al, 2
and al, 0xf
or al, cl
mov ebx, dword [esi + 0xc]
lea ecx, [ebx + 2]
mov dword [esi + 8], ecx
mov ecx, dword [esi + 0x14]
mov byte [ecx + ebx + 1], al
lea eax, [edi + 1]
cmp eax, edx
jae 0x4247f3
mov eax, dword [esi + 0x44]
movzx eax, byte [eax + edi + 1]
push eax
call fcn.004189f0
mov edx, dword [esi + 0x2c]
add esp, 4
cmp al, 0x40
mov ecx, dword [esi + 8]
mov ah, byte [esi + 0x7c]
je 0x424800
shl ah, 6
add al, ah
mov ecx, dword [esi + 0x14]
mov ebx, dword [esi + 0xc]
mov byte [ecx + ebx + 2], al
add ebx, 3
mov ecx, ebx
jmp 0x424800
mov eax, dword [esi + 0xac]
add eax, 0xfffffffb
mov edi, dword [esi + 0xb0]
mov dword [edi], eax
mov eax, dword [esi + 0x14]
add eax, 5
mov dword [edi + 4], eax
mov ebx, dword [esi + 0x60]
mov dword [ebx], 0
mov dword [ebx + 4], 0
push 0x79955919
push dword [0x449c94]
call fcn.0043bf80
add esp, 8
push ebx
push 0
push 0
push 0
push 0
push 0
push edi
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x445b30]
mov eax, dword [case.0x42291c.180]
mov ecx, dword [esi + 0x14]
jmp case.0x42291c.178
mov ebx, dword [esi + 0x4c]
jmp dword [0x445b38]
mov dword [ebx], 0x4bb05587
mov dword [ebx + 4], 0x4f9a49da
mov dword [ebx + 8], 0x43c44dda
mov dword [ebx + 0xc], 0x474041d6
mov eax, ebx
add ebx, 0x10
mov dword [eax + 0x10], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x13
ja 0x4249e7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edi, byte [eax + edx]
mov edx, ecx
and edx, 0x5c0f30d
xor ecx, 0x85c0f30d
lea ecx, [ecx + edx*2]
lea edx, [ecx + edi]
and ecx, edi
add ecx, ecx
mov edi, edx
not edi
and edi, ecx
not ecx
and ecx, edx
sub ecx, edi
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov edx, ecx
or edx, 0xa4
and ecx, 0xa4
add ecx, edx
inc cl
mov edx, dword [esi + 4]
mov byte [eax + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x14
jb 0x424990
mov edx, eax
mov eax, dword [esi + 0x3c]
mov edi, eax
mov ecx, 4
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [eax + 0x10]
xor ecx, ecx
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov eax, dword [esi + 0x34]
mov eax, dword [eax]
mov ecx, eax
add ecx, 8
lea eax, [eax + eax + 0x10]
jns 0x424a1a
mov eax, 0xffffffff
push eax
call fcn.00408b20
add esp, 4
mov edi, dword [esi + 0x70]
mov dword [edi], eax
mov ecx, dword [esi + 0x38]
mov ecx, dword [ecx]
movzx edx, word [ecx]
test dx, dx
je 0x424a53
add ecx, 2
mov ebx, dword [esi + 0x4c]
nop
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x424a40
jmp 0x424a56
mov ebx, dword [esi + 0x4c]
mov word [eax], 0
mov ecx, dword [esi + 0x3c]
movzx ecx, word [ecx]
test cx, cx
je 0x424a81
mov edx, dword [esi + 0x5c]
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424a70
mov word [eax], 0
mov eax, dword [esi + 0x80]
mov ecx, dword [eax]
mov eax, dword [esi + 0x60]
push dword [eax]
push dword [eax + 4]
push dword [edi]
call fcn.00409480
mov ecx, dword [esi + 0x50]
mov byte [ecx], al
jmp case.0x42291c.168
mov word [eax], 0
mov eax, dword [esi + 0x80]
mov ecx, dword [eax]
mov edi, dword [edi]
mov eax, dword [esi + 0x60]
push dword [eax]
push dword [eax + 4]
push edi
call fcn.00409480
mov ecx, dword [esi + 0x50]
mov byte [ecx], al
jmp dword [0x445b44]
mov dword [ebx], 0x4bb05587
mov dword [ebx + 4], 0x4f9a49da
mov dword [ebx + 8], 0x43c44dda
mov dword [ebx + 0xc], 0x474041d6
lea eax, [ebx + 0x10]
mov dword [ebx + 0x10], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x13
ja 0x424b67
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edi, byte [ebx + edx]
mov edx, ecx
and edx, 0x5c0f30d
xor ecx, 0x85c0f30d
lea ecx, [ecx + edx*2]
lea edx, [ecx + edi]
and ecx, edi
add ecx, ecx
mov edi, edx
not edi
and edi, ecx
not ecx
and ecx, edx
sub ecx, edi
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x18]
mov edx, ecx
or edx, 0xa4
and ecx, 0xa4
add ecx, edx
inc cl
mov edx, dword [esi + 4]
mov byte [ebx + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x14
jb 0x424b10
mov edx, ebx
mov ecx, 4
mov ebx, dword [esi + 0x3c]
mov edi, ebx
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [ebx + 0x10]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esi + 0x34]
mov eax, dword [eax]
mov ecx, eax
and ecx, 8
xor eax, 8
lea eax, [eax + ecx*2]
test eax, eax
jns 0x424ba0
mov eax, 0xffffffff
jmp 0x424ba2
add eax, eax
mov ebx, dword [esi + 0x4c]
mov edi, dword [esi + 0x70]
push eax
call fcn.00408b20
add esp, 4
mov dword [edi], eax
mov ecx, dword [esi + 0x38]
mov ecx, dword [ecx]
movzx edx, word [ecx]
test dx, dx
je 0x424be1
add ecx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x424bd0
mov word [eax], 0
mov ecx, dword [esi + 0x3c]
movzx ecx, word [ecx]
test cx, cx
je 0x424ab0
mov edx, dword [esi + 0x5c]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424c00
jmp 0x424ab0
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x445b48]
jmp dword [0x445b50]
push edi
call fcn.00408b30
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push edi
call fcn.00408b30
add esp, 4
jmp dword [0x445b5c]
push 0xe9520bac
push dword [0x449c7c]
call fcn.0043bf80
add esp, 8
mov ecx, dword [esi + 0x60]
push dword [ecx + 4]
call eax
mov eax, dword [esi + 0x8c]
mov ecx, dword [eax]
mov eax, dword [case.0x42291c.180]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x445b70]
push ecx
call fcn.00408b30
add esp, 4
mov eax, dword [esi + 0x90]
push dword [eax]
call fcn.00402a10
add esp, 4
mov eax, dword [esi + 0x94]
mov edi, dword [eax]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x445b78]
mov ebx, dword [esi + 0xb8]
mov dword [ebx], 0x3bf439ea
mov dword [ebx + 4], 0x3fd93dcb
mov dword [ebx + 8], 0xc32cc1dd
mov dword [ebx + 0xc], 0xc711c5e2
mov dword [ebx + 0x10], 0xcb39c932
mov dword [ebx + 0x14], 0xcf2fcd38
mov dword [ebx + 0x18], 0xd337d127
mov dword [ebx + 0x1c], 0xd738d50e
mov dword [ebx + 0x20], 0xdb2ed931
mov dword [ebx + 0x24], 0xdf30dd3d
mov dword [ebx + 0x28], 0xe302e13a
lea eax, [ebx + 0x2c]
mov word [ebx + 0x2c], 0xe5e2
mov dword [ebx + 0x2e], 0
mov dword [ebx + 0x32], 0
mov byte [ebx + 0x36], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x36
ja 0x424d7d
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [ebx + edx]
lea edi, [ecx + 0x77]
and edi, edx
add edx, ecx
add edx, 0x6390d577
add ecx, 0x6390d577
and ecx, edi
add ecx, edi
sub edx, ecx
mov dword [esi + 0x18], edx
mov ecx, dword [esi + 0x18]
add cl, 0xbf
mov edx, dword [esi + 4]
mov byte [ebx + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x37
jb 0x424d40
mov edx, ebx
mov ebx, dword [esi + 0x74]
mov edi, ebx
mov ecx, 0xb
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [ebx + 0x2c]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esi + 0x48]
mov eax, dword [eax]
mov ecx, dword [esi + 0x34]
mov ecx, dword [ecx]
lea edx, [eax + ecx]
add ecx, eax
add ecx, 0x17
lea eax, [edx + edx]
add eax, 0x2e
test ecx, ecx
mov ebx, dword [esi + 0x9c]
mov edi, dword [esi + 0x30]
jns 0x424dc6
mov eax, 0xffffffff
push eax
call fcn.00408b20
add esp, 4
mov ecx, dword [esi + 0xa8]
mov dword [ecx], eax
mov ecx, dword [esi + 0x6c]
mov ecx, dword [ecx]
movzx edx, word [ecx]
test dx, dx
je 0x424e01
add ecx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x424df0
mov word [eax], 0x5c
add eax, 2
mov ecx, dword [esi + 0x38]
mov ecx, dword [ecx]
movzx edx, word [ecx]
test dx, dx
je 0x424e31
add ecx, 2
nop
nop
nop
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x424e20
mov word [eax], 0
mov ecx, dword [esi + 0x74]
movzx ecx, word [ecx]
test cx, cx
je 0x424e61
mov edx, dword [esi + 0x58]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424e50
mov word [eax], 0
mov dword [edi], 0xc36ec12f
mov dword [edi + 4], 0xc770c561
mov dword [edi + 8], 0xcb66c96d
mov dword [edi + 0xc], 0xcf6ccd68
lea eax, [edi + 0x10]
mov word [edi + 0x10], 0xd1d0
mov dword [edi + 0x12], 0
mov dword [edi + 0x16], 0
mov dword [edi + 0x1a], 0
mov byte [edi + 0x1e], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x1e
ja 0x424efb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
mov edi, 0x621b64df
sub edi, edx
add edx, 0x20
and edx, ecx
or edi, ecx
not edi
add edi, ecx
sub edi, edx
mov dword [esi + 0x18], edi
mov edi, dword [esi + 0x30]
mov ecx, dword [esi + 0x18]
add cl, 0x20
mov edx, dword [esi + 4]
mov byte [edi + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x1f
jb 0x424ec0
jmp dword [0x445bc0]
mov edx, edi
mov edi, ebx
mov ecx, 4
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [ebx + 0x10]
mov edx, eax
mov ecx, 1
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov edi, dword [esi + 0x30]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, edi
mov edi, ebx
mov ecx, 4
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [ebx + 0x10]
mov edx, eax
mov ecx, 1
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov edi, dword [esi + 0x30]
jmp dword [0x445bc8]
mov eax, dword [esi + 0x34]
mov ecx, dword [eax]
lea eax, [ecx + ecx]
add eax, 0x12
add ecx, 9
jns 0x424f6e
mov eax, 0xffffffff
push eax
call fcn.00408b20
add esp, 4
mov ecx, dword [esi + 0xa4]
mov dword [ecx], eax
mov ecx, dword [esi + 0x38]
mov ecx, dword [ecx]
movzx edx, word [ecx]
test dx, dx
je 0x424fa1
add ecx, 2
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x424f90
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x424fd3
mov edx, dword [esi + 0x78]
mov ebx, dword [esi + 0x98]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424fc0
jmp 0x424fd9
mov ebx, dword [esi + 0x98]
mov word [eax], 0
mov dword [ebx], 0x6362618a
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
mov dword [ebx + 0xb], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xe
ja 0x425047
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [ebx + ecx]
lea edx, [eax + ecx]
add edx, 0x51dbff90
add eax, 0x51dbff90
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x18], edx
mov eax, dword [esi + 0x18]
add al, 0x10
mov ecx, dword [esi + 4]
mov byte [ebx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xf
jb 0x425010
mov eax, dword [esi + 0xa8]
mov edi, dword [eax]
mov eax, dword [esi + 0xa4]
mov ecx, ebx
mov ebx, dword [eax]
push 0
push 0
push 0
push 0xc00000
push ecx
push edi
push ebx
mov eax, dword [esi + 0x80]
push dword [eax]
call fcn.0041ae60
add esp, 0x20
mov ecx, dword [esi + 0x84]
or byte [ecx], al
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x445bd0]
push ebx
call fcn.00408b30
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x445be4]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x445be8]
push edi
call fcn.00408b30
add esp, 4
jmp case.0x42291c.200
mov eax, dword [esi + 0x88]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x445bb0]
push eax
call fcn.00408b30
add esp, 4
mov eax, dword [esi + 0x50]
movzx eax, byte [eax]
jmp dword [eax*4 + 0x445bb8]
mov eax, dword [esi + 0x50]
movzx eax, byte [eax]
jmp dword [eax*4 + 0x445bb8]
mov eax, dword [esi + 0x68]
mov ecx, dword [esi + 0x64]
mov edx, dword [eax]
add edx, 4
mov dword [eax], edx
jmp 0x4243f0
cmp dword [ebx + edi*8], 0xad91fd63
je 0x425120
inc edi
cmp ecx, edi
jne 0x425110
jmp case.0x42291c.190
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je case.0x42291c.190
push eax
push 1
push dword [0x449c90]
push ecx
call fcn.0043a6a0
add esp, 0x10
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
mov dword [esi + 0x18], 0x4a555457
mov dword [esi + 0x1c], 0
mov word [esi + 0x20], 0
mov dword [esi + 0x10], 0
mov ecx, dword [esi + 0x10]
cmp ecx, 9
ja 0x4251be
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x10]
movzx edx, byte [esi + edx + 0x18]
lea edi, [ecx + 0x4d]
mov ebx, 0x7645bcb2
sub ebx, ecx
or ebx, edx
not edx
or edx, edi
add ebx, edx
mov ecx, 0xfffffffe
sub ecx, ebx
mov dword [esi + 4], ecx
mov ecx, dword [esi + 4]
mov edx, ecx
or edx, 0xe4
and ecx, 0xe4
add ecx, edx
inc cl
mov edx, dword [esi + 0x10]
mov byte [esi + edx + 0x18], cl
inc dword [esi + 0x10]
mov ecx, dword [esi + 0x10]
cmp ecx, 0xa
jb 0x425170
mov ecx, dword [0x449c88]
test ecx, ecx
je 0x425210
mov edx, dword [esi + 0x18]
xor edi, edi
mov ebx, dword [0x449c8c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xad91fd63
je 0x4251f0
inc edi
cmp ecx, edi
jne 0x4251e0
jmp 0x425210
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je 0x425210
push eax
push 1
push dword [0x449c90]
push ecx
call fcn.0043a6a0
add esp, 0x10
nop
nop
nop
nop
nop
nop
jmp dword [0x445b98]
jmp dword [0x445ba8]
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
mov dword [esi + 0x18], 0x4a555457
mov dword [esi + 0x1c], 0
mov word [esi + 0x20], 0
mov dword [esi + 0x10], 0
mov ecx, dword [esi + 0x10]
cmp ecx, 9
ja 0x4252ae
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x10]
movzx edx, byte [esi + edx + 0x18]
lea edi, [ecx + 0x4d]
mov ebx, 0x7645bcb2
sub ebx, ecx
or ebx, edx
not edx
or edx, edi
add ebx, edx
mov ecx, 0xfffffffe
sub ecx, ebx
mov dword [esi + 4], ecx
mov ecx, dword [esi + 4]
mov edx, ecx
or edx, 0xe4
and ecx, 0xe4
add ecx, edx
inc cl
mov edx, dword [esi + 0x10]
mov byte [esi + edx + 0x18], cl
inc dword [esi + 0x10]
mov ecx, dword [esi + 0x10]
cmp ecx, 0xa
jb 0x425260
mov ecx, dword [0x449c88]
test ecx, ecx
je case.0x42291c.190
mov edx, dword [esi + 0x18]
xor edi, edi
mov ebx, dword [0x449c8c]
jmp 0x425110
mov eax, dword [esi + 0x6c]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x445bf0]
push eax
call fcn.00408b30
add esp, 4
mov eax, dword [esi + 0x84]
movzx eax, byte [eax]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret