Function at 0x421ba2
Capabilities:
Encode data using base64
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
mov eax, 0x2218
call fcn.00408c10
mov esi, esp
push eax
mov dword [esi + 0x30], esp
sub esp, 0x18
mov edi, esp
and edi, 0xfffffff8
mov esp, edi
push eax
sub esp, 0x1c
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x2c], eax
mov esp, eax
push eax
mov dword [esi + 0x3c], esp
push eax
mov dword [esi + 0x40], esp
sub esp, 0x30
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1c], eax
mov esp, eax
mov dword [esi + 0x1210], 0x1b68197c
mov dword [esi + 0x1214], 0x17691569
mov dword [esi + 0x1218], 0x13611169
mov dword [esi + 0x121c], 0xf7c0d60
mov dword [esi + 0x1220], 0xb6e0961
mov dword [esi + 0x1224], 0x7750569
mov dword [esi + 0x1228], 0x370017d
mov dword [esi + 0x122c], 0x3d3c
mov byte [esi + 0x1230], 0
mov dword [esi + 0xaa0], 0
mov eax, dword [esi + 0xaa0]
cmp eax, 0x20
ja 0x41f583
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0xaa0]
mov ecx, dword [esi + 0xaa0]
movzx ecx, byte [esi + ecx + 0x1210]
lea edx, [eax + 0x5b05a304]
and edx, ecx
add eax, ecx
add eax, 0x5b05a304
add edx, edx
sub eax, edx
mov dword [esi + 0xa0], eax
mov eax, dword [esi + 0xa0]
add al, 0xe4
mov ecx, dword [esi + 0xaa0]
mov byte [esi + ecx + 0x1210], al
inc dword [esi + 0xaa0]
mov eax, dword [esi + 0xaa0]
cmp eax, 0x21
jb 0x41f530
lea eax, [esi + 0x38]
lea ebx, [esi + 0x1210]
push 0
push 0
push 0x20019
push eax
push ebx
call fcn.0043d400
add esp, 0x14
shr eax, 0x1f
mov dword [esi + 0x24], edi
jmp dword [eax*4 + 0x444d40]
mov dword [esi + 0x10], ebx
lea eax, [esi + 0x88]
lea ecx, [esi + 0x5c]
push 0
push 0
push 0
push 0
push eax
push ecx
push 0
push 0
push dword [esi + 0x38]
call fcn.0043d8a0
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444d48]
xor ecx, ecx
xor eax, eax
cmp ecx, dword [esi + 0x5c]
setb al
lea edx, [edi + 0x10]
mov dword [esi + 0x78], edx
mov ebx, dword [esi + 0x2c]
lea edx, [ebx + 0x12]
mov dword [esi + 0x74], edx
xor edx, edx
jmp dword [eax*4 + 0x444d50]
mov dword [esi + 8], edx
mov dword [esi + 0x48], ecx
mov edi, dword [esi + 0x88]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x41f61a
mov eax, 0xffffffff
push eax
call fcn.00408c40
add esp, 4
mov dword [esi + 0x84], edi
mov ecx, dword [esi + 0x48]
lea edx, [esi + 0x84]
push edx
mov dword [esi + 0x44], eax
push eax
push ecx
push dword [esi + 0x38]
call fcn.0043d560
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444d58]
jmp dword [0x444d6c]
lea eax, [esi + 0x58]
push dword [esi + 0x38]
push 0
push 0x20019
push eax
push dword [esi + 0x44]
call fcn.0043d400
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444d70]
jmp dword [0x444e20]
mov dword [esi + 0xa0], 0x235b2d71
mov dword [esi + 0xa4], 0x27502147
mov dword [esi + 0xa8], 0x3b4d2557
mov dword [esi + 0xac], 0x3f44394b
mov dword [esi + 0xb0], 0x335e3d48
mov dword [esi + 0xb4], 0x374f315b
mov dword [esi + 0xb8], 0x4b2e3546
mov dword [esi + 0xbc], 0x4fc5493b
mov dword [esi + 0xc0], 0x43624d3b
mov dword [esi + 0xc4], 0x4723411d
mov dword [esi + 0xc8], 0x5b2d4533
mov dword [esi + 0xcc], 0x5f255939
mov dword [esi + 0xd0], 0x53205d25
mov dword [esi + 0xd4], 0x5776512b
mov dword [esi + 0xd8], 0x6b1f5503
mov dword [esi + 0xdc], 0x6f19690e
mov dword [esi + 0xe0], 0x63156de5
mov dword [esi + 0xe4], 0x67036114
mov dword [esi + 0xe8], 0x7b166519
mov dword [esi + 0xec], 0x7f087928
mov dword [esi + 0xf0], 0x73087d0f
mov dword [esi + 0xf4], 0x770a7109
mov dword [esi + 0xf8], 0x8bfd7511
mov dword [esi + 0xfc], 0x8fc789e4
mov dword [esi + 0x100], 0x83c98dbb
mov dword [esi + 0x104], 0x87c181b5
mov dword [esi + 0x108], 0x9bc085de
mov dword [esi + 0x10c], 0x9faa99a8
mov dword [esi + 0x110], 0x93a59dad
mov dword [esi + 0x114], 0x97a791a1
mov dword [esi + 0x118], 0xabce95a5
mov dword [esi + 0x11c], 0xafe8a99f
mov dword [esi + 0x120], 0xa3eaade4
mov dword [esi + 0x124], 0xa796a1e1
mov dword [esi + 0x128], 0xbb8ba594
mov dword [esi + 0x12c], 0xbf8ab988
mov dword [esi + 0x130], 0xb384bdfa
mov dword [esi + 0x134], 0xb7fcb1f1
mov dword [esi + 0x138], 0xcb81b5fe
mov dword [esi + 0x13c], 0xcfa2c982
mov word [esi + 0x140], 0xcdcc
lea eax, [esi + 0x140]
mov word [eax + 0xa], 0
mov dword [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esi + 0x8a0], 0
mov eax, dword [esi + 0x8a0]
cmp eax, 0xab
ja 0x41f8bb
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x8a0]
mov ecx, dword [esi + 0x8a0]
movzx ecx, byte [esi + ecx + 0xa0]
mov edx, eax
and edx, 0xf223426
xor eax, 0x8f223426
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0xaa0], edx
mov eax, dword [esi + 0xaa0]
add al, 0xf6
mov ecx, dword [esi + 0x8a0]
mov byte [esi + ecx + 0xa0], al
inc dword [esi + 0x8a0]
mov eax, dword [esi + 0x8a0]
cmp eax, 0xac
jb 0x41f860
lea edi, [esi + 0xfe6]
lea eax, [esi + 0xa0]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esi + 0x140]
mov ecx, 1
lea edi, [esi + 0x1086]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esi + 0xa0], 0x33a33545
mov dword [esi + 0xa4], 0x2fbe31af
mov dword [esi + 0xa8], 0x2ba12dbf
mov dword [esi + 0xac], 0x27b229bb
mov dword [esi + 0xb0], 0x234025aa
mov dword [esi + 0xb4], 0x5fb7214b
mov dword [esi + 0xb8], 0x5bc05dcc
mov dword [esi + 0xbc], 0x57d159cb
mov dword [esi + 0xc0], 0x537455db
mov dword [esi + 0xc4], 0x4f3c5120
mov dword [esi + 0xc8], 0x4b314d2a
mov dword [esi + 0xcc], 0x47c649c1
mov dword [esi + 0xd0], 0x43df45c8
mov dword [esi + 0xd4], 0x7fcc41d0
mov dword [esi + 0xd8], 0x7be77d14
mov dword [esi + 0xdc], 0x77f579f4
mov dword [esi + 0xe0], 0x73e575e1
mov dword [esi + 0xe4], 0x6f1471e0
mov dword [esi + 0xe8], 0x6bfb6d07
mov dword [esi + 0xec], 0x67f469f8
mov dword [esi + 0xf0], 0x63ed65f7
mov dword [esi + 0xf4], 0x9f4061ef
mov dword [esi + 0xf8], 0x9b079ded
mov dword [esi + 0xfc], 0x97159917
mov dword [esi + 0x100], 0x930d9509
mov dword [esi + 0x104], 0x8f029105
mov dword [esi + 0x108], 0x8bac8d17
mov dword [esi + 0x10c], 0x870389e7
mov dword [esi + 0x110], 0x83098518
mov dword [esi + 0x114], 0xbf0d8105
mov dword [esi + 0x118], 0xbb27bd32
mov dword [esi + 0x11c], 0xb7dcb929
mov dword [esi + 0x120], 0xb33ab5c6
mov dword [esi + 0x124], 0xaf2ab123
mov dword [esi + 0x128], 0xab38ad39
mov dword [esi + 0x12c], 0xa725a931
mov dword [esi + 0x130], 0xa3d5a5c2
mov dword [esi + 0x134], 0xdf2ca129
mov dword [esi + 0x138], 0xdb4ddd4a
mov dword [esi + 0x13c], 0xd74dd94b
mov dword [esi + 0x140], 0xd393d5b2
mov dword [esi + 0x144], 0xcf99d19f
mov dword [esi + 0x148], 0xcbb1cd85
mov dword [esi + 0x14c], 0xc7b2c9b0
mov dword [esi + 0x150], 0xc388c596
mov dword [esi + 0x154], 0xff8dc18d
mov dword [esi + 0x158], 0xfbb3fdb1
mov dword [esi + 0x15c], 0xf764f9b5
mov dword [esi + 0x160], 0xf38af5bb
mov dword [esi + 0x164], 0xefb8f1ba
mov dword [esi + 0x168], 0xebbced91
mov dword [esi + 0x16c], 0xe7a7e9ba
mov dword [esi + 0x170], 0xe3a8e5b6
mov dword [esi + 0x174], 0x1faee19c
mov dword [esi + 0x178], 0x1b561d61
mov dword [esi + 0x17c], 0x17511950
mov dword [esi + 0x180], 0x1370155c
mov word [esi + 0x184], 0x1112
mov dword [esi + 0x186], 0
mov dword [esi + 0x8a0], 0
mov eax, dword [esi + 0x8a0]
cmp eax, 0xe9
ja 0x41fbab
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x8a0]
mov ecx, dword [esi + 0x8a0]
movzx ecx, byte [esi + ecx + 0xa0]
mov edx, eax
and edx, 0x2274e029
xor eax, 0x2274e029
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0xaa0], edx
mov eax, dword [esi + 0xaa0]
add al, 0xe1
mov ecx, dword [esi + 0x8a0]
mov byte [esi + ecx + 0xa0], al
inc dword [esi + 0x8a0]
mov eax, dword [esi + 0x8a0]
cmp eax, 0xea
jb 0x41fb50
lea edi, [esi + 0x1088]
lea eax, [esi + 0xa0]
mov ecx, 0x39
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esi + 0x184]
mov ecx, 1
lea edi, [esi + 0x116c]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esi + 0xa0], 0x8b0b9525
mov dword [esi + 0xa4], 0x8f1e892f
mov dword [esi + 0xa8], 0x83198d1f
mov dword [esi + 0xac], 0x871a8113
mov dword [esi + 0xb0], 0x7b288512
mov dword [esi + 0xb4], 0x7fe279cb
mov dword [esi + 0xb8], 0x73e37de4
mov dword [esi + 0xbc], 0x77eb71d7
mov dword [esi + 0xc0], 0x6ba375da
mov dword [esi + 0xc4], 0x6fba69bf
mov dword [esi + 0xc8], 0x63c06dbe
mov dword [esi + 0xcc], 0x67eb61d3
mov dword [esi + 0xd0], 0x5bf865f2
mov dword [esi + 0xd4], 0x5fc959cb
mov dword [esi + 0xd8], 0x53f05dc3
mov dword [esi + 0xdc], 0x57c651e2
mov dword [esi + 0xe0], 0x4bce55c7
mov dword [esi + 0xe4], 0x4fd449d5
mov dword [esi + 0xe8], 0x43d94dd5
mov dword [esi + 0xec], 0x47f141ee
mov dword [esi + 0xf0], 0x3bd045cd
mov dword [esi + 0xf4], 0x3fa939a6
mov dword [esi + 0xf8], 0x33a13daf
mov dword [esi + 0xfc], 0x37ff319e
mov dword [esi + 0x100], 0x2bfd35e3
mov dword [esi + 0x104], 0x2fed29e1
mov dword [esi + 0x108], 0x23962d94
mov dword [esi + 0x10c], 0x27f421f2
mov dword [esi + 0x110], 0x1bf125f1
mov dword [esi + 0x114], 0x1fcf19cd
mov dword [esi + 0x118], 0x13b81dc9
mov dword [esi + 0x11c], 0x17d611c7
mov dword [esi + 0x120], 0xbdc15de
mov dword [esi + 0x124], 0xfd809cd
mov dword [esi + 0x128], 0x3db0dde
mov dword [esi + 0x12c], 0x7d401d2
mov dword [esi + 0x130], 0xfbd205c0
mov dword [esi + 0x134], 0xff32f93d
mov dword [esi + 0x138], 0xf335fd34
mov dword [esi + 0x13c], 0xf75cf138
mov word [esi + 0x140], 0xf5f6
mov dword [esi + 0x146], 0
mov dword [esi + 0x142], 0
mov dword [esi + 0x8a0], 0
mov eax, dword [esi + 0x8a0]
cmp eax, 0xa9
ja 0x41fdf1
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x8a0]
mov ecx, dword [esi + 0x8a0]
movzx ecx, byte [esi + ecx + 0xa0]
lea edx, [eax - 0xb712693]
add eax, 0x6d
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0xaa0], edx
mov eax, dword [esi + 0xaa0]
add al, 5
mov ecx, dword [esi + 0x8a0]
mov byte [esi + ecx + 0xa0], al
inc dword [esi + 0x8a0]
mov eax, dword [esi + 0x8a0]
cmp eax, 0xaa
jb 0x41fda0
lea edi, [esi + 0xf44]
lea eax, [esi + 0xa0]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esi + 0x140]
mov ecx, 1
lea edi, [esi + 0xfe4]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esi + 0xa0], 0x4ba34d99
mov dword [esi + 0xa4], 0x57a849a7
mov dword [esi + 0xa8], 0x53ad55a7
mov dword [esi + 0xac], 0x5fb451a3
mov dword [esi + 0xb0], 0x5bbe5da0
mov dword [esi + 0xb4], 0x678c598b
mov dword [esi + 0xb8], 0x638b658e
mov dword [esi + 0xbc], 0x6f83618f
mov dword [esi + 0xc0], 0x6b5b6d88
mov dword [esi + 0xc4], 0x77446954
mov dword [esi + 0xc8], 0x73967544
mov dword [esi + 0xcc], 0x7f8371a3
mov dword [esi + 0xd0], 0x7b8e7d80
mov dword [esi + 0xd4], 0x7f5798b
mov dword [esi + 0xd8], 0x3e605f3
mov dword [esi + 0xdc], 0xff001d0
mov dword [esi + 0xe0], 0xbe00dff
mov dword [esi + 0xe4], 0x17e209e1
mov dword [esi + 0xe8], 0x13ed15f9
mov dword [esi + 0xec], 0x1fcd11f4
mov dword [esi + 0xf0], 0x1be61de1
mov dword [esi + 0xf4], 0x27d519ec
mov dword [esi + 0xf8], 0x23d525d7
mov dword [esi + 0xfc], 0x2f1721c4
mov dword [esi + 0x100], 0x2b112d13
mov dword [esi + 0x104], 0x37f92915
mov dword [esi + 0x108], 0x33f835fe
mov dword [esi + 0x10c], 0x3f023100
mov dword [esi + 0x110], 0x3b053d0d
mov dword [esi + 0x114], 0xc7f73909
mov dword [esi + 0x118], 0xc32ec5f5
mov dword [esi + 0x11c], 0xcf00c1ff
mov dword [esi + 0x120], 0xcbf2cdf4
mov dword [esi + 0x124], 0xd7e6c909
mov dword [esi + 0x128], 0xd3e3d5e4
mov dword [esi + 0x12c], 0xdfe2d1e0
mov dword [esi + 0x130], 0xdbe4dd12
mov dword [esi + 0x134], 0xe7dcd919
mov dword [esi + 0x138], 0xe3d9e5de
mov dword [esi + 0x13c], 0xef0ae1da
mov word [esi + 0x140], 0xedec
lea eax, [esi + 0x140]
mov word [eax + 0xa], 0
mov dword [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esi + 0x8a0], 0
mov eax, dword [esi + 0x8a0]
cmp eax, 0xab
ja 0x420043
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x8a0]
mov ecx, dword [esi + 0x8a0]
movzx edx, byte [esi + ecx + 0xa0]
lea ecx, [eax + 0x6774f20a]
add eax, 0xa
or eax, ecx
and eax, edx
or ecx, edx
sub ecx, eax
mov dword [esi + 0xaa0], ecx
mov eax, dword [esi + 0xaa0]
add al, 0xba
mov ecx, dword [esi + 0x8a0]
mov byte [esi + ecx + 0xa0], al
inc dword [esi + 0x8a0]
mov eax, dword [esi + 0x8a0]
cmp eax, 0xac
jb 0x41fff0
lea edi, [esi + 0xea2]
lea eax, [esi + 0xa0]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esi + 0x140]
mov ecx, 1
lea edi, [esi + 0xf42]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esi + 0xa0], 0x4ba34d99
mov dword [esi + 0xa4], 0x57a849a7
mov dword [esi + 0xa8], 0x53ad55a7
mov dword [esi + 0xac], 0x5fb451a3
mov dword [esi + 0xb0], 0x5bbe5da0
mov dword [esi + 0xb4], 0x678c598b
mov dword [esi + 0xb8], 0x638b658e
mov dword [esi + 0xbc], 0x6f83618f
mov dword [esi + 0xc0], 0x6b5b6d88
mov dword [esi + 0xc4], 0x77446955
mov dword [esi + 0xc8], 0x73967544
mov dword [esi + 0xcc], 0x7f8371a3
mov dword [esi + 0xd0], 0x7b8e7d80
mov dword [esi + 0xd4], 0x7f5798b
mov dword [esi + 0xd8], 0x3e605f3
mov dword [esi + 0xdc], 0xff001d0
mov dword [esi + 0xe0], 0xbe00dff
mov dword [esi + 0xe4], 0x17e209e1
mov dword [esi + 0xe8], 0x13ed15f9
mov dword [esi + 0xec], 0x1fcd11f4
mov dword [esi + 0xf0], 0x1be61de1
mov dword [esi + 0xf4], 0x27d519ec
mov dword [esi + 0xf8], 0x23d525d7
mov dword [esi + 0xfc], 0x2f1721c4
mov dword [esi + 0x100], 0x2b112d13
mov dword [esi + 0x104], 0x37f92915
mov dword [esi + 0x108], 0x33f835fe
mov dword [esi + 0x10c], 0x3f023100
mov dword [esi + 0x110], 0x3b053d0d
mov dword [esi + 0x114], 0xc7f73909
mov dword [esi + 0x118], 0xc32ec5f5
mov dword [esi + 0x11c], 0xcf00c1ff
mov dword [esi + 0x120], 0xcbf2cdf4
mov dword [esi + 0x124], 0xd7e6c909
mov dword [esi + 0x128], 0xd3e3d5e4
mov dword [esi + 0x12c], 0xdfe2d1e0
mov dword [esi + 0x130], 0xdbe4dd12
mov dword [esi + 0x134], 0xe7dcd919
mov dword [esi + 0x138], 0xe3d9e5de
mov dword [esi + 0x13c], 0xef0ae1da
mov word [esi + 0x140], 0xedec
lea eax, [esi + 0x140]
mov dword [eax + 9], 0
mov dword [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esi + 0x8a0], 0
mov eax, dword [esi + 0x8a0]
cmp eax, 0xac
ja 0x420293
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x8a0]
mov ecx, dword [esi + 0x8a0]
movzx edi, byte [esi + ecx + 0xa0]
lea ecx, [eax + 0x6a90650a]
add eax, 0xa
or eax, ecx
and eax, edi
or ecx, edi
sub ecx, eax
mov dword [esi + 0xaa0], ecx
mov eax, dword [esi + 0xaa0]
add al, 0xba
mov ecx, dword [esi + 0x8a0]
mov byte [esi + ecx + 0xa0], al
inc dword [esi + 0x8a0]
mov eax, dword [esi + 0x8a0]
cmp eax, 0xad
jb 0x420240
lea eax, [esi + 0x116e]
lea edx, [esi + 0xa0]
mov ecx, 0x28
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edx, [esi + 0x140]
mov ecx, 1
lea edi, [esi + 0x120e]
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
lea ecx, [esi + 0xfe6]
mov dword [esi + 0x8c], ecx
lea ecx, [esi + 0x1088]
mov dword [esi + 0x90], ecx
lea ecx, [esi + 0xf44]
mov dword [esi + 0x94], ecx
lea ecx, [esi + 0xea2]
mov dword [esi + 0x98], ecx
mov dword [esi + 0x9c], eax
xor edi, edi
xor eax, eax
cmp edi, 5
setne al
jmp dword [eax*4 + 0x444d78]
mov dword [esi + 0x20], edi
mov eax, dword [esi + edi*4 + 0x8c]
mov dword [esi + 0xa0], 0x33623160
mov dword [esi + 0xa4], 0x37663564
mov dword [esi + 0xa8], 0x2b7a2978
mov dword [esi + 0xac], 0x2f862d7c
mov word [esi + 0xb0], 0x2120
lea ecx, [esi + 0x140]
mov word [ecx - 0x82], 0
mov dword [ecx - 0x86], 0
mov dword [ecx - 0x8a], 0
mov dword [ecx - 0x8e], 0
mov dword [esi + 0x8a0], 0
mov ecx, dword [esi + 0x8a0]
cmp ecx, 0x1f
ja 0x4203e8
nop
nop
nop
mov ecx, dword [esi + 0x8a0]
mov edx, dword [esi + 0x8a0]
movzx edi, byte [esi + edx + 0xa0]
mov edx, 0xf93eb77
sub edx, ecx
add ecx, 0x88
and ecx, edi
or edx, edi
not edx
add edx, edi
sub edx, ecx
mov dword [esi + 0xaa0], edx
mov ecx, dword [esi + 0xaa0]
add cl, 0x48
mov edx, dword [esi + 0x8a0]
mov byte [esi + edx + 0xa0], cl
inc dword [esi + 0x8a0]
mov ecx, dword [esi + 0x8a0]
cmp ecx, 0x20
jb 0x420390
movzx ecx, word [eax]
lea edx, [esi + 0x8a0]
test cx, cx
je 0x420411
add eax, 2
lea edx, [esi + 0x8a0]
nop
mov word [edx], cx
add edx, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x420400
mov word [edx], 0
movzx eax, word [esi + 0xa0]
test ax, ax
je 0x420450
lea ecx, [esi + 0xa2]
mov edi, dword [esi + 0x20]
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x420430
jmp 0x420453
mov edi, dword [esi + 0x20]
mov word [edx], 0
mov cx, 0x31
xor eax, eax
cmp cx, 0x35
setb al
mov dword [esi + 0x4c], edx
jmp dword [eax*4 + 0x444d90]
mov dword [esi + 0x50], ecx
mov word [edx - 2], cx
lea eax, [esi + 0x54]
lea ecx, [esi + 0x8a0]
push dword [esi + 0x58]
push 0
push 0x20019
push eax
push ecx
call fcn.0043d400
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444d98]
jmp 0x420b33
mov dword [esi + 0x20], edi
mov dword [esi + 0x80], 0x800
mov dword [esi + 0x28], 0x400
mov eax, dword [esi + 0x30]
mov byte [eax], 0
xor ebx, ebx
jmp 0x4204ee
mov eax, dword [esi + 0x10]
mov dword [eax], 0x20003a
add eax, 4
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x30]
mov byte [eax], 1
mov edi, dword [esi + 0x14]
mov dword [esi + 8], edx
inc edi
mov ebx, edi
lea eax, [esi + 0x28]
lea edi, [esi + 0xaa0]
lea ecx, [esi + 0x34]
lea edx, [esi + 0x80]
push eax
push edi
push ecx
push edx
lea eax, [esi + 0xa0]
push eax
mov dword [esi + 0x14], ebx
push ebx
push dword [esi + 0x54]
call fcn.0043dbc0
add esp, 0x1c
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444da0]
mov eax, dword [esi + 0x30]
movzx ecx, byte [eax]
xor eax, eax
mov edx, dword [esi + 8]
mov ebx, dword [esi + 0x2c]
jmp dword [ecx*4 + 0x444da8]
mov eax, dword [esi + 0x34]
mov ecx, dword [case.0x420304.16]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
cmp eax, 1
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x444dc0]
movzx eax, al
jmp dword [eax*4 + 0x444dc8]
mov edi, dword [esi + 0x14]
jmp dword [0x444dd4]
mov eax, dword [esi + 0x34]
jmp dword [0x444dd8]
mov eax, dword [esi + 0x34]
jmp dword [0x444dd8]
xor ecx, ecx
cmp eax, 3
sete cl
jmp dword [ecx*4 + 0x444de0]
xor eax, eax
movzx eax, al
jmp dword [eax*4 + 0x444de8]
mov eax, dword [esi + 0x24]
mov dword [eax], 0x3bd0145
mov dword [eax + 4], 0x1fad1dbf
mov dword [eax + 8], 0x1bae1991
mov dword [eax + 0xc], 0x17141596
mov eax, dword [esi + 0x78]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x14
mov ebx, dword [esi + 0x24]
ja 0x420626
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [ebx + ecx]
lea edx, [eax + 0xab]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x512c45ab
mov dword [esi + 0x60], eax
mov eax, dword [esi + 0x60]
add al, 0x53
mov ecx, dword [esi + 4]
mov byte [ebx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x15
jb 0x4205f0
mov edx, dword [esi + 0x24]
movzx eax, word [edx]
test ax, ax
mov ebx, dword [esi + 0x2c]
je 0x42078e
lea ecx, [esi + 0xa0]
mov dword [esi + 0xc], ecx
mov dword [esi], edx
jmp 0x420670
mov eax, dword [esi + 0xc]
add eax, 2
mov ebx, dword [esi + 0x24]
mov dword [esi + 0xc], eax
mov ecx, eax
mov eax, ebx
mov ebx, edx
mov dword [esi], eax
movzx eax, word [eax]
test ax, ax
je 0x4207a2
mov edx, ebx
mov ebx, ecx
movzx ecx, word [ecx]
test cx, cx
je 0x420799
cmp cx, ax
jne 0x420650
mov ecx, ebx
add ecx, 2
mov eax, dword [esi]
add eax, 2
jmp 0x420660
mov dword [ebx], 0x83e38dfc
mov dword [ebx + 4], 0x87118117
mov dword [ebx + 8], 0xbb29850f
mov dword [ebx + 0xc], 0xbfdab92e
mov word [ebx + 0x10], 0xbdbc
mov eax, dword [esi + 0x74]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x1d
ja 0x420737
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 4]
mov eax, dword [esi + 4]
movzx edi, byte [ebx + eax]
lea eax, [edx + 0x5c5c4016]
lea ecx, [edx + edi]
add ecx, 0x5c5c4016
add edx, 0x16
and edx, edi
and eax, edi
add eax, edx
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esi + 0x60], eax
mov eax, dword [esi + 0x60]
add al, 0x66
mov ecx, dword [esi + 4]
mov byte [ebx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x1e
jb 0x4206f0
movzx edi, word [ebx]
lea eax, [esi + 0xa0]
mov dword [esi], eax
test di, di
je 0x420876
lea ecx, [esi + 0xa0]
mov dword [esi], ecx
mov edx, ebx
jmp 0x420775
mov ecx, dword [esi]
add ecx, 2
mov edx, ebx
mov dword [esi], ecx
movzx edi, word [edx]
test di, di
je 0x420876
movzx eax, word [ecx]
test ax, ax
je 0x420870
cmp ax, di
jne 0x420760
add ecx, 2
add edx, 2
jmp 0x420769
lea eax, [esi + 0xa0]
mov dword [esi + 0xc], eax
jmp 0x4207a2
mov dword [esi + 0xc], 0
mov ebx, edx
xor eax, eax
cmp dword [esi + 0xc], 0
setne al
mov edx, dword [esi + 8]
jmp dword [eax*4 + 0x444dc8]
mov ecx, dword [esi + 0x28]
cmp ecx, 2
jb 0x4204d0
shr ecx, 1
lea eax, [ecx - 1]
mov dword [esi + 0x7c], eax
mov eax, ecx
and eax, 3
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x10]
je 0x420803
mov dword [esi], ecx
xor ecx, ecx
lea edi, [esi + 0xaa0]
movzx ebx, word [edi]
xor edx, edx
test bx, bx
setne dl
lea edi, [edi + edx*2]
mov word [eax], bx
add eax, 2
inc ecx
cmp dword [esi + 0xc], ecx
jne 0x4207e0
mov edx, dword [esi]
sub edx, ecx
mov ecx, edx
mov edx, dword [esi + 8]
cmp dword [esi + 0x7c], 3
jb 0x4204d3
nop
nop
nop
mov dword [esi], ecx
mov ebx, eax
movzx ecx, word [edi]
xor edx, edx
test cx, cx
setne dl
mov word [eax], cx
lea ecx, [edi + edx*2]
movzx edx, word [edi + edx*2]
xor eax, eax
test dx, dx
setne al
mov word [ebx + 2], dx
lea edx, [ecx + eax*2]
movzx eax, word [ecx + eax*2]
xor ecx, ecx
test ax, ax
setne cl
mov word [ebx + 4], ax
lea eax, [edx + ecx*2]
movzx ecx, word [edx + ecx*2]
xor edx, edx
test cx, cx
setne dl
lea edi, [eax + edx*2]
mov word [ebx + 6], cx
mov ecx, dword [esi]
lea eax, [ebx + 8]
add ecx, 0xfffffffc
jne 0x420810
mov edx, dword [esi + 8]
jmp 0x4204d3
mov dword [esi], 0
xor eax, eax
cmp dword [esi], 0
setne al
mov edx, dword [esi + 8]
mov edi, dword [esi + 0x14]
jmp dword [eax*4 + 0x444de8]
jmp dword [0x444df0]
mov eax, dword [esi + 0x28]
cmp eax, 2
jae 0x4208a1
mov ebx, dword [esi + 0x10]
jmp 0x420956
shr eax, 1
lea edx, [eax - 1]
mov ecx, eax
and ecx, 3
je 0x420a50
mov dword [esi + 8], edx
mov dword [esi], eax
xor edx, edx
mov dword [esi + 0xc], ecx
lea ecx, [esi + 0xaa0]
mov ebx, dword [esi + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, word [ecx]
xor eax, eax
test di, di
setne al
lea ecx, [ecx + eax*2]
mov word [ebx], di
add ebx, 2
inc edx
cmp dword [esi + 0xc], edx
jne 0x4208d0
mov eax, dword [esi]
sub eax, edx
mov edi, dword [esi + 0x14]
mov edx, dword [esi + 8]
cmp edx, 3
jb 0x420956
nop
nop
nop
nop
nop
nop
nop
mov dword [esi], eax
movzx eax, word [ecx]
xor edx, edx
test ax, ax
setne dl
mov word [ebx], ax
lea eax, [ecx + edx*2]
movzx ecx, word [ecx + edx*2]
xor edx, edx
test cx, cx
setne dl
mov word [ebx + 2], cx
lea ecx, [eax + edx*2]
movzx eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
mov word [ebx + 4], ax
lea eax, [ecx + edx*2]
movzx edx, word [ecx + edx*2]
xor ecx, ecx
test dx, dx
setne cl
lea ecx, [eax + ecx*2]
mov eax, dword [esi]
mov word [ebx + 6], dx
add ebx, 8
add eax, 0xfffffffc
jne 0x420900
mov word [ebx], 0xa
add ebx, 2
mov dword [esi + 0x10], ebx
jmp case.0x420304.30
mov eax, dword [esi + 0x10]
mov word [eax], 0xa
add eax, 2
mov dword [esi + 0x10], eax
mov dl, 1
jmp dword [0x444df8]
mov edx, dword [esi + 0x28]
cmp edx, 2
jb 0x420970
shr edx, 1
lea eax, [edx - 1]
mov dword [esi + 0xc], eax
mov eax, edx
and eax, 3
je 0x4209db
mov dword [esi + 8], edx
xor edx, edx
lea ecx, [esi + 0xaa0]
mov dword [esi], eax
mov eax, dword [esi + 0x10]
nop
nop
nop
movzx edi, word [ecx]
xor ebx, ebx
test di, di
setne bl
lea ecx, [ecx + ebx*2]
mov word [eax], di
add eax, 2
inc edx
cmp dword [esi], edx
jne 0x4209b0
mov edi, dword [esi + 8]
sub edi, edx
mov edx, edi
mov edi, dword [esi + 0x14]
cmp dword [esi + 0xc], 3
jae 0x4209f0
jmp 0x420973
lea ecx, [esi + 0xaa0]
mov eax, dword [esi + 0x10]
cmp dword [esi + 0xc], 3
jb 0x420973
nop
nop
nop
nop
nop
nop
mov ebx, eax
mov edi, edx
movzx edx, word [ecx]
xor eax, eax
test dx, dx
setne al
mov word [ebx], dx
lea edx, [ecx + eax*2]
movzx eax, word [ecx + eax*2]
xor ecx, ecx
test ax, ax
setne cl
mov word [ebx + 2], ax
lea eax, [edx + ecx*2]
movzx ecx, word [edx + ecx*2]
xor edx, edx
test cx, cx
setne dl
mov word [ebx + 4], cx
lea ecx, [eax + edx*2]
movzx eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
lea ecx, [ecx + edx*2]
mov edx, edi
mov word [ebx + 6], ax
lea eax, [ebx + 8]
add edx, 0xfffffffc
jne 0x4209f0
mov edi, dword [esi + 0x14]
jmp 0x420973
lea ecx, [esi + 0xaa0]
mov ebx, dword [esi + 0x10]
cmp edx, 3
jae 0x420900
jmp 0x420956
mov ebx, dword [esi + 0x54]
mov dword [esi + 0x60], 0xbab9b8b7
lea eax, [esi + 0x64]
mov word [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 0x18], 0
mov eax, dword [esi + 0x18]
cmp eax, 0xd
ja 0x420ae5
nop
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x18]
movzx ecx, byte [esi + ecx + 0x60]
lea edx, [eax - 0x295dd219]
add eax, 0xe7
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 4], edx
mov eax, dword [esi + 4]
mov ecx, eax
or ecx, 0xae
and eax, 0xae
add eax, ecx
inc al
mov ecx, dword [esi + 0x18]
mov byte [esi + ecx + 0x60], al
inc dword [esi + 0x18]
mov eax, dword [esi + 0x18]
cmp eax, 0xe
jb 0x420aa0
mov ecx, dword [0x4498e8]
test ecx, ecx
je 0x420b30
mov edx, dword [esi + 0x60]
xor edi, edi
mov eax, dword [0x4498ec]
nop
nop
nop
nop
nop
nop
nop
cmp dword [eax + edi*8], 0xad91fd63
je 0x420b10
inc edi
cmp ecx, edi
jne 0x420b00
jmp 0x420b30
mov eax, dword [eax + edi*8 + 4]
cmp eax, edx
je 0x420b30
push ebx
push 1
push dword [0x4498f0]
push eax
call fcn.0043a390
add esp, 0x10
nop
nop
nop
nop
nop
nop
mov edi, dword [esi + 0x20]
mov edx, dword [esi + 0x4c]
mov ecx, dword [esi + 0x50]
inc ecx
mov eax, dword [case.0x420304.36]
nop
jmp eax
xor eax, eax
cmp cx, 0x35
setb al
jmp dword [eax*4 + 0x444d90]
mov eax, dword [case.0x420304.40]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
inc edi
xor eax, eax
cmp edi, 5
setne al
jmp dword [eax*4 + 0x444d78]
mov eax, dword [case.0x420304.4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [esi + 0x58]
mov dword [esi], eax
mov dword [esi + 0xa0], 0xbab9b8b7
lea eax, [esi + 0x140]
mov word [eax - 0x94], 0
mov dword [eax - 0x98], 0
mov dword [eax - 0x9c], 0
mov dword [esi + 0x8a0], 0
mov eax, dword [esi + 0x8a0]
cmp eax, 0xd
ja 0x420c30
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x8a0]
mov ecx, dword [esi + 0x8a0]
movzx ecx, byte [esi + ecx + 0xa0]
lea edx, [eax - 0x295dd219]
add eax, 0xe7
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0xaa0], edx
mov eax, dword [esi + 0xaa0]
mov ecx, eax
or ecx, 0xae
and eax, 0xae
add eax, ecx
inc al
mov ecx, dword [esi + 0x8a0]
mov byte [esi + ecx + 0xa0], al
inc dword [esi + 0x8a0]
mov eax, dword [esi + 0x8a0]
cmp eax, 0xe
jb 0x420bd0
mov ecx, dword [0x4498e8]
test ecx, ecx
je 0x420c80
mov edx, dword [esi + 0xa0]
xor edi, edi
mov eax, dword [0x4498ec]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [eax + edi*8], 0xad91fd63
je 0x420c60
inc edi
cmp ecx, edi
jne 0x420c50
jmp 0x420c80
mov eax, dword [eax + edi*8 + 4]
cmp eax, edx
je 0x420c80
push dword [esi]
push 1
push dword [0x4498f0]
push eax
call fcn.0043a390
add esp, 0x10
nop
nop
nop
nop
nop
jmp dword [0x444e20]
push dword [esi + 0x44]
call fcn.00408c50
add esp, 4
mov ecx, dword [esi + 0x48]
mov edx, dword [esi + 8]
inc ecx
mov eax, dword [case.0x420304.49]
nop
nop
nop
jmp eax
xor eax, eax
cmp ecx, dword [esi + 0x5c]
setb al
jmp dword [eax*4 + 0x444d50]
mov eax, dword [esi + 0x10]
mov word [eax], 0
and dl, 1
movzx eax, dl
jmp dword [eax*4 + 0x444e40]
jmp case.0x420f26.1
xor eax, eax
jmp 0x420f41
movzx ecx, word [esi + 0x1210]
test cx, cx
je 0x420d2d
lea eax, [esi + 0x1210]
xor edi, edi
jmp 0x420cfd
inc edi
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
je 0x420d2f
cmp eax, dword [esi + 0x10]
jae 0x420d2f
cmp cx, 0x7f
jbe 0x420cf0
movzx ecx, cx
cmp ecx, 0x7ff
ja 0x420d20
add edi, 2
jmp 0x420cf1
mov ecx, edi
and ecx, 3
xor edi, 3
lea edi, [edi + ecx*2]
jmp 0x420cf1
xor edi, edi
mov eax, dword [esi + 0x3c]
mov dword [eax], edi
lea eax, [edi + 1]
mov dword [esi + 0xc], eax
push eax
call fcn.00408c40
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x40]
mov dword [eax], ecx
mov dword [esi + 8], ecx
mov eax, ecx
test edi, edi
mov ecx, dword [esi + 0x1c]
jle 0x420e22
mov eax, dword [esi + 8]
add edi, eax
add dword [esi + 0xc], eax
lea edx, [esi + 0x1210]
mov dword [esi + 0x14], edi
jmp 0x420d87
mov byte [eax], dl
mov dword [esi], 1
mov edx, ebx
add edx, 2
add eax, dword [esi]
cmp eax, edi
jae 0x420e22
cmp edx, dword [esi + 0x10]
jae 0x420e22
mov ebx, edx
movzx edx, word [edx]
test dx, dx
je 0x420e22
cmp dx, 0x7f
jbe 0x420d70
mov ecx, eax
not ecx
add ecx, dword [esi + 0xc]
cmp ecx, 2
jb 0x420de0
movzx edi, dx
cmp edi, 0x7ff
mov edi, dword [esi + 0x14]
ja 0x420de0
mov ecx, edx
shr ecx, 6
add cl, 0xc0
mov byte [eax], cl
and dl, 0x3f
or dl, 0x80
mov byte [eax + 1], dl
mov dword [esi], 2
mov ecx, dword [esi + 0x1c]
jmp 0x420d78
mov dword [esi], 0
cmp ecx, 3
mov ecx, dword [esi + 0x1c]
jb 0x420d78
movzx ecx, dx
mov dword [esi], ecx
mov ecx, dword [esi]
shr ecx, 0xc
or cl, 0xe0
mov byte [eax], cl
shr dword [esi], 6
mov ecx, dword [esi]
and cl, 0x3f
or cl, 0x80
mov byte [eax + 1], cl
mov ecx, dword [esi + 0x1c]
and dl, 0x3f
or dl, 0x80
mov byte [eax + 2], dl
mov dword [esi], 3
jmp 0x420d78
mov byte [eax], 0
mov eax, dword [esi + 0x3c]
mov eax, dword [eax]
mov dword [esi], eax
mov dword [ecx], 0xc7c8c925
mov dword [ecx + 4], 0xcbdfd8c1
mov dword [ecx + 8], 0xc6cec0c5
mov dword [ecx + 0xc], 0xc3c32403
mov dword [ecx + 0x10], 0xf6f9f8ca
mov dword [ecx + 0x14], 0xfefe1d3b
mov dword [ecx + 0x18], 0xe4fcfae8
mov dword [ecx + 0x1c], 0xcff03bf7
mov word [ecx + 0x20], 0x59f2
mov dword [ecx + 0x22], 0
mov dword [ecx + 0x26], 0
mov dword [ecx + 0x2a], 0
mov word [ecx + 0x2e], 0
mov dword [esi + 0xaa0], 0
mov eax, dword [esi + 0xaa0]
cmp eax, 0x2f
mov edx, ecx
ja 0x420f0a
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0xaa0]
mov eax, dword [esi + 0xaa0]
movzx edi, byte [edx + eax]
lea eax, [ecx + edi]
add eax, 0x1327634f
add ecx, 0x4f
mov ebx, edi
not ebx
or ebx, ecx
add ebx, edi
and ecx, edi
add ecx, ebx
inc ecx
mov edi, ecx
xor edi, eax
not ecx
and ecx, eax
add ecx, ecx
sub ecx, edi
mov dword [esi + 0xa0], ecx
mov eax, dword [esi + 0xa0]
mov ecx, eax
xor ecx, 0xd6
and eax, 0x56
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi + 0xaa0]
mov byte [edx + ecx], al
inc dword [esi + 0xaa0]
mov eax, dword [esi + 0xaa0]
cmp eax, 0x30
jb 0x420ea0
mov ecx, dword [ebp + 8]
push dword [esi]
push dword [esi + 8]
push edx
call fcn.004096f0
mov edx, eax
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x444e48]
push eax
mov edi, edx
call fcn.00408c50
mov edx, edi
add esp, 4
jmp case.0x420f26.1
test dl, dl
setne al
mov ecx, dword [case.0x420f26.4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor ecx, ecx
test eax, eax
sete cl
mov esi, 0x20119
xor eax, eax
jmp dword [ecx*4 + 0x445578]
jmp dword [eax*4 + 0x4454c0]
jmp dword [0x4454c8]
mov dword [esp + 0x58], 0x63d061dc
mov dword [esp + 0x5c], 0x67216521
mov dword [esp + 0x60], 0x6bd96921
mov dword [esp + 0x64], 0x6fdc6dd8
mov dword [esp + 0x68], 0x53ee51e9
mov dword [esp + 0x6c], 0x57175519
mov dword [esp + 0x70], 0x5b12591b
mov dword [esp + 0x74], 0x5f105d15
mov dword [esp + 0x78], 0x43fe4105
mov dword [esp + 0x7c], 0x470945f7
mov dword [esp + 0x80], 0x4bfe490e
mov dword [esp + 0x84], 0x4f0f4dfb
mov dword [esp + 0x88], 0xb3f7b102
mov dword [esp + 0x8c], 0xb7fbb508
mov dword [esp + 0x90], 0xbb19b911
mov dword [esp + 0x94], 0xbf11bd2e
mov dword [esp + 0x98], 0xa30da133
mov dword [esp + 0x9c], 0xa732a502
mov dword [esp + 0xa0], 0xab1da914
mov dword [esp + 0xa4], 0xaf00ad05
mov dword [esp + 0xa8], 0x933d9134
mov dword [esp + 0xac], 0x97059503
mov dword [esp + 0xb0], 0x9bd99924
mov dword [esp + 0xb4], 0x9f0c9d09
mov dword [esp + 0xb8], 0x83278112
mov dword [esp + 0xbc], 0x8712852a
mov dword [esp + 0xc0], 0x8b2f893e
mov dword [esp + 0xc4], 0x8f1d8d1e
mov dword [esp + 0xc8], 0xf35df159
mov dword [esp + 0xcc], 0xf74af55a
mov dword [esp + 0xd0], 0xfb54f94d
mov dword [esp + 0xd4], 0xff50fd55
mov dword [esp + 0xd8], 0xe376e173
mov dword [esp + 0xdc], 0xe74ae545
mov dword [esp + 0xe0], 0xebeae944
mov dword [esp + 0xe8], 0
mov dword [esp + 0xe4], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x93
ja 0x4214f8
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax - 0x631b9bb0]
add eax, 0x50
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x28]
add al, 0xd0
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x94
jb 0x4214c0
lea eax, [esp + 0x14]
lea ecx, [esp + 0x58]
push 0
push 0
push esi
push eax
push ecx
call fcn.0043d400
add esp, 0x14
jmp case.0x420f26.9
lea eax, [esp + 0x14]
lea ecx, [esp + 0x58]
push 0
push 0
push esi
push eax
push ecx
call fcn.0043d400
add esp, 0x14
jmp dword [0x4454d4]
mov dword [esp + 0x58], 0x63d061dc
mov dword [esp + 0x5c], 0x67216521
mov dword [esp + 0x60], 0x6bd96921
mov dword [esp + 0x64], 0x6fdc6dd8
mov dword [esp + 0x68], 0x53ee51e9
mov dword [esp + 0x6c], 0x57175519
mov dword [esp + 0x70], 0x5b12591b
mov dword [esp + 0x74], 0x5f105d15
mov dword [esp + 0x78], 0x43fe4105
mov dword [esp + 0x7c], 0x470945f7
mov dword [esp + 0x80], 0x4bfe490e
mov dword [esp + 0x84], 0x4f0f4dfb
mov dword [esp + 0x88], 0xb3f7b102
mov dword [esp + 0x8c], 0xb7fbb508
mov dword [esp + 0x90], 0xbb19b911
mov dword [esp + 0x94], 0xbf11bd2e
mov dword [esp + 0x98], 0xa30da133
mov dword [esp + 0x9c], 0xa732a502
mov dword [esp + 0xa0], 0xab1da914
mov dword [esp + 0xa4], 0xaf00ad05
mov dword [esp + 0xa8], 0x933d9134
mov dword [esp + 0xac], 0x97059503
mov dword [esp + 0xb0], 0x9bd99924
mov dword [esp + 0xb4], 0x9f0c9d09
mov dword [esp + 0xb8], 0x83278112
mov dword [esp + 0xbc], 0x8712852a
mov dword [esp + 0xc0], 0x8b2f893e
mov dword [esp + 0xc4], 0x8f1d8d1e
mov dword [esp + 0xc8], 0xf35df159
mov dword [esp + 0xcc], 0xf74af55a
mov dword [esp + 0xd0], 0xfb54f94d
mov dword [esp + 0xd4], 0xff50fd55
mov dword [esp + 0xd8], 0xe376e173
mov dword [esp + 0xdc], 0xe74ae545
mov dword [esp + 0xe0], 0xebeae944
mov dword [esp + 0xe8], 0
mov dword [esp + 0xe4], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x93
ja 0x421520
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax - 0x631b9bb0]
add eax, 0x50
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x28]
add al, 0xd0
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x94
jb 0x4216d0
jmp 0x421520
shr eax, 0x1f
jmp dword [eax*4 + 0x4454d8]
lea eax, [esp + 0x54]
lea ecx, [esp + 0x18]
push 0
push 0
push 0
push 0
push eax
push ecx
push 0
push 0
push dword [esp + 0x34]
call fcn.0043d8a0
add esp, 0x24
not eax
shr eax, 0x1f
mov ecx, dword [esp + 0xc]
jmp dword [eax*4 + 0x4454e0]
mov eax, dword [esp + 0x18]
mov edx, ecx
mov ecx, eax
shl ecx, 9
lea eax, [ecx + eax*8]
add eax, edi
push eax
push edx
call fcn.0043a210
add esp, 8
mov dword [esp + 0xc], eax
lea ebx, [eax + edi*2]
xor edi, edi
xor eax, eax
cmp edi, dword [esp + 0x18]
setb al
jmp dword [eax*4 + 0x4454e8]
inc edi
xor eax, eax
cmp edi, dword [esp + 0x18]
setb al
jmp dword [eax*4 + 0x4454e8]
mov esi, dword [esp + 0x54]
mov eax, esi
and eax, 1
mov ecx, esi
xor ecx, 1
lea ecx, [ecx + eax*2]
lea eax, [ecx + ecx]
test ecx, ecx
jns 0x4217ae
mov eax, 0xffffffff
push eax
call fcn.00408c40
add esp, 4
mov dword [esp + 0x50], esi
lea ecx, [esp + 0x50]
push ecx
mov dword [esp + 0xc], eax
push eax
push edi
push dword [esp + 0x20]
call fcn.0043d560
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4454f0]
jmp dword [0x445528]
mov eax, dword [case.0x420f26.19]
lea esi, [esp + 0x58]
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [case.0x420f26.22]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
lea eax, [esp + 0x24]
push dword [esp + 0x14]
push 0
push 0x20019
push eax
push dword [esp + 0x18]
call fcn.0043d400
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x445518]
jmp dword [0x445528]
mov dword [esp + 0x4c], 0x800
mov dword [esp + 0x28], 0x4bcb5592
mov dword [esp + 0x2c], 0x4fd849df
mov dword [esp + 0x30], 0x43ab4dd2
mov dword [esp + 0x34], 0x47b241cd
mov dword [esp + 0x38], 0x7bd745a1
mov dword [esp + 0x3c], 0x7f7879e1
mov byte [esp + 0x40], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x18
ja 0x4218ca
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x28]
lea edx, [eax + 0xd]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x70a27f0d
mov dword [esp], eax
mov eax, dword [esp]
add al, 0xa5
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x28], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x19
jb 0x421890
lea eax, [esp + 0x4c]
lea ecx, [esp + 0x28]
push eax
push esi
push 0
push ecx
push dword [esp + 0x34]
call fcn.0043df20
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x445520]
jmp 0x421919
movzx eax, word [esp + 0x58]
test ax, ax
je 0x421911
lea ecx, [esp + 0x5a]
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x421900
mov word [ebx], 0xa
add ebx, 2
mov eax, dword [esp + 0x24]
mov dword [esp + 0x10], eax
mov dword [esp + 0x28], 0x32353437
lea eax, [esp + 0x2c]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xa
ja 0x42198d
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x28]
lea edx, [eax - 0x68990607]
and edx, ecx
add eax, ecx
add eax, 0x9766f9f9
add edx, edx
sub eax, edx
mov dword [esp], eax
mov eax, dword [esp]
add al, 0x31
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x28], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xb
jb 0x421950
mov ecx, dword [0x4498e8]
test ecx, ecx
je 0x4219e0
mov edx, dword [esp + 0x28]
xor esi, esi
mov eax, dword [0x4498ec]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [eax + esi*8], 0xad91fd63
je 0x4219c0
inc esi
cmp ecx, esi
jne 0x4219b0
jmp 0x4219e0
mov eax, dword [eax + esi*8 + 4]
cmp eax, edx
je 0x4219e0
push dword [esp + 0x10]
push 1
push dword [0x4498f0]
push eax
call fcn.0043a390
add esp, 0x10
nop
nop
nop
jmp dword [0x445528]
push dword [esp + 8]
call fcn.00408c50
add esp, 4
inc edi
xor eax, eax
cmp edi, dword [esp + 0x18]
setb al
jmp dword [eax*4 + 0x4454e8]
mov ecx, dword [esp + 0xc]
jmp dword [0x445530]
mov word [ebx], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], 0
mov edi, ebx
sub edi, ecx
sar edi, 1
jmp dword [0x445538]
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x14]
mov dword [esp + 8], eax
mov dword [esp + 0x58], 0x32353437
lea eax, [esp + 0x5c]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x421aaa
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax - 0x68990607]
and edx, ecx
add eax, ecx
add eax, 0x9766f9f9
add edx, edx
sub eax, edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
add al, 0x31
mov ecx, dword [esp]
mov byte [esp + ecx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x421a70
mov ecx, dword [0x4498e8]
test ecx, ecx
je case.default.0x421b20
mov edx, dword [esp + 0x58]
xor esi, esi
mov eax, dword [0x4498ec]
nop
cmp dword [eax + esi*8], 0xad91fd63
je 0x421ae4
inc esi
cmp ecx, esi
jne 0x421ac0
jmp case.default.0x421b20
mov eax, 4
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0x445568]
mov eax, dword [eax + esi*8 + 4]
cmp eax, edx
je case.default.0x421b20
push dword [esp + 8]
push 1
push dword [0x4498f0]
push eax
call fcn.0043a390
add esp, 0x10
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [esp + 0x58]
push eax
call fcn.0043c940
add esp, 4
movzx eax, al
jmp dword [eax*4 + 0x445540]
xor edx, edx
cmp dword [esp + 0x58], 1
sete dl
mov eax, 2
xor ecx, ecx
jmp dword [edx*4 + 0x445548]
xor eax, eax
mov ecx, 1
jmp dword [0x44555c]
jmp dword [ecx*4 + 0x445560]
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0x445568]
xor eax, eax
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0x445568]
xor ecx, ecx
cmp eax, 4
sete cl
mov esi, 0x20119
xor eax, eax
jmp dword [ecx*4 + 0x445570]
mov eax, dword [case.0x421b20.19]
nop
nop
nop
nop
jmp eax
xor edx, edx
mov ecx, dword [esp + 0xc]
cmp ebx, ecx
setne dl
xor eax, eax
jmp dword [edx*4 + 0x445590]
mov eax, ecx
movzx ecx, word [ecx]
test cx, cx
je 0x421cf9
xor esi, esi
jmp 0x421be2
mov esi, dword [esp + 8]
add esi, edi
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
je 0x421c19
test ebx, ebx
je 0x421bea
cmp eax, ebx
jae 0x421c19
mov dword [esp + 8], esi
movzx esi, cx
xor ecx, ecx
cmp esi, 0x800
setb byte [esp + 0x10]
mov edi, 1
cmp esi, 0x80
jb 0x421bd0
movzx edx, byte [esp + 0x10]
mov cl, dl
xor ecx, 3
mov edi, ecx
jmp 0x421bd0
lea edi, [esi + 1]
push edi
call fcn.00408c40
add esp, 4
test esi, esi
mov dword [esp + 8], esi
mov dword [esp + 0x1c], eax
jle 0x421d13
lea ecx, [eax + esi]
mov dword [esp + 0x10], ecx
add edi, eax
mov edx, dword [esp + 0xc]
mov esi, edi
mov edi, eax
mov dword [esp + 0x20], esi
jmp 0x421c66
mov byte [edi], cl
mov eax, 1
add edx, 2
add edi, eax
cmp edi, dword [esp + 0x10]
jae 0x421d15
test ebx, ebx
je 0x421c72
cmp edx, ebx
jae 0x421d15
movzx ecx, word [edx]
test cx, cx
je 0x421d15
cmp cx, 0x7f
jbe 0x421c50
mov eax, edi
not eax
add eax, esi
cmp eax, 2
jb 0x421cc0
movzx esi, cx
cmp esi, 0x7ff
mov esi, dword [esp + 0x20]
ja 0x421cc0
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 0x421c57
cmp eax, 3
mov eax, 0
jb 0x421c57
movzx esi, cx
mov eax, esi
shr eax, 0xc
or al, 0xe0
mov byte [edi], al
mov eax, esi
mov esi, dword [esp + 0x20]
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 0x421c57
mov dword [esp + 8], 0
push 1
call fcn.00408c40
add esp, 4
mov edi, eax
mov dword [esp + 0x1c], eax
jmp 0x421d15
mov edi, eax
mov ecx, dword [ebp + 8]
mov byte [edi], 0
mov dword [esp + 0x58], 0x37c03ed3
mov dword [esp + 0x5c], 0xba48c833
mov dword [esp + 0x60], 0x4f4a4986
mov byte [esp + 0x64], 0xd0
mov dword [esp + 0x65], 0
mov byte [esp + 0x69], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x11
ja 0x421dc5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, dword [esp]
mov eax, dword [esp]
movzx edx, byte [esp + eax + 0x58]
lea esi, [ebx - 0x4ee28146]
lea eax, [ebx + edx]
add eax, 0xb11d7eba
and esi, edx
mov edi, 0x4ee28145
sub edi, ebx
or edi, edx
add edi, ebx
add esi, edi
add esi, 0xb11d7ebb
mov edx, esi
xor edx, eax
not esi
and esi, eax
add esi, esi
sub esi, edx
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x28]
mov edx, eax
or edx, 0xe9
and eax, 0xe9
add eax, edx
inc al
mov edx, dword [esp]
mov byte [esp + edx + 0x58], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x12
jb 0x421d60
lea eax, [esp + 0x58]
push dword [esp + 8]
mov esi, dword [esp + 0x20]
push esi
push eax
call fcn.004096f0
mov ecx, dword [esp + 0xc]
jmp dword [0x445598]
push esi
mov esi, eax
call fcn.00408c50
mov eax, esi
mov ecx, dword [esp + 0x10]
add esp, 4
push ecx
mov ebx, eax
call fcn.00438940
add esp, 4
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
int3
lea ecx, [esp + 0x4c]
push 0x410
call fcn.00438c90
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x4455b8]
mov dword [esp + 0x60], 0x60bb7221
mov dword [esp + 0x64], 0x7660455e
mov dword [esp + 0x68], 0x6a616b45
mov dword [esp + 0x6c], 0x5f646849
mov dword [esp + 0x70], 0x7e53ac40
mov dword [esp + 0x74], 0x7756a851
mov dword [esp + 0x78], 0x7845584c
mov dword [esp + 0x7c], 0x7ca77e53
mov dword [esp + 0x80], 0x9c6a7054
mov dword [esp + 0x84], 0x449b8d6d
mov dword [esp + 0x88], 0xd3806965
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
mov byte [esp + 0x94], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x34
ja 0x4224ae
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x60]
add eax, 0x8ae12a3f
xor eax, ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
add al, 0x47
mov ecx, dword [esp]
mov byte [esp + ecx + 0x60], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x35
jb 0x422480
lea eax, [esp + 0x14]
lea ecx, [esp + 0x4c]
push 0
push 0x2b
mov ebx, esi
push esi
push eax
call fcn.00439270
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
xor eax, eax
cmp edi, ecx
sete al
jmp dword [eax*4 + 0x4455c0]
mov eax, ecx
xor eax, edi
mov esi, ecx
mov ecx, edi
not ecx
and ecx, esi
add ecx, ecx
sub ecx, eax
sar ecx, 2
imul eax, ecx, 0x421
push eax
call fcn.00408c40
add esp, 4
mov dword [esp + 0x40], 0
xor ecx, ecx
mov dword [esp + 0x5c], esi
cmp edi, esi
setne cl
mov dword [esp + 0x3c], eax
mov dword [esp + 8], eax
jmp dword [ecx*4 + 0x4455c8]
mov ebx, dword [esp + 0x40]
mov eax, ebx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x445640]
mov esi, dword [esp + 0x3c]
jmp dword [0x445648]
and bl, 1
jmp dword [0x445650]
xor ebx, ebx
jmp dword [0x4455b0]
add edi, 4
xor eax, eax
cmp edi, dword [esp + 0x5c]
setne al
jmp dword [eax*4 + 0x4455c8]
mov esi, dword [edi]
push 0x400
push 0
push ebx
call fcn.00408dd0
add esp, 0xc
lea eax, [esp + 0x28]
lea ecx, [esp + 0x4c]
push eax
push 0x400
push ebx
push esi
call fcn.00439100
xor ecx, ecx
cmp eax, 0xc0000000
setae cl
jmp dword [ecx*4 + 0x4455d0]
xor eax, eax
cmp dword [esp + 0x28], 0
sete al
jmp dword [eax*4 + 0x4455d8]
xor eax, eax
mov ecx, 1
jmp dword [ecx*4 + 0x4455e0]
mov eax, 3
xor ecx, ecx
jmp dword [ecx*4 + 0x4455e0]
mov byte [esp + 0x45f], 0
movzx edx, byte [esp + 0x60]
xor eax, eax
mov ecx, 0
test dl, dl
je 0x422610
mov ecx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
cmp dl, 0x2e
je 0x422610
movzx edx, byte [ecx + 1]
inc ecx
test dl, dl
jne 0x422600
xor ecx, ecx
xor edx, edx
test ecx, ecx
setne dl
jmp dword [edx*4 + 0x4455e8]
mov dword [esp + 0x44], edi
lea esi, [ecx + 1]
movzx eax, byte [ecx + 1]
xor edi, edi
test al, al
je 0x422651
mov edx, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp al, 0x2e
je 0x42264f
movzx eax, byte [edx + 1]
inc edx
test al, al
jne 0x422640
jmp 0x422651
mov edi, edx
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x4455f0]
mov ecx, dword [case.0x4224d2.8]
mov edi, dword [esp + 0x44]
jmp case.0x422884.2
mov edx, edi
sub edx, esi
lea ebx, [edx + edx*2]
shr ebx, 2
movzx eax, byte [ecx + edx]
cmp eax, 0x3d
je 0x422686
cmp eax, 0x2e
jne 0x422687
dec ebx
movzx eax, byte [edx + esi - 2]
cmp eax, 0x3d
mov dword [esp + 0x20], edx
je 0x42269a
cmp eax, 0x2e
jne case.0x420304.152
dec ebx
mov dword [esp + 0x58], ebx
lea eax, [ebx + 1]
push eax
call fcn.00408c40
add esp, 4
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], esi
cmp edi, esi
je case.0x420304.153
xor esi, esi
mov edi, 2
jmp 0x4226e2
mov edx, dword [esp + 0x48]
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [edi + 4]
add edi, 2
mov esi, edx
cmp edi, ecx
mov edi, eax
jae case.0x420304.153
mov ebx, dword [esp + 0x24]
movzx eax, byte [ebx + edi - 2]
push eax
call fcn.00418d00
add esp, 4
mov byte [esp + 0x10], al
movzx eax, byte [ebx + edi - 1]
push eax
call fcn.00418d00
add esp, 4
mov bh, al
movzx ecx, byte [esp + 0x10]
shl cl, 2
shr al, 4
and al, 3
or al, cl
mov ecx, dword [esp + 0xc]
mov byte [ecx + esi], al
lea edx, [esi + 1]
mov ecx, dword [esp + 0x20]
cmp edi, ecx
jae 0x4226d0
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x24]
movzx eax, byte [eax + edi]
push eax
mov esi, edx
call fcn.00418d00
mov edx, esi
mov ecx, dword [esp + 0x24]
add esp, 4
cmp al, 0x40
je 0x4226d0
mov bl, al
shl bh, 4
shr al, 2
and al, 0xf
or al, bh
mov esi, dword [esp + 0x10]
lea edx, [esi + 2]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0xc]
mov byte [edx + esi + 1], al
lea eax, [edi + 1]
cmp eax, ecx
jae 0x4226c4
mov eax, dword [esp + 0x24]
movzx eax, byte [eax + edi + 1]
push eax
call fcn.00418d00
mov ecx, dword [esp + 0x24]
add esp, 4
cmp al, 0x40
mov edx, dword [esp + 0x48]
je 0x4226d0
shl bl, 6
add al, bl
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mov byte [edx + esi + 2], al
add esi, 3
mov edx, esi
jmp 0x4226d0
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0xc]
mov byte [esi + eax], 0
push esi
call fcn.00401e20
add esp, 4
mov ebx, eax
jmp dword [0x4455f8]
push esi
call fcn.00408c50
add esp, 4
push ebx
call fcn.00402720
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esp + 0x44]
jmp dword [ecx*4 + 0x445600]
jmp 0x4228e9
mov dword [esp + 0x28], 0x6bf4e0e3
lea ecx, [esp + 0x2c]
mov word [ecx + 8], 0
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xd
ja 0x42286f
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x28]
lea esi, [ecx + 0xd2]
add ecx, edx
and esi, edx
add esi, esi
sub ecx, esi
add ecx, 0x926403d2
mov dword [esp], ecx
mov ecx, dword [esp]
add cl, 0x42
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x28], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xe
jb 0x422830
lea ecx, [esp + 0x28]
push ecx
push eax
call fcn.00402670
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x445608]
mov edx, dword [esp + 8]
jmp 0x4228b9
movzx ecx, byte [eax]
test cl, cl
je 0x4228ad
inc eax
mov edx, dword [esp + 8]
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x4228a0
jmp 0x4228b1
mov edx, dword [esp + 8]
mov word [edx], 0x203a
add edx, 2
movzx eax, byte [esp + 0x60]
test al, al
je 0x4228db
lea ecx, [esp + 0x61]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4228d0
mov byte [edx], 0xa
inc edx
mov dword [esp + 8], edx
mov al, 1
mov dword [esp + 0x40], eax
push ebx
call fcn.004029b0
add esp, 4
mov ecx, dword [case.0x4224d2.8]
lea ebx, [esp + 0x60]
nop
nop
nop
nop
xor eax, eax
jmp ecx
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x445620]
jmp dword [0x445630]
xor ebx, ebx
jmp dword [0x445650]
mov ecx, dword [ebp + 8]
mov esi, dword [esp + 8]
mov byte [esi], 0
mov edx, esi
not edx
mov eax, dword [esp + 0x3c]
and edx, eax
mov ebx, eax
not eax
and eax, esi
sub eax, edx
mov dword [esp + 0x60], 0x8f8281f1
mov dword [esp + 0x64], 0x8397968d
mov dword [esp + 0x68], 0xb8b4b6b1
mov dword [esp + 0x6c], 0xaabadef3
mov dword [esp + 0x70], 0xd7fdbca1
mov dword [esp + 0x74], 0xb9a3bebb
mov dword [esp + 0x78], 0x93aee7ab
mov word [esp + 0x7c], 0x1da8
mov dword [esp + 0x7e], 0
mov word [esp + 0x82], 0
mov dword [esp], 0
mov edx, dword [esp]
cmp edx, 0x23
ja 0x4229ea
nop
nop
nop
nop
nop
nop
mov edx, dword [esp]
mov esi, dword [esp]
movzx esi, byte [esp + esi + 0x60]
lea edi, [edx + 0x4f7f3cd8]
add edx, 0xd8
and edx, esi
or edi, esi
sub edi, edx
mov dword [esp + 0x28], edi
mov edx, dword [esp + 0x28]
add dl, 0x18
mov esi, dword [esp]
mov byte [esp + esi + 0x60], dl
inc dword [esp]
mov edx, dword [esp]
cmp edx, 0x24
jb 0x4229b0
lea edx, [esp + 0x60]
push eax
mov esi, ebx
push ebx
push edx
call fcn.004096f0
mov ebx, eax
jmp dword [0x445648]
push esi
call fcn.00408c50
add esp, 4
and bl, 1
jmp dword [0x445650]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x422a29
cmp eax, dword [esp + 0x18]
je 0x422a29
push eax
call fcn.00408c50
add esp, 4
jmp dword [0x44565c]
mov eax, dword [esp + 0x14]
test eax, eax
je case.0x422658.24
cmp eax, dword [esp + 0x18]
je case.0x422658.24
push eax
call fcn.00408c50
add esp, 4
jmp case.0x422658.24
jmp dword [0x445664]
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea ecx, [esp + 0x4c]
call fcn.00438dd0
lea ecx, [esp + 0x4c]
call fcn.00438dd0
jmp dword [0x445668]
mov dword [esi + 0x24], edx
mov dword [esi + 0x34], ecx
sub esp, 0x40
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov esp, eax
push eax
mov dword [esi + 0x30], esp
push eax
mov dword [esi + 0x9c], esp
push eax
mov dword [esi + 0xa8], esp
push eax
mov dword [esi + 0x98], esp
push eax
mov dword [esi + 0xcc], esp
push eax
mov dword [esi + 0xc0], esp
sub esp, 0x30
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x2c], eax
mov esp, eax
push eax
mov dword [esi + 0xc4], esp
push eax
mov dword [esi + 0xc8], esp
sub esp, 8
mov dword [esi + 0xbc], esp
sub esp, 8
mov dword [esi + 0xb8], esp
sub esp, 8
mov dword [esi + 0xa4], esp
sub esp, 0x28
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xd0], eax
mov esp, eax
mov dword [esi + 0x10], 0
mov eax, 0x20219
mov ecx, 1
jmp dword [ecx*4 + 0x445680]
xor ebx, ebx
cmp dword [esi + 0x10], 0
sete bl
jmp dword [ebx*4 + 0x445710]
mov dword [esi + 0x40], 0x3bdd39ea
mov dword [esi + 0x44], 0x3fd23dcb
mov dword [esi + 0x48], 0xc32bc1d8
mov dword [esi + 0x4c], 0xc718c52b
mov dword [esi + 0x50], 0xcb39c923
mov dword [esi + 0x54], 0xcf2acd24
mov dword [esi + 0x58], 0xd339d125
mov dword [esi + 0x5c], 0xd722d5fc
mov dword [esi + 0x60], 0xdb3ed932
lea eax, [esi + 0x64]
mov word [esi + 0x64], 0xddda
mov dword [esi + 0x6a], 0
mov dword [esi + 0x66], 0
mov dword [esi + 8], 0
mov ecx, dword [esi + 8]
cmp ecx, 0x2d
ja 0x422bf0
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 8]
mov edx, dword [esi + 8]
movzx edx, byte [esi + edx + 0x40]
mov edi, ecx
and edi, 0xeecf39f7
xor ecx, 0x6ecf39f7
lea ecx, [ecx + edi*2]
lea edi, [ecx + edx]
and ecx, edx
add ecx, ecx
sub edi, ecx
mov dword [esi + 4], edi
mov ecx, dword [esi + 4]
add cl, 0x3f
mov edx, dword [esi + 8]
mov byte [esi + edx + 0x40], cl
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, 0x2e
jb 0x422bb0
lea edi, [esi + 0xe0]
lea edx, [esi + 0x40]
mov ecx, 9
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esi + 0x104]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, 0xfffffffe
mov ecx, dword [esi + 0x10]
nop
nop
nop
nop
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x422c20
cmp eax, 0xffffffd9
jge 0x4230fe
mov eax, 0xffffffff
jmp 0x423101
jmp dword [0x445720]
xor ebx, ebx
jmp 0x4241b6
xor edx, edx
test edi, edi
sete dl
mov eax, 0x20119
xor ecx, ecx
jmp dword [edx*4 + 0x445708]
jmp dword [ecx*4 + 0x445680]
mov dword [esi + 0x40], 0x9bc899fc
mov dword [esi + 0x44], 0x97c995c9
mov dword [esi + 0x48], 0x93c191c9
mov dword [esi + 0x4c], 0xaffcadc0
mov dword [esi + 0x50], 0xabcea9c1
mov dword [esi + 0x54], 0xa7e7a5f1
mov dword [esi + 0x58], 0xa3faa1e3
mov dword [esi + 0x5c], 0xbfe8bde5
mov dword [esi + 0x60], 0xbbdeb9e5
mov dword [esi + 0x64], 0xb7e1b5e7
mov dword [esi + 0x68], 0xb3deb1ee
mov dword [esi + 0x6c], 0xcf8fcda3
mov dword [esi + 0x70], 0xcb97c99a
mov dword [esi + 0x74], 0xc7a8c5a0
mov dword [esi + 0x78], 0xc3b6c1a1
mov dword [esi + 0x7c], 0xdfa3dd52
mov dword [esi + 0x80], 0xdb89d9bc
mov dword [esi + 0x84], 0xd7abd558
mov dword [esi + 0x88], 0xd3a7d1b1
mov word [esi + 0x8c], 0xedec
lea ecx, [esi + 0x8e]
mov dword [ecx + 3], 0
mov dword [ecx], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x54
ja 0x422d84
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx ebx, byte [esi + edx + 0x40]
lea edi, [ecx + 0x94]
and edi, ebx
mov edx, 0x74d6a86b
sub edx, ecx
or edx, ebx
add ebx, ecx
add edx, ecx
add edx, edi
not edx
add edx, ebx
mov dword [esi + 0xe0], edx
mov ecx, dword [esi + 0xe0]
mov edx, ecx
xor edx, 0xf3
and ecx, 0x73
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esi + 4]
mov byte [esi + edx + 0x40], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x55
jb 0x422d30
lea ecx, [esi + 8]
lea edx, [esi + 0x40]
push 0
push 0
push eax
push ecx
push edx
call fcn.0043d400
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x445688]
lea ebx, [esi + 0x38]
lea eax, [esi + 0x3c]
push ebx
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esi + 8]
call fcn.0043d8a0
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x445690]
jmp dword [0x445698]
mov ecx, dword [esi + 0x38]
lea eax, [ecx + ecx]
add eax, 2
inc ecx
jns 0x422de5
mov eax, 0xffffffff
push eax
call fcn.00408c40
add esp, 4
mov dword [esi + 0x40], 0xf3608dc5
mov dword [esi + 0x44], 0xf762f167
mov dword [esi + 0x48], 0xfb56f555
mov dword [esi + 0x4c], 0xff4ef954
mov dword [esi + 0x50], 0xe376fd5d
mov dword [esi + 0x54], 0xe7e6e148
lea ecx, [esi + 0x8e]
mov byte [ecx - 0x32], 0
mov dword [ecx - 0x36], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x1c
ja 0x422e7b
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [esi + edx + 0x40]
lea edi, [ecx + 0x7ce7d23e]
add ecx, 0x3e
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esi + 0xe0], edi
mov ecx, dword [esi + 0xe0]
add cl, 0x4e
mov edx, dword [esi + 4]
mov byte [esi + edx + 0x40], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x1d
jb 0x422e40
push ebx
push eax
push 0
lea eax, [esi + 0x40]
push eax
push dword [esi + 8]
call fcn.0043df20
add esp, 0x14
jmp case.0x422d9c.4
push ebx
push edi
push 0
lea eax, [esi + 0x40]
push eax
push dword [esi + 8]
call fcn.0043df20
add esp, 0x14
jmp dword [0x4456a0]
mov eax, dword [esi + 0x38]
mov ecx, eax
inc ecx
jns 0x422ec0
mov eax, 0xffffffff
jmp 0x422ec5
add eax, eax
add eax, 2
push eax
call fcn.00408c40
add esp, 4
mov edi, eax
mov dword [esi + 0x40], 0xf3608dc5
mov dword [esi + 0x44], 0xf762f167
mov dword [esi + 0x48], 0xfb56f555
mov dword [esi + 0x4c], 0xff4ef954
mov dword [esi + 0x50], 0xe376fd5d
mov dword [esi + 0x54], 0xe7e6e148
lea eax, [esi + 0x8e]
mov byte [eax - 0x32], 0
mov dword [eax - 0x36], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x1c
ja 0x422e90
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [esi + ecx + 0x40]
lea edx, [eax + 0x7ce7d23e]
add eax, 0x3e
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0xe0], edx
mov eax, dword [esi + 0xe0]
add al, 0x4e
mov ecx, dword [esi + 4]
mov byte [esi + ecx + 0x40], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x1d
jb 0x422f20
jmp 0x422e90
mov edi, 4
jmp case.0x42306e.1
shr eax, 0x1f
mov dword [esi + 0x10], edi
jmp dword [eax*4 + 0x4456a8]
mov dword [esi + 0x10], 0
jmp dword [0x4456b0]
push edi
call fcn.00408c50
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov dword [esi + 0x40], 0x32353437
lea ecx, [esi + 0x8e]
mov dword [ecx - 0x47], 0
mov dword [ecx - 0x4a], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0xa
ja 0x423010
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [esi + edx + 0x40]
lea edi, [ecx - 0x68990607]
and edi, edx
add ecx, edx
add ecx, 0x9766f9f9
add edi, edi
sub ecx, edi
mov dword [esi + 0xe0], ecx
mov ecx, dword [esi + 0xe0]
add cl, 0x31
mov edx, dword [esi + 4]
mov byte [esi + edx + 0x40], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0xb
jb 0x422fd0
mov ecx, dword [0x4498e8]
test ecx, ecx
je case.default.0x42306e
mov edx, dword [esi + 0x40]
xor edi, edi
mov ebx, dword [0x4498ec]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xad91fd63
je 0x423040
inc edi
cmp ecx, edi
jne 0x423030
jmp case.default.0x42306e
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je case.default.0x42306e
push eax
push 1
push dword [0x4498f0]
push ecx
call fcn.0043a390
add esp, 0x10
nop
nop
nop
nop
nop
nop
xor eax, eax
cmp dword [esi + 0x10], 0
setne al
mov edi, 2
jmp dword [eax*4 + 0x4456b8]
lea eax, [esi + 0x40]
push eax
call fcn.0043c940
add esp, 4
movzx edx, al
xor eax, eax
mov ecx, 1
jmp dword [edx*4 + 0x4456c0]
mov edx, dword [case.0x42306e.7]
nop
nop
nop
nop
nop
nop
nop
nop
jmp edx
xor edx, edx
cmp dword [esi + 0x40], 1
sete dl
jmp dword [edx*4 + 0x4456d8]
mov edi, eax
jmp dword [ecx*4 + 0x4456e0]
xor edi, edi
nop
nop
nop
mov eax, dword [case.0x42306e.15]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
cmp edi, 4
setl al
jmp dword [eax*4 + 0x4456f8]
sete al
movzx edx, al
mov eax, 0x20119
xor ecx, ecx
jmp dword [edx*4 + 0x445700]
xor eax, eax
jmp dword [eax*4 + 0x4456e0]
add eax, 0x26
push eax
call fcn.00408c40
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x10]
movzx ecx, word [eax]
mov eax, edi
test cx, cx
je 0x423141
mov eax, dword [esi + 0x10]
lea edx, [eax + 2]
mov eax, edi
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 [edx]
add edx, 2
test cx, cx
jne 0x423130
mov word [eax], 0
movzx ecx, word [esi + 0xe0]
test cx, cx
je 0x423171
lea edx, [esi + 0xe2]
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 0x423160
mov word [eax], 0
jmp dword [ebx*4 + 0x445728]
push dword [esi + 0x10]
call fcn.00408c50
add esp, 4
lea eax, [esi + 0x3c]
push 0x60
push 3
push 0x120089
push eax
mov dword [esi + 0x20], edi
push edi
call fcn.0043cba0
add esp, 0x14
not eax
shr eax, 0x1f
mov dword [esi + 0x10], 0
mov dword [esi + 0x18], 0
jmp dword [eax*4 + 0x445730]
mov edi, dword [esi + 0x20]
jmp dword [0x4457d0]
jmp dword [0x4457d8]
lea eax, [esi + 0x38]
push 0
push eax
push dword [esi + 0x3c]
call fcn.0043cf40
add esp, 0xc
not eax
shr eax, 0x1f
xor edx, edx
xor ecx, ecx
jmp dword [eax*4 + 0x445738]
mov edi, dword [esi + 0x38]
lea eax, [edi + 1]
push eax
call fcn.00408c40
add esp, 4
push 0
push edi
mov edi, eax
push eax
push dword [esi + 0x3c]
call fcn.0043d050
add esp, 0x10
not eax
shr eax, 0x1f
xor edx, edx
xor ecx, ecx
jmp dword [eax*4 + 0x445740]
mov ebx, edi
mov edi, dword [esi + 0x38]
mov byte [ebx + edi], 0
push 0x20
call fcn.00408c40
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 [esi + 0xac], eax
mov ecx, eax
push edi
mov dword [esi + 0xb0], ebx
push ebx
call fcn.00425620
movzx eax, al
xor edx, edx
mov dword [esi + 0x18], 0
jmp dword [eax*4 + 0x445748]
mov edi, dword [esi + 0xac]
lea ebx, [esi + 0x40]
jmp dword [0x445750]
mov eax, dword [esi + 0xbc]
mov ecx, dword [esi + 0xa0]
mov dword [eax], ecx
mov ecx, dword [esi + 0x30]
mov dword [eax + 4], ecx
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + eax + 1], 0
lea eax, [eax + 1]
jne case.default.0x423309
mov ecx, dword [esi + 0xb8]
mov dword [ecx], eax
mov dword [ecx + 4], edi
mov ebx, dword [esi + 0xa4]
mov dword [ebx], 0
mov dword [ebx + 4], 0
push 0x79955919
push dword [0x4498f4]
call fcn.0043bfb0
add esp, 8
push ebx
push 1
push 0
push 0
push dword [esi + 0xb8]
push 0
push dword [esi + 0xbc]
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x445880]
xor eax, eax
mov ecx, dword [esi + 0x30]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x445888]
dec edi
mov byte [esi + 0x98], 1
cmp al, 0x30
je 0x4235e6
jmp 0x4235f6
movzx eax, byte [edi]
test al, al
mov ecx, dword [esi + 0x24]
je 0x42335b
inc edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx], al
inc ecx
movzx eax, byte [edi]
inc edi
test al, al
jne 0x423350
mov word [ecx], 0x203a
mov eax, ecx
add eax, 2
mov edi, dword [esi + 0xa4]
mov edx, dword [edi]
test edx, edx
je 0x42339e
mov ecx, dword [edi + 4]
mov edi, edx
and edi, 3
je 0x4233a2
mov dword [esi + 0xc], edx
xor ebx, ebx
movzx edx, byte [ecx]
cmp dl, 1
mov byte [eax + ebx], dl
sbb ecx, 0xffffffff
inc ebx
cmp edi, ebx
jne 0x423380
add eax, ebx
mov edi, dword [esi + 0xc]
mov edx, edi
sub edx, ebx
mov ebx, eax
jmp 0x4233a4
mov ebx, eax
jmp 0x4233e8
mov edi, edx
cmp edi, 4
mov edi, dword [esi + 0xa4]
jb 0x4233e8
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
mov byte [eax + 3], bl
lea ebx, [eax + 4]
mov eax, ebx
add edx, 0xfffffffc
jne 0x4233af
mov byte [ebx], 0xa
inc ebx
mov dword [esi + 0x24], ebx
mov eax, dword [esi + 0x34]
mov byte [eax], 1
push 0xe9520bac
push dword [0x4498dc]
call fcn.0043bfb0
add esp, 8
push dword [edi + 4]
call eax
mov eax, dword [esi + 0xc8]
mov ecx, dword [eax]
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x445888]
mov edi, dword [eax]
xor ebx, ebx
cmp dword [eax + 0x18], 3
jne case.default.0x423444
mov ebx, dword [eax + 0x10]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x445830]
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x445838]
mov eax, ebx
nop
nop
nop
nop
nop
mov ecx, eax
inc eax
cmp byte [ecx], 0
jne case.default.0x4234ad
sub ecx, ebx
inc ecx
shr ecx, 1
mov dword [esi + 0xa0], ecx
lea eax, [ecx + 1]
push eax
call fcn.00408c40
add esp, 4
mov ecx, eax
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0xc8]
mov dword [eax], ecx
mov eax, dword [case.0x4239a4.15]
mov dword [esi + 0x28], eax
movzx ecx, byte [ebx]
xor eax, eax
test cl, cl
setne al
mov edx, dword [case.0x4239a4.17]
mov dword [esi + 0x1c], edx
mov edx, dword [esi + 0x30]
mov dword [esi + 0x14], edx
jmp dword [eax*4 + 0x445840]
mov eax, dword [esi + 0x14]
mov byte [eax], cl
inc eax
mov dword [esi + 0x14], eax
movzx ecx, byte [ebx]
xor eax, eax
test cl, cl
setne al
jmp dword [eax*4 + 0x445840]
jmp dword [esi + 0x28]
jmp 0x4234e5
movzx ecx, byte [ebx + 1]
inc ebx
mov dword [esi + 0xc], ebx
inc ebx
movsx edx, cl
mov ecx, edx
or ecx, 0x20
lea eax, [ecx - 0x61]
cmp eax, 5
ja 0x423500
add ecx, 0xffffffa9
jmp dword [esi + 0x1c]
lea eax, [edx - 0x30]
mov ecx, edx
or ecx, 0xffffffcf
and edx, 0xffffffcf
add ecx, edx
inc ecx
cmp eax, 0xa
jb 0x423518
mov ecx, 0xffffffff
jmp dword [esi + 0x1c]
movsx edx, byte [ebx]
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x445858]
shl cl, 4
add dword [esi + 0xc], 2
mov ebx, edx
or ebx, 0x20
lea eax, [ebx - 0x61]
cmp eax, 5
ja case.default.0x42355b
add ebx, 0xffffffa9
or cl, bl
mov eax, dword [esi + 0x14]
mov byte [eax], cl
inc eax
mov dword [esi + 0x14], eax
mov ebx, dword [esi + 0xc]
movzx ecx, byte [ebx]
xor edx, edx
test cl, cl
setne dl
jmp dword [edx*4 + 0x445840]
mov ebx, dword [esi + 0xc]
lea eax, [edx - 0x30]
cmp eax, 0xa
jb 0x423582
mov edx, 0xffffffff
jmp 0x42358d
mov eax, edx
or eax, 0xffffffcf
and edx, 0xffffffcf
add edx, eax
inc edx
or cl, dl
mov eax, dword [esi + 0x14]
mov byte [eax], cl
inc eax
mov dword [esi + 0x14], eax
movzx ecx, byte [ebx]
xor edx, edx
test cl, cl
setne dl
jmp dword [edx*4 + 0x445840]
mov eax, dword [esi + 0x14]
mov byte [eax], 0
nop
inc edi
movzx eax, byte [edi - 1]
movsx ecx, al
lea edx, [ecx - 9]
cmp edx, 5
jb 0x4235b0
cmp ecx, 0x20
je 0x4235b0
movzx ecx, al
cmp ecx, 0x2b
je 0x4235d6
cmp ecx, 0x2d
jne 0x423321
cmp al, 0x2b
sete byte [esi + 0x98]
movzx eax, byte [edi]
cmp al, 0x30
jne 0x4235f6
movzx eax, byte [edi + 1]
and al, 0xdf
xor ecx, ecx
cmp al, 0x58
sete cl
lea edi, [edi + ecx*2]
mov dword [esi + 0x14], edi
xor ebx, ebx
mov dword [esi + 0xc], 0
xor edx, edx
jmp 0x423632
mov dword [esi + 0x1c], 0
xor edi, edi
mov dword [esi + 0x2c], 0xffffffff
mov eax, 0xffffffff
mov dword [esi + 0x28], 0x22
mov ecx, dword [esi + 0x1c]
add ecx, dword [esi + 0x2c]
adc edi, eax
mov ebx, dword [esi + 0x28]
mov dword [esi + 0xc], ecx
mov edx, edi
mov ecx, edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x28], ebx
mov edi, dword [esi + 0x14]
movsx eax, byte [edi]
lea ebx, [eax - 0x30]
cmp ebx, 0xa
jb 0x42366f
mov dword [esi + 0xc], ecx
mov ecx, eax
and ecx, 0xffffffdf
add ecx, 0xffffffbf
cmp ecx, 0x19
ja 0x4236e3
or al, 0x20
cmp al, 0x66
jg 0x4236e3
movsx ebx, al
add ebx, 0xffffffa9
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x1c], ebx
inc edi
mov dword [esi + 0x14], edi
mov eax, edx
and eax, ecx
mov dword [esi + 0xc], 0xffffffff
mov ebx, 0x22
mov edi, edx
mov edx, 0xffffffff
cmp eax, 0xffffffff
je 0x423632
test ecx, 0xf0000000
je 0x4236b0
mov dword [esi + 0xc], 0xffffffff
cmp dword [esi + 0x1c], 0
jne 0x423632
jmp 0x423606
mov edx, edi
shld ecx, edi, 4
shl edx, 4
mov eax, dword [esi + 0x1c]
mov edi, eax
sar edi, 0x1f
mov dword [esi + 0x2c], edx
add eax, edx
mov eax, edi
adc eax, ecx
mov dword [esi + 0xc], 0xffffffff
mov eax, ecx
mov edx, 0xffffffff
jb 0x423632
jmp 0x423622
xor edi, edi
mov eax, edx
neg eax
mov ecx, 0
sbb ecx, dword [esi + 0xc]
cmp byte [esi + 0x98], 0
jne case.default.0x42370d
mov edx, eax
mov dword [esi + 0xc], ecx
mov dword [esi + 0x2c], edx
xor ecx, ecx
mov eax, dword [esi + 0x18]
cmp eax, dword [esi + 0x10]
setne cl
jmp dword [ecx*4 + 0x445860]
mov edi, dword [eax]
xor ecx, ecx
mov edx, dword [esi + 0x10]
jmp dword [ecx*4 + 0x445870]
add eax, 8
xor ecx, ecx
cmp eax, edx
setne cl
jmp dword [ecx*4 + 0x445860]
cmp dword [esi + 0x28], 0x22
setne bl
mov ecx, dword [eax + 4]
mov edx, ecx
shr edx, 0x1c
xor edx, dword [esi + 0xc]
shl ecx, 4
or ecx, 1
xor ecx, dword [esi + 0x2c]
or ecx, edx
sete cl
and cl, bl
movzx ecx, cl
jmp dword [ecx*4 + 0x445868]
mov ecx, 1
mov edx, dword [esi + 0x10]
jmp dword [ecx*4 + 0x445870]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x445878]
xor eax, eax
mov ecx, dword [esi + 0x30]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x445888]
push ecx
call fcn.00408c50
add esp, 4
mov eax, dword [case.0x423444.0]
mov edx, dword [esi + 0xc4]
nop
nop
nop
jmp eax
jmp dword [0x4458a0]
mov eax, dword [edx]
mov eax, dword [eax + 4]
mov dword [edx], eax
nop
mov eax, dword [edx]
mov eax, dword [eax + 4]
mov dword [edx], eax
jmp dword [0x4458ac]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x445818]
mov edx, dword [esi + 0x24]
jmp dword [0x445820]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x44582c]
push eax
call fcn.00408c50
add esp, 4
mov eax, dword [esi + 0x34]
movzx ebx, byte [eax]
mov edi, dword [esi + 0xd0]
jmp dword [ebx*4 + 0x4458d8]
mov ebx, dword [esi + 0x24]
mov byte [ebx], 0
sub ebx, dword [esi + 0x20]
mov dword [edi], 0x4f4a4999
mov dword [edi + 4], 0x5b77764d
mov dword [edi + 8], 0x40444649
mov dword [edi + 0xc], 0x52427e9b
mov dword [edi + 0x10], 0x679d5c69
mov dword [edi + 0x14], 0x515b5e53
mov dword [edi + 0x18], 0x4b4e9753
mov word [edi + 0x1c], 0x3db0
mov dword [edi + 0x1e], 0
mov dword [edi + 0x22], 0
mov byte [edi + 0x26], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x26
ja 0x4238b2
nop
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 [edi + ecx]
lea edx, [eax + 0x133bef64]
add eax, 0x64
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x40], edx
mov eax, dword [esi + 0x40]
add al, 0x44
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x27
jb 0x423880
mov ecx, dword [ebp + 8]
push ebx
push dword [esi + 0x20]
push edi
call fcn.004096f0
mov ebx, eax
mov eax, dword [esi + 0x34]
mov byte [eax], bl
mov edi, dword [esi + 0x18]
jmp dword [0x4458e0]
push dword [esi + 0x20]
call fcn.00408c50
add esp, 4
test bl, bl
setne bl
mov ecx, dword [esi + 0x10]
test edi, edi
jne 0x424180
jmp 0x4241b6
mov edx, dword [esi + 0x2c]
mov dword [edx], 0xe7f0fe83
mov dword [edx + 4], 0xfae888e3
mov dword [edx + 8], 0xf7838fb7
mov dword [edx + 0xc], 0xf0cdfcea
mov dword [edx + 0x10], 0x8efb8090
mov dword [edx + 0x14], 0x8585e6cb
mov dword [edx + 0x18], 0x9f8d8886
mov dword [edx + 0x1c], 0x9791f0ef
mov word [edx + 0x20], 0xd91
mov dword [edx + 0x22], 0
mov dword [edx + 0x26], 0
mov byte [edx + 0x2a], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x2a
ja 0x423992
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x2c]
movzx edx, byte [edx + ecx]
lea ecx, [eax + 0x10518232]
mov edi, edx
not edi
or edi, ecx
and ecx, edx
mov edx, dword [esi + 0x2c]
add ecx, edi
neg ecx
add eax, ecx
add eax, 0x10518231
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x40]
add al, 0xa2
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x2b
jb case.default.0x4239a4
mov ecx, ebx
push edx
call fcn.00425870
xor ecx, ecx
test eax, eax
setne cl
mov edx, dword [esi + 0x20]
jmp dword [ecx*4 + 0x445810]
mov eax, dword [eax + 8]
mov edx, dword [esi + 0xc4]
mov dword [edx], eax
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esi + 0x20]
mov dword [esi + 0x24], edi
jmp dword [ecx*4 + 0x445818]
mov dword [esi + 0x18], ecx
mov dword [esi + 0x10], edx
push edi
call fcn.00408c50
add esp, 4
jmp dword [0x4457c0]
mov edi, dword [edi]
mov eax, dword [esi + 0xc]
mov byte [eax + edi], 0
push 0x20
call fcn.00408c40
add esp, 4
mov ebx, eax
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 eax, dword [esi + 0xc0]
mov dword [eax], ebx
mov ecx, ebx
push edi
push dword [esi + 0xc]
call fcn.00425620
movzx eax, al
mov edx, dword [esi + 0x20]
jmp dword [eax*4 + 0x445808]
mov dword [esi + 0x24], edx
mov eax, dword [esi + 0xc0]
mov ebx, dword [eax]
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x4458b0]
mov ecx, ebx
call fcn.004259f0
push ebx
call fcn.00408c50
add esp, 4
mov eax, dword [case.0x42306e.130]
mov ebx, dword [esi + 0xa8]
jmp case.0x4239a4.42
mov ecx, dword [ebx]
mov eax, edx
sub eax, edi
sar eax, 3
cmp edx, dword [esi + 0xb4]
mov dword [esi + 0x28], eax
mov dword [esi + 0xa0], ebx
mov dword [esi + 0x14], ecx
jne 0x423b35
mov dword [esi + 0x10], edx
mov ecx, eax
lea edx, [eax + 1]
shr eax, 1
add eax, ecx
cmp eax, edx
ja 0x423ab3
mov eax, edx
mov ebx, eax
and ebx, 8
mov ecx, eax
or ecx, 8
imul ecx, ebx
xor ebx, 8
mov dword [esi + 0x1c], eax
and eax, 0xfffffff7
imul eax, ebx
add ecx, eax
push ecx
call fcn.00408c40
add esp, 4
mov dword [esi + 0x18], eax
test edi, edi
je 0x423b1d
mov edx, dword [esi + 0x10]
cmp edi, edx
je 0x423b14
xor eax, eax
mov ebx, dword [esi + 0x18]
nop
nop
nop
nop
nop
nop
mov ecx, dword [edi + eax]
mov dword [ebx + eax], ecx
mov ecx, dword [edi + eax + 4]
mov dword [ebx + eax + 4], ecx
mov dword [edi + eax], 0
lea ecx, [edi + eax]
add ecx, 8
add eax, 8
cmp ecx, edx
jne 0x423af0
mov edx, edi
push edx
call fcn.00408c50
add esp, 4
mov edi, dword [esi + 0x18]
mov eax, dword [esi + 0x28]
lea edx, [edi + eax*8]
mov ecx, dword [esi + 0x1c]
lea ecx, [edi + ecx*8]
mov dword [esi + 0xb4], ecx
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x10], edx
mov dword [edi + eax*8], 0
mov dword [edi + eax*8 + 4], 0
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
mov ebx, edx
inc edx
cmp byte [ecx + ebx], 0
jne 0x423b50
lea eax, [edx - 1]
mov dword [esi + 0xd8], eax
push edx
mov dword [esi + 0x1c], edx
call fcn.00408c40
add esp, 4
mov ecx, eax
mov dword [esi + 0x18], edi
mov eax, dword [esi + 0x28]
mov dword [edi + eax*8], ecx
mov eax, ecx
mov ecx, dword [esi + 0x1c]
shr ecx, 2
mov edx, dword [esi + 0x14]
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov ecx, dword [esi + 0x1c]
mov edx, ecx
and edx, 0xfffffffc
add eax, edx
add edx, dword [esi + 0x14]
shr ecx, 1
and ecx, 1
mov edi, edx
mov dword [esi + 0xdc], edx
mov dword [esi + 0xd4], eax
mov edi, eax
mov eax, dword [esi + 0xdc]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esi + 0x1c]
mov edi, eax
test al, 1
je 0x423bd4
mov eax, edi
and eax, 2
movzx ecx, byte [edx + eax]
mov edx, dword [esi + 0xd4]
mov byte [edx + eax], cl
xor eax, eax
mov ecx, edi
cmp edi, 1
mov edx, dword [esi + 0x10]
je 0x423c46
mov eax, 0xffffffff
cmp edi, 2
je 0x423c21
and ebx, 0xfffffffe
mov edx, dword [esi + 0x14]
mov ecx, eax
shr ecx, 8
xor al, byte [edx]
movzx eax, al
xor ecx, dword [eax*4 + 0x4407d0]
mov eax, ecx
shr eax, 8
xor cl, byte [edx + 1]
add edx, 2
movzx ecx, cl
xor eax, dword [ecx*4 + 0x4407d0]
add ebx, 0xfffffffe
jne 0x423bf0
mov dword [esi + 0x14], edx
mov edx, dword [esi + 0x10]
test byte [esi + 0xd8], 1
je 0x423c44
mov ecx, eax
shr ecx, 8
mov ebx, edx
mov edx, dword [esi + 0x14]
xor al, byte [edx]
mov edx, ebx
movzx eax, al
xor ecx, dword [eax*4 + 0x4407d0]
mov eax, ecx
not eax
mov ecx, dword [esi + 0x28]
mov edi, dword [esi + 0x18]
mov dword [edi + ecx*8 + 4], eax
add edx, 8
mov eax, dword [case.0x42306e.49]
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x44578c]
mov ebx, dword [esi + 0xa0]
mov ebx, dword [ebx + 4]
mov eax, dword [case.0x42306e.57]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x445768]
jmp dword [0x4457a8]
mov eax, dword [case.0x42306e.130]
mov ecx, dword [esi + 0x20]
mov dword [esi + 0x24], ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [esi + 0xcc]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4458c8]
push eax
call fcn.00408c50
add esp, 4
jmp 0x423f1d
jmp 0x423f1d
cmp dword [ebx + edi*8], 0xad91fd63
je 0x423d00
inc edi
cmp ecx, edi
jne 0x423cf0
jmp case.0x42306e.66
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je case.0x42306e.66
push eax
push 1
push dword [0x4498f0]
push ecx
call fcn.0043a390
add esp, 0x10
jmp case.0x42306e.66
jmp dword [0x4457c8]
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x40], 0x32353437
mov dword [esi + 0x44], 0
mov dword [esi + 0x47], 0
mov dword [esi + 8], 0
mov ecx, dword [esi + 8]
cmp ecx, 0xa
ja 0x423d8a
nop
nop
nop
mov ecx, dword [esi + 8]
mov edx, dword [esi + 8]
movzx edx, byte [esi + edx + 0x40]
lea edi, [ecx - 0x68990607]
and edi, edx
add ecx, edx
add ecx, 0x9766f9f9
add edi, edi
sub ecx, edi
mov dword [esi + 4], ecx
mov ecx, dword [esi + 4]
add cl, 0x31
mov edx, dword [esi + 8]
mov byte [esi + edx + 0x40], cl
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, 0xb
jb 0x423d50
mov ecx, dword [0x4498e8]
test ecx, ecx
je 0x423d20
mov edx, dword [esi + 0x40]
xor edi, edi
mov ebx, dword [0x4498ec]
nop
cmp dword [ebx + edi*8], 0xad91fd63
je 0x423dc0
inc edi
cmp ecx, edi
jne 0x423da0
jmp 0x423d20
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je 0x423d20
push eax
push 1
push dword [0x4498f0]
push ecx
call fcn.0043a390
add esp, 0x10
jmp 0x423d20
mov ebx, dword [eax + 8]
xor edi, edi
xor eax, eax
test ebx, ebx
setne al
mov dword [esi + 0xb4], 0
xor edx, edx
mov dword [esi + 0x18], 0
jmp dword [eax*4 + 0x445768]
xor ecx, ecx
test eax, eax
setne cl
mov dword [esi + 0x18], 0
xor edx, edx
jmp dword [ecx*4 + 0x445760]
mov ecx, dword [esi + 0x18]
mov edi, dword [esi + 0xb0]
jmp dword [0x4457b0]
mov edi, edx
mov ebx, dword [esi + 0xac]
mov ecx, ebx
call fcn.004259f0
push ebx
call fcn.00408c50
add esp, 4
mov edx, edi
mov ecx, dword [esi + 0x18]
mov edi, dword [esi + 0xb0]
jmp dword [0x4457b8]
jmp dword [0x4457b8]
mov dword [esi + 0x18], ecx
mov dword [esi + 0x10], edx
jmp dword [0x4457c0]
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x40], 0x32353437
mov dword [esi + 0x44], 0
mov dword [esi + 0x47], 0
mov dword [esi + 8], 0
mov ecx, dword [esi + 8]
cmp ecx, 0xa
ja 0x423eda
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 8]
mov edx, dword [esi + 8]
movzx edx, byte [esi + edx + 0x40]
lea edi, [ecx - 0x68990607]
and edi, edx
add ecx, edx
add ecx, 0x9766f9f9
add edi, edi
sub ecx, edi
mov dword [esi + 4], ecx
mov ecx, dword [esi + 4]
add cl, 0x31
mov edx, dword [esi + 8]
mov byte [esi + edx + 0x40], cl
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, 0xb
jb 0x423ea0
mov ecx, dword [0x4498e8]
test ecx, ecx
je case.0x42306e.66
mov edx, dword [esi + 0x40]
xor edi, edi
mov ebx, dword [0x4498ec]
jmp 0x423cf0
push 0
mov edi, dword [esi + 0x98]
push edi
push dword [ebx]
call fcn.0043cf40
add esp, 0xc
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4457f8]
mov eax, dword [esi + 0x20]
mov dword [esi + 0x24], eax
mov eax, dword [ebx]
mov dword [esi + 0x40], 0x32353437
mov dword [esi + 0x44], 0
mov dword [esi + 0x47], 0
mov dword [esi + 8], 0
mov ecx, dword [esi + 8]
cmp ecx, 0xa
ja 0x423f8a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 8]
mov edx, dword [esi + 8]
movzx edx, byte [esi + edx + 0x40]
lea edi, [ecx - 0x68990607]
and edi, edx
add ecx, edx
add ecx, 0x9766f9f9
add edi, edi
sub ecx, edi
mov dword [esi + 4], ecx
mov ecx, dword [esi + 4]
add cl, 0x31
mov edx, dword [esi + 8]
mov byte [esi + edx + 0x40], cl
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, 0xb
jb 0x423f50
mov ecx, dword [0x4498e8]
test ecx, ecx
je case.default.0x42402a
mov edx, dword [esi + 0x40]
xor edi, edi
mov ebx, dword [0x4498ec]
nop
cmp dword [ebx + edi*8], 0xad91fd63
je 0x423feb
inc edi
cmp ecx, edi
jne 0x423fa0
jmp case.default.0x42402a
mov ebx, dword [edi]
lea eax, [ebx + 1]
push eax
call fcn.00408c40
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0xcc]
mov dword [eax], ecx
push 0
push ebx
mov ebx, dword [esi + 0xa8]
mov dword [esi + 0xc], ecx
push ecx
push dword [ebx]
call fcn.0043d050
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x445800]
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x424009
mov eax, dword [esi + 0x9c]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4458d0]
push eax
push 1
push dword [0x4498f0]
push ecx
call fcn.0043a390
add esp, 0x10
mov eax, dword [esi + 0x9c]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4458d0]
xor eax, eax
mov ecx, dword [esi + 0x10]
mov edi, dword [esi + 0x18]
cmp edi, ecx
sete al
jmp dword [eax*4 + 0x4457e8]
mov eax, ecx
sub eax, edi
sar eax, 3
imul eax, eax, 0x421
push eax
call fcn.00408c40
add esp, 4
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x34]
mov byte [eax], 0
mov edi, dword [esi + 0xc]
mov dword [edi], 0xc38ec1a5
mov dword [edi + 4], 0xc765c56b
mov dword [edi + 8], 0xcb66c969
mov dword [edi + 0xc], 0xcf7ecd8d
mov dword [edi + 0x10], 0xd396d160
mov dword [edi + 0x14], 0xd762d575
mov dword [edi + 0x18], 0xdbbfd979
mov dword [edi + 0x1c], 0xdf8ddd80
mov dword [edi + 0x20], 0x23872194
mov dword [edi + 0x24], 0x278b2585
mov dword [edi + 0x28], 0x2b862974
mov dword [edi + 0x2c], 0x2f8d2d83
mov dword [edi + 0x30], 0x339e3191
mov dword [edi + 0x34], 0x3780355a
mov dword [edi + 0x38], 0x3b9c399c
lea eax, [edi + 0x3c]
mov dword [edi + 0x3c], 0x3d3c
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x3f
ja 0x424139
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 + edx]
add edi, 0xef703ee0
add ecx, 0xef703ee0
and ecx, edx
add ecx, ecx
sub edi, ecx
mov dword [esi + 0x40], edi
mov edi, dword [esi + 0xc]
mov ecx, dword [esi + 0x40]
mov edx, ecx
xor edx, 0xdf
and ecx, 0x5f
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esi + 4]
mov byte [edi + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x40
jb 0x4240f0
mov edx, dword [esi + 0x24]
mov ebx, edi
mov edi, edx
mov ecx, 0xf
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
mov edi, edx
add edi, 0x3c
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov edi, dword [esi + 0x30]
push edi
push 0
push 0
push 0x1e
push edx
push 0
call dword [0x4498e4]
mov ebx, dword [edi]
test ebx, ebx
jns 0x4241c0
mov eax, 0xffffffff
jmp 0x4241c3
xor ebx, ebx
test edi, edi
je 0x4241b6
cmp edi, ecx
jne 0x424194
jmp 0x4241b6
cmp edi, ecx
je 0x4241ab
mov eax, dword [edi]
add edi, 8
test eax, eax
je 0x424190
push eax
call fcn.00408c50
mov ecx, dword [esi + 0x10]
add esp, 4
jmp 0x424190
push dword [esi + 0x18]
call fcn.00408c50
add esp, 4
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [ebx + ebx]
push eax
call fcn.00408c40
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x9c]
mov dword [eax], edi
push dword [esi + 0x30]
push ebx
push edi
push 0x1e
push dword [esi + 0x24]
push 0
call dword [0x4498e4]
push 0x60
push 3
push 0x120089
mov ebx, dword [esi + 0xa8]
push ebx
push edi
call fcn.0043cba0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4457f0]
mov eax, dword [esi + 0x9c]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
mov edx, dword [esi + 0x20]
mov dword [esi + 0x24], edx
jmp dword [ecx*4 + 0x4458d0]
mov eax, dword [esi + 0x34]
movzx ebx, byte [eax]
mov edi, dword [esi + 0xd0]
jmp dword [ebx*4 + 0x4458d8]
mov edi, dword [esi + 0x18]
jmp dword [0x4458e0]
mov dword [esi + 0x40], 0xaf9ea883
mov dword [esi + 0x44], 0x98ae9ea3
mov dword [esi + 0x48], 0x8f83976f
mov dword [esi + 0x4c], 0x927582b4
mov dword [esi + 0x50], 0x848b8eb2
mov dword [esi + 0x54], 0x8a896e7b
mov dword [esi + 0x58], 0x87be86bf
mov word [esi + 0x5c], 0x1587
mov dword [esi + 0x5e], 0
mov dword [esi + 0x61], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0x24
ja 0x4242e7
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [esi + ecx + 0x40]
lea edx, [eax + ecx]
add edx, 0x35551f07
add eax, 0x35551f07
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 4], edx
mov eax, dword [esi + 4]
mov ecx, eax
xor ecx, 0xce
and eax, 0x4e
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi + 8]
mov byte [esi + ecx + 0x40], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0x25
jb 0x4242a0
mov ecx, edi
push ebx
call fcn.00425870
jmp dword [0x445758]
mov dword [esi + 0x40], 0xaf9ea883
mov dword [esi + 0x44], 0x98ae9ea3
mov dword [esi + 0x48], 0x8f83976f
mov dword [esi + 0x4c], 0x927582b4
mov dword [esi + 0x50], 0x848b8eb2
mov dword [esi + 0x54], 0x8a896e7b
mov dword [esi + 0x58], 0x87be86bf
mov word [esi + 0x5c], 0x1587
mov dword [esi + 0x5e], 0
mov dword [esi + 0x61], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0x24
ja 0x424397
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [esi + ecx + 0x40]
lea edx, [eax + ecx]
add edx, 0x35551f07
add eax, 0x35551f07
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 4], edx
mov eax, dword [esi + 4]
mov ecx, eax
xor ecx, 0xce
and eax, 0x4e
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi + 8]
mov byte [esi + ecx + 0x40], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0x25
jb 0x424350
mov ecx, edi
push ebx
call fcn.00425870
jmp case.0x42306e.38
push edi
call fcn.00408c50
add esp, 4
push edi
call fcn.00408c50
add esp, 4
jmp dword [0x4457e4]
jmp dword [0x445908]
mov dword [esp + 0xec], ecx
mov eax, dword [esp + ecx*4 + 0x10c]
mov esi, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + esi + 2], 0
lea esi, [esi + 2]
jne 0x424810
mov dword [esp + 0x64], eax
mov eax, esi
sar eax, 1
mov dword [esp + 0xac], eax
mov dword [esp + 8], 0x13641172
mov dword [esp + 0xc], 0x1f711d83
mov dword [esp + 0x10], 0x1b8c197d
mov dword [esp + 0x14], 0x779053a
mov dword [esp + 0x18], 0x363019a
mov dword [esp + 0x1c], 0xf630d9e
mov word [esp + 0x20], 0x90e
lea eax, [esp + 0x20]
mov word [eax + 0xe], 0
mov dword [eax + 0xa], 0
mov dword [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp + 0x38], 0
mov eax, dword [esp + 0x38]
cmp eax, 0x27
ja 0x4248ec
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
movzx ecx, byte [esp + ecx + 8]
mov edx, eax
and edx, 0x3a32b83
xor eax, 0x3a32b83
lea eax, [eax + edx*2]
mov edx, eax
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
add al, 0x6b
mov ecx, dword [esp + 0x38]
mov byte [esp + ecx + 8], al
inc dword [esp + 0x38]
mov eax, dword [esp + 0x38]
cmp eax, 0x28
jb 0x4248a0
lea edi, [esp + 0xf0]
lea eax, [esp + 8]
mov ecx, 6
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x20]
lea edi, [esp + 0x108]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0xac]
lea ecx, [edx + eax]
add edx, eax
add edx, 0xd
lea eax, [ecx + ecx]
add eax, 0x1a
test edx, edx
jns 0x424937
mov eax, 0xffffffff
push eax
call fcn.00408c40
add esp, 4
mov edi, eax
movzx ecx, word [ebx]
test cx, cx
je 0x424971
mov edx, dword [esp + 0xa8]
mov eax, edi
nop
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 0x424960
mov word [eax], 0x5c
add eax, 2
mov edx, dword [esp + 0x64]
movzx ecx, word [edx]
test cx, cx
je 0x4249a1
add edx, 2
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 0x424990
mov word [eax], 0
movzx ecx, word [esp + 0xf0]
test cx, cx
je 0x4249d1
lea edx, [esp + 0xf2]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4249c0
mov word [eax], 0
lea eax, [esp + 0x68]
push 0x60
push 3
push 0x120089
push eax
push edi
call fcn.0043cba0
add esp, 0x14
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x445910]
jmp dword [0x445918]
lea eax, [esp + 0x78]
push 0
push eax
push dword [esp + 0x70]
call fcn.0043cf40
add esp, 0xc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [esp + 0x78]
push 0
push eax
push dword [esp + 0x70]
call fcn.0043cf40
add esp, 0xc
jmp dword [0x445920]
not eax
shr eax, 0x1f
xor ebx, ebx
mov dword [esp + 0xe8], edi
jmp dword [eax*4 + 0x445928]
mov edi, dword [esp + 0x78]
lea eax, [edi + 1]
push eax
call fcn.00408c40
add esp, 4
push 0
push edi
mov edi, eax
push eax
push dword [esp + 0x74]
call fcn.0043d050
add esp, 0x10
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x445930]
mov eax, dword [esp + 0x78]
mov byte [edi + eax], 0
push edi
call fcn.00401e20
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x445938]
mov dword [esp + 0xa0], edi
mov ebx, eax
jmp dword [0x445944]
mov dword [esp + 8], 0x4ba64d7f
mov dword [esp + 0xc], 0x576449b8
mov dword [esp + 0x10], 0x53aa55a8
mov dword [esp + 0x14], 0x5f5e51ac
lea ebx, [esp + 0x18]
mov byte [ebx + 4], 0
mov dword [ebx], 0
mov dword [esp + 0x5c], 0
mov eax, dword [esp + 0x5c]
cmp eax, 0x14
ja 0x424b30
nop
nop
nop
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x5c]
movzx ecx, byte [esp + ecx + 8]
lea edx, [eax + ecx]
add edx, 0xb9ff478a
add eax, 0xb9ff478a
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 4], edx
mov eax, dword [esp + 4]
add al, 0x3a
mov ecx, dword [esp + 0x5c]
mov byte [esp + ecx + 8], al
inc dword [esp + 0x5c]
mov eax, dword [esp + 0x5c]
cmp eax, 0x15
jb 0x424af0
lea edi, [esp + 0xb0]
lea eax, [esp + 8]
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, ebx
xor ecx, ecx
lea edi, [esp + 0xc0]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea eax, [esi + 0x10]
cmp esi, 0xffffffef
jge 0x424b61
mov eax, 0xffffffff
push eax
call fcn.00408c40
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x64]
movzx ecx, word [eax]
mov eax, edi
test cx, cx
je 0x424ba1
mov eax, dword [esp + 0x64]
lea edx, [eax + 2]
mov eax, edi
nop
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 0x424b90
mov word [eax], 0
movzx ecx, word [esp + 0xb0]
test cx, cx
je 0x424bd1
lea edx, [esp + 0xb2]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424bc0
mov word [eax], 0
mov ecx, dword [ebp + 8]
push dword [esp + 0x50]
push dword [esp + 0x58]
push edi
call fcn.00409540
mov ebx, eax
jmp dword [0x445958]
push edi
call fcn.00408c50
add esp, 4
push 0xe9520bac
push dword [0x4498dc]
call fcn.0043bfb0
add esp, 8
push dword [esp + 0x54]
call eax
mov eax, dword [case.0x42402a.39]
mov edi, dword [esp + 0xa0]
jmp case.0x42500e.4
jmp dword [0x445970]
push dword [esp + 0x60]
call fcn.00408c50
add esp, 4
push dword [esp + 0x9c]
call fcn.004029b0
add esp, 4
mov eax, dword [case.0x42402a.45]
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x445988]
push edi
call fcn.00408c50
add esp, 4
mov eax, dword [esp + 0x68]
mov dword [esp + 0x4c], eax
jmp dword [0x445990]
mov eax, dword [esp + 0x68]
mov dword [esp + 0x4c], eax
jmp dword [0x445990]
inc ecx
xor eax, eax
cmp ecx, 3
setne al
jmp dword [eax*4 + 0x4458e8]
push ebx
call fcn.00402720
add esp, 4
mov dword [esp + 8], 0xe153807
mov dword [esp + 0xc], 0x300363c
mov dword [esp + 0x10], 0x363e36fc
mov dword [esp + 0x14], 0xb380e04
mov dword [esp + 0x18], 0x3625393d
mov word [esp + 0x1c], 0x639
mov byte [esp + 0x1e], 0x80
lea ecx, [esp + 0x20]
mov dword [ecx + 2], 0
mov dword [ecx - 1], 0
mov dword [esp + 0x38], 0
mov ecx, dword [esp + 0x38]
cmp ecx, 0x1d
ja 0x424d3f
nop
nop
nop
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x38]
movzx edi, byte [esp + edx + 8]
lea edx, [ecx + edi]
add edx, 0x5f83ad19
add ecx, 0x19
and ecx, edi
add ecx, ecx
mov edi, edx
not edi
and edi, ecx
not ecx
and ecx, edx
sub ecx, edi
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0xb0]
add cl, 0x51
mov edx, dword [esp + 0x38]
mov byte [esp + edx + 8], cl
inc dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
cmp ecx, 0x1e
jb 0x424cf0
lea ecx, [esp + 8]
push ecx
push eax
call fcn.00402870
add esp, 8
jmp dword [0x445948]
mov ecx, eax
mov dword [esp + 0x58], eax
nop
nop
nop
nop
nop
nop
nop
mov edi, eax
inc eax
cmp byte [edi], 0
jne 0x424d60
mov edx, edi
sub edx, dword [esp + 0x58]
lea ecx, [edx + edx*2]
shr ecx, 2
movzx eax, byte [edi - 1]
cmp eax, 0x3d
je 0x424d82
cmp eax, 0x2e
jne 0x424d83
dec ecx
mov eax, dword [esp + 0x58]
movzx eax, byte [edx + eax - 2]
cmp eax, 0x3d
mov dword [esp + 0x74], edx
mov dword [esp + 0xe0], esi
je 0x424da5
cmp eax, 0x2e
jne 0x424e82
mov dword [esp + 0x9c], ebx
dec ecx
jmp 0x424e89
push ebx
call fcn.00402720
add esp, 4
mov dword [esp + 8], 0xe153807
mov dword [esp + 0xc], 0x300363c
mov dword [esp + 0x10], 0x363e36fc
mov dword [esp + 0x14], 0xb380e04
mov dword [esp + 0x18], 0x3625393d
mov word [esp + 0x1c], 0x639
mov byte [esp + 0x1e], 0x80
lea ecx, [esp + 0x20]
mov dword [ecx + 2], 0
mov dword [ecx - 1], 0
mov dword [esp + 0x38], 0
mov ecx, dword [esp + 0x38]
cmp ecx, 0x1d
ja 0x424e6f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x38]
movzx edi, byte [esp + edx + 8]
lea edx, [ecx + edi]
add edx, 0x5f83ad19
add ecx, 0x19
and ecx, edi
add ecx, ecx
mov edi, edx
not edi
and edi, ecx
not ecx
and ecx, edx
sub ecx, edi
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0xb0]
add cl, 0x51
mov edx, dword [esp + 0x38]
mov byte [esp + edx + 8], cl
inc dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
cmp ecx, 0x1e
jb 0x424e20
lea ecx, [esp + 8]
push ecx
push eax
call fcn.00402870
add esp, 8
jmp case.0x42402a.29
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xe4], ecx
lea eax, [ecx + 1]
push eax
call fcn.00408c40
add esp, 4
mov dword [esp + 0x60], eax
cmp edi, dword [esp + 0x58]
je 0x424fa7
xor esi, esi
mov edi, 2
jmp 0x424ed2
mov ecx, dword [esp + 0xa4]
nop
nop
nop
nop
nop
nop
lea eax, [edi + 4]
add edi, 2
mov esi, ecx
cmp edi, edx
mov edi, eax
jae 0x424fa7
mov ebx, dword [esp + 0x58]
movzx eax, byte [ebx + edi - 2]
push eax
call fcn.00418d00
add esp, 4
mov byte [esp + 0x4c], al
movzx eax, byte [ebx + edi - 1]
push eax
call fcn.00418d00
add esp, 4
mov bh, al
movzx ecx, byte [esp + 0x4c]
shl cl, 2
shr al, 4
and al, 3
or al, cl
mov ecx, dword [esp + 0x60]
mov byte [ecx + esi], al
lea ecx, [esi + 1]
mov edx, dword [esp + 0x74]
cmp edi, edx
jae 0x424ec0
mov dword [esp + 0x4c], esi
mov eax, dword [esp + 0x58]
movzx eax, byte [eax + edi]
push eax
mov esi, ecx
call fcn.00418d00
mov ecx, esi
mov edx, dword [esp + 0x78]
add esp, 4
cmp al, 0x40
je 0x424ec0
mov bl, al
shl bh, 4
shr al, 2
and al, 0xf
or al, bh
mov esi, dword [esp + 0x4c]
lea ecx, [esi + 2]
mov dword [esp + 0xa4], ecx
mov ecx, dword [esp + 0x60]
mov byte [ecx + esi + 1], al
lea eax, [edi + 1]
cmp eax, edx
jae 0x424eb3
mov eax, dword [esp + 0x58]
movzx eax, byte [eax + edi + 1]
push eax
call fcn.00418d00
mov edx, dword [esp + 0x78]
add esp, 4
cmp al, 0x40
mov ecx, dword [esp + 0xa4]
je 0x424ec0
shl bl, 6
add al, bl
mov ecx, dword [esp + 0x60]
mov esi, dword [esp + 0x4c]
mov byte [ecx + esi + 2], al
add esi, 3
mov ecx, esi
jmp 0x424ec0
mov eax, dword [esp + 0xe4]
add eax, 0xfffffffb
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x60]
add eax, 5
mov dword [esp + 0x3c], eax
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
push 0x79955919
push dword [0x4498f4]
call fcn.0043bfb0
add esp, 8
lea ecx, [esp + 0x50]
lea edx, [esp + 0x38]
push ecx
push 0
push 0
push 0
push 0
push 0
push edx
call eax
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esp + 0xa0]
mov esi, dword [esp + 0xe0]
jmp dword [ecx*4 + 0x445950]
xor ebx, ebx
mov eax, dword [case.0x42402a.39]
nop
nop
nop
nop
jmp eax
mov dword [esp + 8], 0x32353437
lea eax, [esp + 0x20]
mov dword [eax - 0x11], 0
mov dword [eax - 0x14], 0
mov dword [esp + 0x38], 0
mov eax, dword [esp + 0x38]
cmp eax, 0xa
ja 0x425095
nop
nop
nop
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
movzx ecx, byte [esp + ecx + 8]
lea edx, [eax - 0x68990607]
and edx, ecx
add eax, ecx
add eax, 0x9766f9f9
add edx, edx
sub eax, edx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
add al, 0x31
mov ecx, dword [esp + 0x38]
mov byte [esp + ecx + 8], al
inc dword [esp + 0x38]
mov eax, dword [esp + 0x38]
cmp eax, 0xb
jb 0x425050
mov eax, dword [0x4498e8]
test eax, eax
je case.0x42402a.48
mov ecx, dword [esp + 8]
xor edx, edx
mov edi, dword [0x4498ec]
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0xad91fd63
je 0x4250c0
inc edx
cmp eax, edx
jne 0x4250b0
jmp case.0x42402a.48
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je case.0x42402a.48
push dword [esp + 0x4c]
push 1
push dword [0x4498f0]
push eax
call fcn.0043a390
add esp, 0x10
mov dword [esp + 8], 0x32353437
lea eax, [esp + 0x20]
mov dword [eax - 0x11], 0
mov dword [eax - 0x14], 0
mov dword [esp + 0x38], 0
mov eax, dword [esp + 0x38]
cmp eax, 0xa
ja 0x425155
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
movzx ecx, byte [esp + ecx + 8]
lea edx, [eax - 0x68990607]
and edx, ecx
add eax, ecx
add eax, 0x9766f9f9
add edx, edx
sub eax, edx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
add al, 0x31
mov ecx, dword [esp + 0x38]
mov byte [esp + ecx + 8], al
inc dword [esp + 0x38]
mov eax, dword [esp + 0x38]
cmp eax, 0xb
jb 0x425110
mov eax, dword [0x4498e8]
test eax, eax
je 0x425188
mov ecx, dword [esp + 8]
xor edx, edx
mov edi, dword [0x4498ec]
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0xad91fd63
je 0x425180
inc edx
cmp eax, edx
jne 0x425170
jmp 0x425188
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
jne 0x4251be
mov edi, dword [esp + 0xe8]
jmp dword [0x445998]
jmp dword [0x4459a8]
mov eax, dword [case.0x42402a.58]
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x4459c0]
jmp dword [0x4459c8]
push dword [esp + 0x4c]
push 1
push dword [0x4498f0]
push eax
call fcn.0043a390
add esp, 0x10
mov edi, dword [esp + 0xe8]
jmp dword [0x445998]
movzx eax, bl
jmp dword [eax*4 + 0x4459d8]
mov dword [esp + 8], 0x6b1e6d08
mov dword [esp + 0xc], 0x67f969fb
mov dword [esp + 0x10], 0x63f66505
mov dword [esp + 0x14], 0x9ff16140
mov dword [esp + 0x18], 0x9b099d10
mov dword [esp + 0x1c], 0x97f79916
mov dword [esp + 0x20], 0x930f950f
mov dword [esp + 0x24], 0x8f1a91f4
mov dword [esp + 0x28], 0x8b008d11
mov dword [esp + 0x2c], 0x87128915
mov dword [esp + 0x30], 0x831c8518
mov dword [esp + 0x34], 0x8180
mov dword [esp + 0x50], 0
mov eax, dword [esp + 0x50]
cmp eax, 0x2f
ja 0x42529f
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x50]
movzx ecx, byte [esp + ecx + 8]
lea edx, [eax - 0x2c42208e]
and edx, ecx
add eax, ecx
add eax, 0xd3bddf72
add edx, edx
sub eax, edx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
add al, 0xe2
mov ecx, dword [esp + 0x50]
mov byte [esp + ecx + 8], al
inc dword [esp + 0x50]
mov eax, dword [esp + 0x50]
cmp eax, 0x30
jb 0x425260
lea edi, [esp + 0xb0]
lea eax, [esp + 8]
mov ecx, 0xb
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x34]
lea edi, [esp + 0xdc]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0xac]
add eax, ecx
inc eax
mov ecx, eax
and ecx, 0x17
xor eax, 0x17
lea edx, [eax + ecx*2]
lea ecx, [eax + ecx*2]
dec ecx
lea eax, [edx + edx]
add eax, 0xfffffffe
test ecx, ecx
jns 0x4252f4
mov eax, 0xffffffff
push eax
call fcn.00408c40
add esp, 4
mov ebx, eax
mov eax, dword [esp + 0x70]
movzx ecx, word [eax]
mov eax, ebx
test cx, cx
je 0x425331
mov edx, dword [esp + 0xa8]
mov eax, ebx
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 0x425320
mov word [eax], 0x5c
add eax, 2
mov edx, dword [esp + 0x64]
movzx ecx, word [edx]
test cx, cx
je 0x425361
add edx, 2
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 0x425350
mov word [eax], 0
movzx ecx, word [esp + 0xb0]
test cx, cx
je 0x425391
lea edx, [esp + 0xb2]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x425380
mov word [eax], 0
mov dword [esp + 8], 0x1b8e194f
mov dword [esp + 0xc], 0x17981589
mov dword [esp + 0x10], 0x1386118d
mov dword [esp + 0x14], 0xf6c0d90
mov word [esp + 0x18], 0x908
lea eax, [esp + 0x20]
mov dword [eax + 2], 0
mov dword [eax - 2], 0
mov dword [eax - 6], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x1d
ja 0x42542e
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 8]
lea edx, [eax + ecx]
add eax, 4
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0xdc716204
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x50]
add al, 0xe4
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 8], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x1e
jb 0x4253f0
lea edi, [esp + 0x38]
lea eax, [esp + 8]
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x18]
mov ecx, 1
lea edi, [esp + 0x48]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea eax, [esi + 0x12]
cmp esi, 0xffffffed
jge 0x42545e
mov eax, 0xffffffff
push eax
call fcn.00408c40
add esp, 4
mov edi, eax
mov edx, dword [esp + 0x64]
movzx ecx, word [edx]
test cx, cx
je 0x425491
add edx, 2
mov eax, edi
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x425480
mov word [eax], 0
movzx ecx, word [esp + 0x38]
test cx, cx
je 0x4254c1
lea edx, [esp + 0x3a]
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 0x4254b0
mov word [eax], 0
mov dword [esp + 8], 0x838281aa
lea eax, [esp + 0x20]
mov dword [eax - 0xc], 0
mov dword [eax - 0x10], 0
mov dword [eax - 0x14], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xf
ja 0x425545
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 8]
lea edx, [eax + 0xc0]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add edx, esi
neg edx
add eax, edx
add eax, 0x6aa738bf
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x50]
add al, 0xc0
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 8], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x10
jb 0x425500
push 0
push 0
push 0
push 0xc00000
lea eax, [esp + 0x18]
push eax
push ebx
push edi
push dword [ebp + 8]
call fcn.0041ba20
add esp, 0x20
mov ecx, dword [esp + 0x6c]
and cl, 1
or cl, al
mov dword [esp + 0x6c], ecx
jmp dword [0x4459e0]
push edi
call fcn.00408c50
add esp, 4
nop
nop
jmp dword [0x4459f0]
jmp dword [0x4459f8]
push ebx
call fcn.00408c50
add esp, 4
mov eax, dword [case.0x42402a.66]
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [case.0x42402a.83]
mov ebx, dword [esp + 0x70]
mov ecx, dword [esp + 0xec]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
push edi
call fcn.00408c50
add esp, 4
push edi
call fcn.00408c50
add esp, 4
jmp dword [0x4459d4]
jmp dword [0x4458fc]
jmp dword [0x445a20]
jmp dword [0x445a28]
mov eax, dword [esp + 0x6c]
and al, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push ebx
call fcn.00408c50
add esp, 4
push ebx
call fcn.00408c50
add esp, 4
jmp dword [0x445a30]