Function at 0x4013a0
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xc8
mov esi, ecx
mov edi, dword [ebp + 8]
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x408e70
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov dword [ebp - 0x5c], 0
mov edx, dword [esi + 0x74]
xor eax, eax
cmp edi, 0x67f
mov dword [ebp - 0x3c], 0
cmovae edi, eax
test edi, edi
sete cl
mov eax, dword [esi + 0x70]
mov dword [ebp - 0x24], edx
sub eax, edx
cmp eax, 0x10
setb dl
mov ebx, dword [esi + 0x44]
or ebx, dword [esi + 0x24]
or dl, cl
movzx ecx, dl
mov dword [ebp - 0x50], ebx
or ecx, ebx
mov edx, dword [ebp + 0x14]
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x54], edi
mov edi, dword [edi*8 + sym.Morpheme32.exe_struct_asmjit::_abi_1_10::x86::InstDB::InstInfo_const__const_const_asmjit::_abi_1_10::x86::InstDB::_instInfoTable]
mov dword [ebp - 0x58], edi
mov edi, dword [ebx]
mov dword [ebp - 0x20], edi
mov edi, dword [ebp + 0x10]
mov edi, dword [edi]
mov dword [ebp - 0x34], edi
mov ebx, dword [edx]
mov dword [ebp - 0x4c], ecx
test ecx, 0x3e001
je 0x4014ad
mov ecx, dword [esi + 0x2c]
test ecx, ecx
je 0x40155f
mov edi, edx
cmp dword [ebp - 0x54], 0
mov dword [ebp - 0x48], esi
je 0x40156f
cmp eax, 0xf
mov dword [ebp - 0x28], ebx
ja 0x401584
mov eax, dword [esi + 0x68]
add eax, 0x44
push 0x10
push eax
call sym.Morpheme32.exe_public:_unsigned_int___thiscall_asmjit::_abi_1_10::CodeHolder::growBuffer_struct_asmjit::_abi_1_10::CodeBuffer___unsigned_int_
test eax, eax
je 0x40157e
mov dword [ebp - 0x10], 0
mov ecx, esi
push 0
push eax
call sym.Morpheme32.exe_public:_unsigned_int___thiscall_asmjit::_abi_1_10::BaseEmitter::reportError_unsigned_int__char_const__
mov ecx, eax
test eax, eax
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x54]
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x14]
je 0x40158e
mov edx, ecx
mov eax, ebx
jmp 0x40805d
mov ecx, dword [ebp - 0x54]
movzx eax, byte [ecx*8 + 0x791c2c]
mov edx, 0x1a
cmp eax, 0xa0
mov edi, esi
mov dword [ebp - 0x48], esi
ja case.default.0x401522
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x58]
shr eax, 0xe
and eax, 0x3ff
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x20]
and eax, 7
mov edx, dword [ebp - 0x34]
and edx, 7
lea esi, [eax + edx*8]
and ebx, 7
shl ebx, 6
movzx eax, byte [ecx*8 + 0x791c2e]
mov edx, dword [eax*4 + 0x795020]
mov edi, edx
shr edi, 0x12
mov eax, edi
and eax, 7
mov dword [ebp - 0x34], eax
movzx eax, byte [ecx*8 + 0x791c2d]
or eax, edx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x2c]
lea ecx, [esi + ebx]
jmp dword [eax*4 + 0x79149c]
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x40], 0
mov ebx, dword [ebp + 0xc]
cmp ecx, 2
mov ecx, 0
mov esi, dword [ebp + 0x14]
mov edi, dword [ebp - 0x24]
je 0x40637e
mov edi, esi
mov esi, dword [ebp + 0xc]
mov edx, 0x1a
mov eax, edi
jmp 0x40805d
mov ecx, esi
push 0
push 5
call sym.Morpheme32.exe_public:_unsigned_int___thiscall_asmjit::_abi_1_10::BaseEmitter::reportError_unsigned_int__char_const__
jmp 0x40807e
mov edx, 0x1a
mov eax, edi
mov esi, dword [ebp + 0xc]
jmp 0x40805d
mov eax, dword [esi + 0x74]
mov dword [ebp - 0x24], eax
mov edx, esi
mov eax, dword [ebp - 0x54]
mov ebx, edi
mov esi, dword [ebp + 0xc]
test byte [edx + 0x10], 1
mov ecx, eax
mov edi, edx
je 0x401625
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0xd4], xmm0
mov eax, dword [ebp + 0x10]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0xc4], xmm0
movups xmm0, xmmword [ebx]
movups xmmword [ebp - 0xb4], xmm0
mov eax, dword [ebp + 0x18]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0xa4], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [ebp - 0x94], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [ebp - 0x84], xmm0
mov edx, dword [edi + 0x64]
mov dword [ebp - 0x74], ecx
mov eax, edi
mov edi, ecx
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x70], ecx
movsd xmm0, qword [eax + 0x48]
movsd qword [ebp - 0x6c], xmm0
movzx ecx, byte [eax + 0x38]
push 0
push 6
lea eax, [ebp - 0xd4]
push eax
lea eax, [ebp - 0x74]
push eax
push ecx
call edx
mov ecx, edi
add esp, 0x14
mov edi, dword [ebp - 0x48]
test eax, eax
je 0x401625
mov edx, eax
mov eax, ebx
jmp 0x40805d
mov esi, edi
mov eax, dword [ecx*8 + sym.Morpheme32.exe_struct_asmjit::_abi_1_10::x86::InstDB::InstInfo_const__const_const_asmjit::_abi_1_10::x86::InstDB::_instInfoTable]
shr eax, 0xb
and eax, 0x1ff8
mov eax, dword [eax + sym.Morpheme32.exe_struct_asmjit::_abi_1_10::x86::InstDB::CommonInfo_const__const_const_asmjit::_abi_1_10::x86::InstDB::_commonInfoTable]
mov edx, dword [ebp - 0x50]
test edx, 0x2000
je 0x4016d0
mov ebx, ecx
mov ecx, edx
and ecx, 0x30000
mov edx, eax
and edx, 0x10000
or edx, ecx
je 0x4016ae
test ecx, ecx
je 0x4016be
test dword [ebp - 0x50], 0x10000
je 0x40167d
mov ecx, eax
mov edx, 0x22
and ecx, 0x20000
je case.default.0x401522
test dword [ebp - 0x50], 0x20000
je 0x401695
mov ecx, eax
mov edx, 0x23
and ecx, 0x40000
je case.default.0x401522
mov edx, dword [ebp - 0x50]
test edx, 0x10000
sete cl
or cl, 0xf2
mov edi, dword [ebp - 0x24]
mov byte [edi], cl
mov ecx, edi
inc ecx
jmp 0x4016c4
mov edx, 0x21
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp + 0xc]
jmp 0x40805d
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x50]
mov byte [ecx], 0xf0
inc ecx
mov dword [ebp - 0x24], ecx
mov ecx, ebx
mov ebx, dword [ebp + 0x14]
test edx, 0xc000
je 0x401715
mov edx, 0x24
test eax, 0x4000
jne 0x4016ee
mov esi, dword [ebp + 0xc]
mov eax, ebx
jmp 0x40805d
mov eax, dword [esi + 0x48]
test eax, eax
je 0x401702
test eax, 0xf00
jne 0x4016e4
cmp dword [esi + 0x4c], 1
jne 0x4016e4
cmp word [ebp - 0x50], 0
setns al
or al, 0xf2
mov edx, dword [ebp - 0x24]
mov byte [edx], al
inc edx
mov dword [ebp - 0x24], edx
mov ebx, dword [ebp - 0x28]
jmp 0x4014b0
mov ecx, eax
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp + 0x18]
mov edi, dword [ebp - 0x24]
jmp 0x407ee1
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x30], 0
jmp 0x4053b8
shr edx, 0xd
and edx, 7
mov dword [ebp - 0x28], 0
jmp 0x4041d6
mov esi, dword [ebp + 0xc]
mov eax, dword [esi]
and eax, 7
cmp eax, 3
jne 0x40699a
shr edx, 0xd
and edx, 7
movzx eax, byte [esi + 8]
mov dword [ebp - 0x30], eax
mov al, 1
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], edx
jmp 0x4056b3
mov esi, dword [ebp + 0xc]
mov eax, dword [esi]
mov ecx, eax
and ecx, 7
cmp ecx, 1
jne 0x40699a
shr eax, 3
and eax, 0x1f
movzx eax, byte [eax + 0x790bac]
mov ecx, dword [ebp - 0x48]
and eax, dword [ecx + 0x28]
mov edi, dword [ebp - 0x24]
mov byte [edi], 0x67
cmp eax, 1
sbb edi, 0xffffffff
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x3c], 0
jmp 0x4053be
test ecx, ecx
je 0x4041c1
cmp ecx, 1
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
cmp dword [esi + 4], 0
mov edx, 0x1a
jne 0x40805d
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x3c], 0
jmp 0x4053bb
test ecx, ecx
je 0x4041c1
cmp ecx, 9
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
cmp dword [esi + 4], 2
jne case.0x401cd1.11
mov dword [ebp - 0x28], 0
mov edi, eax
mov eax, dword [ebp + 0x10]
cmp dword [eax + 4], 0
mov eax, edi
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x3c], 0
mov edi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
mov edx, 0x1a
je 0x4053c1
jmp 0x40805d
test ecx, ecx
je 0x4041c1
cmp ecx, 2
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
mov ebx, eax
mov edi, esi
mov ecx, dword [esi]
mov eax, ecx
and eax, 7
cmp eax, 2
jne 0x405f2f
cmp dword [edi + 4], 0
mov ebx, dword [ebp - 0x20]
jne 0x4018a2
xor edx, edx
cmp dword [edi + 0xc], 0
mov eax, edi
je 0x4060f4
mov eax, dword [ebp + 0x14]
mov esi, edi
mov edx, 0x1a
jmp 0x40805d
cmp ecx, 0x19
je 0x404aae
cmp ecx, 3
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
movzx eax, byte [esi + 8]
jmp 0x404ac5
mov dword [ebp - 0x30], ecx
mov esi, dword [ebp + 0xc]
mov eax, dword [esi]
jmp 0x4018ee
mov dword [ebp - 0x30], ecx
mov esi, dword [ebp + 0xc]
mov eax, dword [esi]
mov edx, eax
and edx, 7
cmp edx, 1
jne 0x401908
shr eax, 0x16
and eax, 0x3c
mov edx, dword [ebp - 0x20]
or edx, dword [eax + 0x7913dc]
mov dword [ebp - 0x20], edx
jmp 0x401908
mov dword [ebp - 0x30], ecx
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x28], 0
mov edi, dword [ebp - 0x30]
cmp edi, 1
mov edx, 0x1a
je 0x4041d3
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], esi
cmp edi, 2
mov ebx, dword [ebp - 0x24]
je 0x4077a3
jmp 0x40805d
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x40], 0
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x3c], esi
cmp ecx, 2
mov eax, dword [ebp + 0x14]
mov ebx, dword [ebp - 0x24]
mov edx, 0x1a
je 0x4077a3
jmp 0x40805d
cmp ecx, 2
je 0x404b50
cmp ecx, 0x4a
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
mov ebx, eax
mov edx, esi
mov eax, 0xff000fff
and eax, dword [edi]
cmp eax, 0x4000031
jne 0x40425b
cmp dword [edi + 4], 2
jne 0x40425b
mov eax, 0xff000fff
mov edi, ebx
and eax, dword [ebx]
cmp eax, 0x4000031
jne 0x40552c
mov dword [ebp - 0x28], 0
cmp dword [edi + 4], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], edx
jmp 0x401ee0
test ecx, ecx
mov edi, ecx
je 0x4053ab
cmp edi, 2
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x14]
je 0x4054aa
cmp edi, 1
jne 0x4054da
mov eax, dword [esi]
shr eax, 0x16
and eax, 0x3c
mov edx, 0x11f
or edx, dword [eax + 0x7913dc]
mov dword [ebp - 0x20], edx
mov edx, dword [esi + 4]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x34], 0
jmp 0x402a50
cmp ecx, 1
jne case.default.0x401cd1
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
jmp 0x401dae
mov dword [ebp - 0x58], edi
cmp ecx, 2
jne case.default.0x401cd1
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
mov edi, dword [eax + 4]
mov esi, ecx
shr esi, 3
and esi, 0x3ff
xor ebx, ebx
test cl, 0xf8
mov dword [ebp - 0x34], edi
cmove ebx, edi
or ebx, dword [eax + 0xc]
movzx eax, byte [esi + 0x790bac]
mov esi, eax
and esi, 2
or esi, ebx
jne case.default.0x401cd1
mov dword [ebp - 0x3c], eax
mov edi, edx
mov esi, edx
shr esi, 0x15
and esi, 7
movzx ebx, byte [esi + 0x7911d0]
mov ecx, dword [ebp - 0x24]
mov byte [ecx], bl
mov eax, dword [ebp - 0x50]
or eax, edx
shr eax, 0x18
mov edx, dword [ebp - 0x34]
mov ebx, edx
shr ebx, 3
or ebx, eax
cmp ebx, 0x80
ja 0x4073be
cmp esi, 1
sbb ecx, 0xffffffff
and ebx, 0x7f
mov eax, ebx
or al, 0x40
cmp ebx, 1
mov byte [ecx], al
sbb ecx, 0xffffffff
and edx, 7
mov dword [ebp - 0x34], edx
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
shr eax, 0x12
and eax, 7
setne bl
cmp eax, 7
movzx eax, byte [eax + 0x7911c8]
setne ah
and ah, bl
mov byte [ecx], al
mov ebx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x3c]
and edx, dword [ebx + 0x28]
movzx eax, ah
mov byte [ecx + eax], 0x67
lea esi, [ecx + eax]
cmp edx, 1
sbb esi, 0xffffffff
shr edi, 6
and edi, 0x7c
movzx eax, byte [edi + 0x7911d8]
movzx ecx, byte [edi + 0x7911d9]
mov byte [esi], cl
cmp al, 1
sbb esi, 0xffffffff
cmp al, 2
movzx eax, byte [edi + 0x7911da]
mov byte [esi], al
sbb esi, 0xffffffff
mov eax, dword [ebp - 0x20]
mov byte [esi], al
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x34]
lea eax, [ecx + eax*8]
or al, 0xc0
mov byte [esi + 1], al
mov eax, ebx
add esi, 2
mov dword [ebp - 0x2c], 0
mov edi, esi
xor ecx, ecx
jmp 0x404a9a
cmp ecx, 1
je 0x404ad2
cmp ecx, 0x49
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
mov ebx, eax
mov edx, esi
mov eax, 0xff000fff
and eax, dword [edi]
cmp eax, 0x4000031
jne 0x40425b
cmp dword [edi + 4], 2
jne 0x40425b
mov eax, 0xff000fff
mov edi, ebx
and eax, dword [ebx]
cmp eax, 0x4000031
jne 0x40552c
cmp dword [edi + 4], 0
mov eax, dword [ebp - 0x24]
jne 0x40425b
mov ecx, dword [edx + 4]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x30], 0
mov ebx, eax
jmp 0x4056b6
mov esi, dword [ebp + 0xc]
mov eax, dword [esi]
shr eax, 0x16
and eax, 0x3c
mov edx, dword [ebp - 0x20]
or edx, dword [eax + 0x7913dc]
mov dword [ebp - 0x20], edx
jmp 0x401c34
cmp ecx, 0x11
je 0x404af5
cmp ecx, 9
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
mov eax, dword [esi]
mov esi, dword [esi + 4]
mov dword [ebp - 0x34], esi
mov edi, dword [edi + 4]
shr eax, 0x18
cmp eax, 2
mov dword [ebp - 0x2c], edi
jne 0x405b67
mov ebx, dword [ebp - 0x24]
mov byte [ebx], 0x66
inc ebx
jmp 0x401ca4
mov esi, dword [ebp + 0xc]
cmp ecx, 0x11
mov eax, dword [ebp + 0x14]
je 0x4042db
mov edi, ecx
cmp ecx, 9
mov ebx, dword [ebp - 0x24]
jne case.0x401cd1.11
mov edx, dword [esi + 4]
mov dword [ebp - 0x34], edx
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
mov dword [ebp - 0x2c], eax
jmp 0x401ca4
mov esi, dword [ebp + 0xc]
mov eax, dword [esi]
shr eax, 0x16
and eax, 0x3c
mov edx, dword [ebp - 0x20]
or edx, dword [eax + 0x7913dc]
mov dword [ebp - 0x20], edx
jmp 0x401c7b
mov esi, dword [ebp + 0xc]
cmp ecx, 0xa
mov eax, dword [ebp + 0x14]
je 0x4042f4
mov edi, ecx
cmp ecx, 9
mov ebx, dword [ebp - 0x24]
jne case.0x401cd1.11
mov edx, dword [esi + 4]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x30], 0
jmp 0x4056b6
add ecx, 0xfffffff7
cmp ecx, 0x11
ja case.default.0x401cd1
mov edx, ecx
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
jmp dword [edx*4 + 0x791768]
mov ebx, eax
mov eax, dword [esi]
mov edx, edi
mov edi, eax
shr edi, 0x18
mov ecx, dword [edx]
mov dword [ebp - 0x58], ecx
shr ecx, 0x18
cmp edi, ecx
jne 0x406918
mov ecx, eax
shr ecx, 0x16
and ecx, 0x3c
mov ebx, dword [esi + 4]
mov esi, dword [edx + 4]
cmp edi, 1
jne 0x4076f7
and eax, 0xff000fff
cmp eax, 0x1000021
jne 0x40767a
mov eax, dword [ebp - 0x4c]
or eax, 0x80000000
add ebx, 4
mov edi, ebx
jmp 0x40768a
mov esi, dword [ebp + 0xc]
cmp ecx, 1
jne 0x40699a
mov eax, dword [esi]
shr eax, 0x18
cmp eax, 1
mov ebx, dword [ebp + 0x14]
je 0x404d6d
and eax, 0xf
mov ebx, dword [ebp - 0x20]
or ebx, dword [eax*4 + 0x7913dc]
mov eax, dword [esi + 4]
mov dword [ebp - 0x2c], eax
xor ecx, ecx
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x58], 0
mov edi, dword [ebp - 0x24]
jmp 0x407393
cmp ecx, 0xa
je 0x404b33
mov ebx, ecx
cmp ecx, 9
mov edx, dword [ebp - 0x54]
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
jne 0x404b63
mov eax, dword [edi]
shr eax, 0x16
and eax, 0x3c
mov ebx, dword [ebp - 0x20]
or ebx, dword [eax + 0x7913dc]
mov dword [ebp - 0x20], ebx
mov eax, dword [edi + 4]
mov dword [ebp - 0x34], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x2c], eax
jmp 0x402a50
cmp ecx, 2
je 0x405076
cmp ecx, 1
mov esi, dword [ebp + 0xc]
jne 0x404bca
mov ecx, dword [esi + 4]
mov dword [ebp - 0x2c], ecx
jmp 0x402a50
mov edi, ecx
test ebx, ebx
mov eax, dword [ebp + 0x14]
mov ebx, dword [ebp - 0x24]
mov edx, 0x1a
je 0x401e0d
mov dword [ebp - 0x24], ebx
mov ecx, eax
mov eax, 0xf07
and eax, dword [ecx]
cmp eax, 1
jne 0x405fa1
cmp dword [ecx + 4], 0
mov edi, esi
mov eax, ecx
mov ebx, dword [ebp - 0x24]
jne 0x402de6
cmp edi, 0xa
je 0x405ad0
cmp edi, 9
mov esi, dword [ebp + 0xc]
jne 0x40805d
mov dword [ebp - 0x24], ebx
mov ecx, dword [esi]
mov edx, ecx
shr edx, 0x18
mov eax, dword [ebp + 0x10]
mov ebx, eax
mov edi, dword [eax]
mov eax, esi
mov esi, edi
shr esi, 0x18
cmp edx, esi
jne 0x40680a
mov dword [ebp - 0x58], edi
mov esi, edx
and esi, 0xf
mov edi, dword [ebp - 0x20]
or edi, dword [esi*4 + 0x79141c]
mov esi, edi
mov edi, dword [eax + 4]
mov eax, dword [ebx + 4]
mov dword [ebp - 0x28], 0
cmp edx, 1
mov dword [ebp - 0x20], esi
jne 0x40708c
and ecx, 0xff000fff
cmp ecx, 0x1000021
jne 0x40751e
mov ecx, dword [ebp - 0x4c]
or ecx, 0x80000000
add edi, 4
jmp 0x40752e
cmp ecx, 2
je 0x404b50
cmp ecx, 0x4a
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x18]
jne case.0x401cd1.11
mov edi, eax
mov edx, esi
mov eax, dword [ebx]
and eax, 7
cmp eax, 1
jne 0x40552c
mov eax, dword [ebx + 0x10]
and eax, 7
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], edx
cmp eax, 1
mov ebx, dword [ebp - 0x24]
mov esi, edx
mov edx, 0x1a
mov eax, edi
je 0x4077a3
jmp 0x40805d
mov esi, dword [ebp + 0xc]
movzx eax, byte [esi + 3]
shl eax, 0x18
xor edx, edx
cmp eax, 0x8000000
sete dl
shl edx, 0x1b
or dword [ebp - 0x20], edx
mov eax, dword [esi + 4]
mov dword [ebp - 0x34], eax
cmp ecx, 0x11
je 0x404bdb
cmp ecx, 9
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
mov eax, dword [edi]
mov ebx, dword [edi + 4]
mov ecx, eax
shr ecx, 0x18
cmp ecx, 2
je 0x406811
cmp ecx, 1
mov edi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
jne 0x40681d
and eax, 0xff000fff
cmp eax, 0x1000021
mov dword [ebp - 0x20], ecx
je 0x40217a
xor eax, eax
mov dword [ebp - 0x2c], ebx
cmp ebx, 4
setae al
shl eax, 0x1e
or dword [ebp - 0x4c], eax
jmp 0x40761c
mov esi, dword [ebp + 0xc]
cmp ecx, 0x1b
jne 0x40699a
movzx eax, word [esi + 8]
mov edi, dword [ebp + 0x10]
mov ecx, dword [edi + 8]
movzx ecx, cl
shl ecx, 0x10
or ecx, eax
mov dword [ebp - 0x30], ecx
mov al, 3
jmp 0x404aca
cmp ecx, 0x18
jle 0x4045fc
cmp ecx, 0x19
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
je 0x405d05
cmp ecx, 0xd1
je 0x405d2f
cmp ecx, 0xc9
jne case.0x401522.13
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebx]
mov edi, dword [ebp + 0x14]
mov ecx, dword [edi + 8]
movsx edx, cl
mov esi, edx
sar edx, 0x1f
xor edx, dword [edi + 0xc]
mov dword [ebp - 0x30], ecx
xor esi, ecx
or edx, esi
mov esi, eax
shr esi, 0x18
shr eax, 0x16
and eax, 0x3c
mov eax, dword [eax + 0x7913dc]
or eax, 0x6b
mov ecx, dword [ebp - 0x50]
and ecx, 0x20
cmp esi, 2
mov esi, ebx
setne bl
add bl, bl
add bl, 2
or ecx, edx
mov ecx, dword [esi + 4]
mov dword [ebp - 0x34], ecx
lea ecx, [eax - 2]
cmove ecx, eax
mov dword [ebp - 0x20], ecx
movzx edx, bl
mov eax, 1
cmovne eax, edx
mov dword [ebp - 0x28], eax
mov edi, dword [ebp + 0x10]
mov ecx, dword [edi + 4]
mov dword [ebp - 0x2c], ecx
jmp 0x4056b3
cmp ecx, 9
je 0x404c0a
cmp ecx, 0x19
mov edi, dword [ebp - 0x54]
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
cmp dword [esi + 4], 0
mov edx, 0x1a
jne 0x40805d
mov eax, edi
movzx ebx, byte [edi*8 + 0x791c2f]
mov edx, dword [esi]
shr edx, 0x18
xor eax, eax
cmp edx, 1
setne al
add eax, dword [ebx*4 + 0x7953ec]
xor ebx, ebx
cmp edx, 2
mov ecx, dword [ebp + 0x10]
movzx ecx, byte [ecx + 8]
mov dword [ebp - 0x30], ecx
sete bl
shl ebx, 0x15
or ebx, eax
mov ecx, ebx
jmp 0x402572
mov esi, dword [ebp + 0xc]
cmp ecx, 0xa
jne 0x40699a
mov ecx, dword [esi]
mov eax, ecx
and eax, 7
cmp eax, 2
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
cmp dword [esi + 4], 7
jne case.0x401cd1.11
mov edx, dword [esi + 0xc]
xor eax, eax
test cl, 0xf8
mov esi, 7
cmovne esi, eax
or esi, edx
jne case.default.0x401cd1
mov eax, dword [ebp + 0x10]
cmp dword [eax + 4], 2
jne case.default.0x401cd1
cmp ecx, 0x1000000
mov esi, dword [ebp + 0xc]
jb 0x4068ea
mov eax, ecx
shr eax, 0x18
xor ebx, ebx
cmp eax, 1
mov edi, eax
setne bl
mov eax, dword [ebp - 0x20]
add eax, ebx
xor ebx, ebx
cmp edi, 2
sete bl
shl ebx, 0x15
or eax, ebx
mov ebx, eax
mov eax, esi
jmp 0x4060f4
cmp ecx, 2
je 0x404c33
cmp ecx, 1
mov edi, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
mov eax, esi
mov esi, ecx
mov ecx, dword [eax]
mov ebx, dword [eax + 4]
mov eax, ecx
shr eax, 0x18
cmp eax, 1
jne 0x405d5f
and ecx, 0xff000fff
cmp ecx, 0x1000021
mov edi, dword [ebp - 0x24]
jne 0x406924
or dword [ebp - 0x4c], 0x80000000
add ebx, 4
mov dword [ebp - 0x2c], ebx
jmp 0x406082
mov esi, dword [ebp + 0xc]
cmp ecx, 3
jne 0x40699a
mov eax, dword [esi + 8]
mov dword [ebp - 0x30], eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x3c], eax
jmp 0x404ac8
mov dword [ebp - 0x34], 0
mov eax, dword [ebp - 0x50]
test al, 0xc0
je case.0x401522.41
mov ecx, dword [ebp - 0x48]
test byte [ecx + 0x20], 0x10
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp - 0x20]
je 0x404c60
movzx eax, al
shr eax, 6
shl al, 4
or al, 0x2e
mov edi, dword [ebp - 0x24]
mov byte [edi], al
inc edi
mov edx, esi
jmp 0x404c65
mov esi, dword [ebp + 0xc]
jmp 0x402252
mov esi, dword [ebp + 0xc]
mov eax, dword [esi]
mov ecx, eax
and ecx, 7
mov dword [ebp - 0x34], 0
cmp ecx, 1
jne 0x402252
mov ecx, eax
and ecx, 0xf07
cmp ecx, 1
mov esi, dword [ebp - 0x48]
mov ebx, dword [ebp - 0x20]
jne 0x405533
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + 4], 1
jne 0x405533
xor ecx, ecx
test byte [esi + 0x38], 1
sete cl
and eax, 0xff000000
shl ecx, 0x19
add ecx, 0x2000000
xor edx, edx
cmp eax, ecx
sete dl
mov edi, dword [ebp - 0x24]
mov byte [edi], 0x67
add edi, edx
mov edx, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
jmp 0x404c65
mov edx, esi
mov edi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x20]
jmp 0x404c65
cmp ecx, 2
je 0x405076
cmp ecx, 1
mov esi, dword [ebp + 0xc]
jne 0x404c54
mov ecx, dword [esi + 4]
jmp 0x402d51
cmp ecx, 0x1b
je 0x404e11
cmp ecx, 2
mov ecx, dword [ebp - 0x48]
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
mov eax, esi
mov esi, ecx
mov ecx, dword [eax]
cmp ecx, 0xffffff
ja 0x405d83
xor eax, eax
test byte [esi + 0x38], 1
sete al
lea eax, [eax*4 + 4]
mov ebx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x20]
jmp 0x405d9b
mov esi, dword [ebp + 0xc]
cmp ecx, 0x11
jne 0x40699a
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [ebp - 0x34], ecx
shr eax, 0x16
and eax, 0x3c
mov ecx, dword [ebp - 0x20]
or ecx, dword [eax + 0x7913dc]
mov dword [ebp - 0x20], ecx
jmp 0x4050b6
add ecx, 0xfffffff7
cmp ecx, 0x11
ja case.default.0x401cd1
mov edi, ecx
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
jmp dword [ecx*4 + 0x791720]
mov ecx, dword [esi]
mov eax, dword [esi + 4]
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp + 0x10]
mov edi, ecx
and edi, 0xf07
mov eax, dword [edx]
mov esi, eax
and esi, 0xf07
mov edx, dword [edx + 4]
cmp edi, 1
jne 0x40693e
cmp esi, 1
jne 0x407221
mov esi, ecx
shr esi, 0x18
mov edi, eax
shr edi, 0x18
cmp esi, edi
jne case.default.0x401cd1
cmp esi, 1
jne 0x408530
and ecx, 0xff000fff
cmp ecx, 0x1000021
jne 0x4087cc
mov ecx, dword [ebp - 0x4c]
or ecx, 0x80000000
add dword [ebp - 0x2c], 4
jmp 0x4087db
cmp ecx, 0xa
je 0x40553b
mov edi, ecx
cmp ecx, 0x19
mov ecx, dword [ebp - 0x48]
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
je 0x405590
cmp edi, 0x11
mov ebx, dword [ebp - 0x24]
jne case.0x401cd1.11
mov edx, esi
mov esi, ecx
mov eax, dword [edx]
mov ecx, eax
and ecx, 0xf00
or ecx, dword [edx + 4]
jne 0x404bc2
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
test edx, 0x1ff8
jne 0x40710c
mov ecx, edx
and ecx, 0xc000
cmp ecx, 0x8000
je 0x40710c
shr eax, 0x16
and eax, 0x3c
mov ecx, 0xa0
or ecx, dword [eax + 0x79141c]
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0xc]
test dl, 0xf8
mov dword [ebp - 0x30], eax
je 0x40766a
sar eax, 0x1f
jmp 0x407670
mov edi, dword [ebp + 0x10]
mov eax, dword [edi]
mov edx, eax
shr edx, 0x18
xor ebx, ebx
cmp edx, 1
setne bl
mov edi, dword [ebp - 0x20]
add edi, ebx
mov esi, dword [ebp + 0xc]
mov esi, dword [esi]
shr esi, 0x16
and esi, 0x3c
or edi, dword [esi + 0x7913dc]
mov dword [ebp - 0x20], edi
cmp ecx, 0x11
je 0x404e56
cmp ecx, 9
mov ebx, dword [ebp + 0x14]
jne 0x404d6a
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp + 0x10]
mov edi, dword [ecx + 4]
cmp edx, 1
mov ebx, dword [ebp - 0x24]
jne 0x405ef2
and eax, 0xff000fff
cmp eax, 0x1000021
jne 0x4069a7
or dword [ebp - 0x4c], 0x80000000
add edi, 4
mov dword [ebp - 0x2c], edi
jmp 0x4069b8
cmp ecx, 0xa
jne case.default.0x401cd1
mov eax, 0xff000fff
mov edi, dword [ebp + 0x10]
and eax, dword [edi]
xor ecx, ecx
cmp eax, 0x8000039
sete cl
shl ecx, 0x1b
or dword [ebp - 0x20], ecx
mov ecx, dword [edi + 4]
mov dword [ebp - 0x34], ecx
jmp 0x405076
mov esi, dword [ebp + 0xc]
cmp ecx, 0x12
jne 0x40699a
mov eax, dword [esi]
mov edi, dword [ebp + 0x10]
mov ecx, dword [edi]
xor ecx, eax
and ecx, 0xf8
mov edx, eax
and edx, 0x1f00
or edx, ecx
mov ebx, dword [ebp + 0x14]
jne 0x404d6d
mov ebx, dword [esi + 4]
test al, 0xf8
mov ecx, 0
cmove ecx, ebx
or ecx, dword [esi + 0xc]
and eax, 0x180000
or eax, ecx
jne 0x406a33
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], ebx
jmp 0x405862
cmp ecx, 9
je 0x404e5e
cmp ecx, 0xb
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
cmp dword [edi + 4], 0
mov edx, 0x1a
jne 0x40805d
mov eax, ecx
movzx ecx, byte [ecx*8 + 0x791c2f]
mov edx, dword [edi]
shr edx, 0x18
xor eax, eax
cmp edx, 1
setne al
add eax, dword [ecx*4 + 0x7953ec]
xor ecx, ecx
cmp edx, 2
sete cl
shl ecx, 0x15
or ecx, eax
movzx eax, byte [esi + 8]
mov dword [ebp - 0x30], eax
mov al, 1
mov dword [ebp - 0x28], eax
jmp 0x404eb6
mov esi, dword [ebp + 0xc]
cmp ecx, 0x11
jne 0x40699a
cmp dword [esi + 4], 2
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
mov ecx, dword [edi]
mov eax, ecx
and eax, 7
cmp eax, 2
mov edx, 0x1a
jne 0x4055c7
cmp dword [edi + 4], 6
jne 0x4055c7
mov edx, dword [edi + 0xc]
xor eax, eax
test cl, 0xf8
mov esi, 6
cmovne esi, eax
or esi, edx
jne case.default.0x401cd1
cmp ecx, 0x1000000
mov esi, dword [ebp + 0xc]
jb 0x4068ea
mov eax, ecx
shr eax, 0x18
xor ebx, ebx
cmp eax, 1
setne bl
mov edi, dword [ebp - 0x20]
add edi, ebx
xor ebx, ebx
cmp eax, 2
sete bl
shl ebx, 0x15
or edi, ebx
mov ebx, edi
mov eax, dword [ebp + 0x10]
jmp 0x4060f4
cmp ecx, 3
je 0x4055cf
cmp ecx, 2
mov edi, dword [ebp - 0x48]
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
je 0x404332
cmp ecx, 1
jne case.0x401cd1.11
mov edi, esi
mov esi, dword [ebp - 0x54]
mov eax, dword [edi]
mov ecx, eax
and ecx, 0xff000fff
cmp ecx, 0x2000599
jne 0x4052b5
mov esi, edi
mov eax, dword [edi + 4]
cmp eax, 6
mov edi, dword [ebp - 0x24]
ja 0x405fab
mov ecx, dword [eax*4 + 0x790fac]
jmp 0x4026b7
cmp ecx, 2
mov edi, dword [ebp - 0x48]
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
je 0x404332
cmp ecx, 1
jne case.0x401cd1.11
mov edi, esi
mov esi, dword [ebp - 0x54]
mov eax, dword [edi]
mov ecx, eax
and ecx, 0xff000fff
cmp ecx, 0x2000599
jne 0x4052b5
mov esi, edi
mov eax, dword [edi + 4]
cmp eax, 2
mov edi, dword [ebp - 0x24]
je 0x405fab
cmp eax, 6
ja 0x405fab
mov ecx, dword [eax*4 + 0x790fcc]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x3c], 0
jmp 0x4053c1
cmp ecx, 3
je 0x404ebe
test ecx, ecx
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
mov ecx, dword [ebp - 0x20]
inc ecx
jmp 0x404ea1
mov dword [ebp - 0x30], ecx
mov esi, dword [ebp + 0xc]
mov edx, dword [esi]
mov eax, edx
and eax, 7
cmp eax, 1
jne 0x404413
mov edi, esi
mov esi, edx
shr esi, 0x18
mov eax, edx
shr eax, 0x16
and eax, 0x3c
mov ecx, dword [edi + 4]
mov dword [ebp - 0x2c], ecx
cmp esi, 1
mov ebx, dword [ebp + 0x14]
jne 0x405610
and edx, 0xff000fff
cmp edx, 0x1000021
mov ecx, dword [ebp - 0x20]
jne 0x40603e
or dword [ebp - 0x4c], 0x80000000
add dword [ebp - 0x2c], 4
jmp 0x40604d
cmp ecx, 2
je 0x405076
cmp ecx, 1
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
mov ecx, dword [esi + 4]
mov eax, 0xff000fff
and eax, dword [esi]
cmp eax, 0x1000021
jne 0x405f08
or dword [ebp - 0x4c], 0x80000000
add ecx, 4
jmp 0x402d51
cmp ecx, 0xca
je 0x404ee1
mov edi, ecx
cmp ecx, 0xc9
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
jne 0x404f12
mov edi, eax
mov eax, dword [esi]
shr eax, 0x16
and eax, 0x3c
mov ecx, dword [ebp - 0x20]
or ecx, dword [eax + 0x7913dc]
mov dword [ebp - 0x20], ecx
mov eax, dword [esi + 4]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0x10]
mov edx, dword [eax + 4]
mov dword [ebp - 0x34], edx
mov eax, dword [edi + 8]
mov dword [ebp - 0x30], eax
jmp 0x4056ae
cmp ecx, 0x11
jne case.default.0x401cd1
mov edi, dword [ebp + 0x10]
cmp dword [edi + 0xc], 0
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
mov ebx, eax
mov edx, esi
mov eax, dword [esi]
mov ecx, eax
and ecx, 0xf07
cmp ecx, 1
jne 0x40425b
mov edi, edx
cmp dword [edx + 4], 0
jne 0x405f2f
shr eax, 0x18
mov ecx, dword [ebp + 0x10]
mov ecx, dword [ecx]
cmp ecx, 0x1000000
jb 0x4060ce
mov edx, ecx
shr edx, 0x18
cmp edx, eax
je 0x4060ce
mov edx, 0x35
mov esi, edi
mov eax, ebx
jmp 0x40805d
cmp ecx, 0xa
jne case.default.0x401cd1
mov esi, dword [ebp + 0xc]
cmp dword [esi + 0xc], 0
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
mov ebx, eax
mov eax, dword [edi]
mov ecx, eax
and ecx, 0xf07
cmp ecx, 1
mov edx, 0x1a
jne 0x407a7e
cmp dword [edi + 4], 0
jne 0x407a7e
shr eax, 0x18
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx]
cmp ecx, 0x1000000
jb 0x4060e2
mov edx, ecx
shr edx, 0x18
cmp edx, eax
je 0x4060e2
mov edx, 0x35
mov eax, ebx
jmp 0x40805d
cmp ecx, 0x12
jne case.default.0x401cd1
mov esi, dword [ebp + 0xc]
mov eax, dword [esi]
mov edi, dword [ebp + 0x10]
mov ecx, dword [edi]
mov edx, ecx
xor edx, eax
test edx, 0x1ff8
mov ebx, dword [ebp + 0x14]
jne 0x404d6d
xor edx, edx
test al, 0xf8
jne 0x4028e6
mov edx, dword [ebp + 0xc]
mov edx, dword [edx + 4]
mov edi, dword [ebp + 0xc]
or edx, dword [edi + 0xc]
jne 0x404d6d
cmp ecx, 0x1000000
jb 0x404c48
mov edx, ecx
shr edx, 0x18
shr eax, 0x18
cmp eax, edx
jne 0x405f39
and edx, 0xf
mov ebx, dword [ebp - 0x20]
or ebx, dword [edx*4 + 0x79141c]
mov eax, dword [ebp + 0x10]
mov edx, dword [eax + 0xc]
jmp 0x4060f4
cmp ecx, 0xa
je 0x404f5c
mov edx, ecx
cmp ecx, 9
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
jne 0x404fb8
mov ecx, dword [esi]
mov edx, ecx
shr edx, 0x18
mov ebx, dword [eax]
mov esi, ebx
shr esi, 0x18
cmp edx, esi
jne 0x405f36
mov dword [ebp - 0x58], ebx
mov esi, edx
and esi, 0xf
mov ebx, dword [ebp - 0x20]
or ebx, dword [esi*4 + 0x79141c]
mov dword [ebp - 0x20], ebx
mov esi, dword [ebp + 0xc]
mov esi, dword [esi + 4]
mov eax, dword [eax + 4]
mov dword [ebp - 0x28], 0
cmp edx, 1
jne 0x4069cb
and ecx, 0xff000fff
cmp ecx, 0x1000021
jne 0x407280
mov edx, dword [ebp - 0x4c]
or edx, 0x80000000
add esi, 4
jmp 0x40728e
mov dword [ebp - 0x3c], edx
cmp ecx, 0xa
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
mov ebx, dword [ebp - 0x20]
je 0x4043a9
cmp ecx, 9
je 0x404357
jmp case.0x401cd1.11
mov dword [ebp - 0x3c], edx
cmp ecx, 9
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
mov ebx, dword [ebp - 0x20]
je 0x404357
cmp ecx, 0xa
je 0x4043a9
cmp ecx, 0x11
jne case.0x401cd1.11
mov ecx, esi
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [ebp - 0x34], ecx
mov ecx, eax
shr ecx, 0x18
mov edx, eax
shr edx, 0x16
and edx, 0x3c
or ebx, dword [edx + 0x79141c]
mov edx, ebx
mov dword [ebp - 0x28], 0
cmp ecx, 1
mov dword [ebp - 0x20], ebx
jne 0x405c25
and eax, 0xff000fff
cmp eax, 0x1000021
mov ebx, dword [ebp - 0x24]
jne 0x407023
or dword [ebp - 0x4c], 0x80000000
add dword [ebp - 0x34], 4
jmp 0x402df7
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x30], 0
jmp 0x4056b3
cmp ecx, 0x11
je 0x40442c
mov edi, ecx
cmp ecx, 0xa
mov edx, dword [ebp - 0x54]
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
je 0x40561e
cmp edi, 9
mov ebx, dword [ebp - 0x24]
jne case.0x401cd1.11
mov esi, dword [esi + 4]
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
test dword [ebp - 0x50], 0x100
jne 0x4061d5
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x30], 0
jmp 0x4056b6
mov esi, dword [ebp - 0x48]
mov edx, dword [ebp + 0x18]
mov edi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x20]
jmp 0x40564a
cmp ecx, 2
mov edi, dword [ebp - 0x48]
mov esi, dword [ebp + 0xc]
je 0x4043de
mov eax, ecx
cmp ecx, 9
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
mov ecx, edi
mov eax, esi
mov esi, edi
mov ebx, eax
mov ecx, dword [eax + 4]
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
test ecx, ecx
je 0x405635
test eax, eax
mov edx, dword [ebp - 0x24]
je 0x406f07
mov esi, ebx
jmp 0x406a33
test ecx, ecx
je 0x40562d
cmp ecx, 2
mov edi, dword [ebp - 0x48]
mov esi, dword [ebp + 0xc]
je 0x4043de
cmp ecx, 1
jne 0x40699a
mov ecx, esi
mov esi, edi
mov eax, dword [ecx + 4]
jmp 0x405635
cmp ecx, 1
je 0x405026
cmp ecx, 2
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
mov edi, esi
mov edx, esi
mov eax, dword [esi]
shr eax, 0x18
cmp eax, 0xa
je 0x4069e0
cmp eax, 8
mov ebx, dword [ebp - 0x24]
je 0x406a20
cmp eax, 4
jne 0x406a31
mov dword [ebp - 0x28], 0
mov eax, dword [ebp - 0x58]
test byte [eax*8 + 0x795609], 0x10
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], edx
mov esi, edx
mov edx, 0x1a
mov eax, dword [ebp + 0x14]
jne 0x4077a3
jmp 0x40805d
cmp ecx, 2
jne case.default.0x401cd1
mov esi, dword [ebp + 0xc]
mov eax, dword [esi]
shr eax, 0x18
cmp eax, 8
mov esi, dword [ebp - 0x54]
je 0x406203
mov edi, dword [ebp - 0x20]
and edi, 0xffff1fff
cmp eax, 4
mov ebx, dword [ebp - 0x24]
mov edx, 0x1a
je 0x40625f
cmp eax, 2
jne 0x406764
mov eax, dword [ebp - 0x58]
test byte [eax*8 + 0x795609], 8
je 0x406764
add edi, 4
jmp 0x4068b2
cmp ecx, 1
jne case.default.0x401cd1
jmp 0x404262
cmp ecx, 1
je 0x404262
test ecx, ecx
mov ecx, dword [ebp - 0x48]
jne case.default.0x401cd1
mov esi, ecx
mov ebx, dword [ebp - 0x20]
inc ebx
jmp 0x40426e
cmp ecx, 2
je 0x40506f
cmp ecx, 1
mov edi, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
cmp dword [esi + 4], 0
mov edx, 0x1a
jne 0x40805d
mov esi, edi
movzx eax, byte [ecx*8 + 0x791c2f]
mov ebx, dword [eax*4 + 0x7953ec]
mov edi, dword [ebp - 0x24]
jmp 0x405647
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebx]
test eax, eax
je 0x404728
and eax, 0xff000fff
cmp eax, 0x10000161
jne 0x404bc2
mov eax, dword [ebp + 0x14]
cmp dword [eax + 4], 0
mov ebx, dword [ebp - 0x24]
mov edx, 0x1a
je 0x402db1
jmp 0x402de6
mov edi, dword [ebp + 0x14]
mov eax, dword [edi]
test eax, eax
je 0x404738
mov ecx, eax
and ecx, 7
cmp ecx, 2
jne 0x407271
cmp dword [edi + 4], 7
jne 0x407271
xor edx, edx
test al, 0xf8
mov eax, 7
cmovne eax, edx
or eax, dword [edi + 0xc]
mov ebx, dword [ebp - 0x24]
mov eax, edi
mov edx, 0x1a
jne 0x402de6
jmp 0x402db1
cmp ecx, 0x11
je 0x405096
cmp ecx, 9
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
mov eax, 0xff000fff
mov ecx, dword [esi]
and ecx, eax
cmp ecx, 0x10000161
sete cl
and eax, dword [edi]
cmp eax, 0x10000161
sete al
or al, cl
movzx eax, al
shl eax, 0x15
or dword [ebp - 0x20], eax
mov edx, dword [esi + 4]
mov dword [ebp - 0x34], edx
mov ecx, dword [edi + 4]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x28], 0
jmp 0x4056b3
mov edi, dword [ebp + 0x10]
movzx eax, byte [edi + 3]
shl eax, 0x18
xor edx, edx
cmp eax, 0x8000000
sete dl
shl edx, 0x1b
mov esi, dword [ebp - 0x20]
or esi, edx
jmp 0x402d88
mov esi, dword [ebp - 0x20]
mov eax, 0xff000fff
mov edx, dword [ebp + 0xc]
and eax, dword [edx]
xor edx, edx
cmp eax, 0x8000039
sete dl
shl edx, 0x1b
or esi, edx
mov dword [ebp - 0x20], esi
mov esi, ecx
mov eax, dword [ebp + 0x14]
mov ebx, dword [ebp - 0x24]
mov edx, 0x1a
cmp esi, 0x11
je 0x402dee
cmp esi, 9
mov esi, dword [ebp - 0x20]
jne 0x402de6
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x20], esi
jmp 0x4056b6
mov esi, dword [ebp + 0xc]
jmp 0x40805d
mov esi, dword [ebp + 0xc]
mov edx, dword [esi + 4]
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x40], 0
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x3c], eax
jmp 0x4077a3
cmp ecx, 0x19
je 0x40567e
mov edi, ecx
cmp ecx, 0x11
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
je 0x4057e3
cmp edi, 9
mov edi, dword [ebp - 0x24]
jne case.0x401cd1.11
mov edx, dword [esi + 4]
mov dword [ebp - 0x34], edx
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
mov dword [ebp - 0x2c], eax
jmp 0x406082
cmp ecx, 0x19
je 0x4057eb
mov edx, ecx
cmp ecx, 0x11
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
je 0x40583e
cmp edx, 9
mov edx, dword [ebp - 0x24]
jne case.0x401cd1.11
mov eax, 0xff000fff
mov ebx, edx
mov ecx, dword [esi]
and ecx, eax
cmp ecx, 0x10000161
sete cl
mov edx, dword [ebp + 0x10]
and eax, dword [edx]
cmp eax, 0x10000161
sete al
or al, cl
movzx eax, al
shl eax, 0x15
or dword [ebp - 0x20], eax
mov esi, dword [esi + 4]
mov dword [ebp - 0x34], esi
mov ecx, dword [edx + 4]
mov dword [ebp - 0x2c], ecx
jmp 0x4069b8
mov eax, dword [ebp + 0x14]
mov edx, ecx
mov ecx, dword [eax + 8]
cmp edx, 0xd1
je 0x4050d3
cmp edx, 0xc9
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
jne case.0x401cd1.11
mov edx, dword [esi + 4]
mov dword [ebp - 0x34], edx
mov edx, dword [edi + 4]
mov dword [ebp - 0x2c], edx
jmp 0x403228
mov eax, dword [ebp + 0x14]
mov edx, ecx
mov ecx, dword [eax + 8]
cmp edx, 0xd1
je 0x4050e1
cmp edx, 0xc9
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov ebx, dword [ebp - 0x20]
jne case.0x401cd1.11
mov eax, 0xff000fff
mov edx, ebx
mov ebx, esi
mov esi, ecx
mov ecx, dword [ebx]
and ecx, eax
cmp ecx, 0x10000161
sete cl
and eax, dword [edi]
cmp eax, 0x10000161
sete al
or al, cl
movzx eax, al
shl eax, 0x15
or edx, eax
mov dword [ebp - 0x20], edx
mov edx, dword [ebx + 4]
mov dword [ebp - 0x34], edx
mov eax, dword [edi + 4]
mov dword [ebp - 0x2c], eax
mov al, 1
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x30], esi
jmp 0x4056b3
cmp ecx, 0xca
je 0x405117
cmp ecx, 0xc9
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
mov edx, eax
mov eax, 0xff000fff
and eax, dword [edi]
xor ecx, ecx
cmp eax, 0x10000161
sete cl
shl ecx, 0x15
or dword [ebp - 0x20], ecx
mov eax, dword [edx + 8]
mov dword [ebp - 0x30], eax
mov edx, dword [esi + 4]
mov dword [ebp - 0x34], edx
mov eax, dword [edi + 4]
jmp 0x4056ab
cmp ecx, 0xca
je 0x405168
cmp ecx, 0xc9
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
mov edx, eax
mov eax, 0xff000fff
and eax, dword [edi]
xor ecx, ecx
cmp eax, 0x10000161
sete cl
shl ecx, 0x15
or dword [ebp - 0x20], ecx
mov eax, dword [edx + 8]
mov dword [ebp - 0x30], eax
mov edx, dword [edi + 4]
mov dword [ebp - 0x34], edx
mov eax, dword [esi + 4]
jmp 0x4056ab
cmp ecx, 0x11
je 0x40442c
mov edi, ecx
cmp ecx, 0xa
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
je 0x40587b
cmp edi, 9
jne case.0x401cd1.11
mov edi, esi
mov esi, ecx
mov eax, dword [edi + 4]
mov ecx, dword [ebp + 0x10]
mov ebx, dword [ecx + 4]
test dword [ebp - 0x50], 0x100
mov edi, dword [ebp - 0x24]
jne 0x406298
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], 0
jmp 0x407193
cmp ecx, 0x11
jne 0x40443a
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
shr eax, 0x18
cmp eax, 1
mov edi, dword [ebp + 0x10]
mov ebx, dword [ebp + 0x14]
je 0x40425b
and eax, 0xf
mov ebx, edx
mov edx, dword [ebp - 0x20]
or edx, dword [eax*4 + 0x7913dc]
mov dword [ebp - 0x20], edx
mov eax, dword [ebx + 4]
mov dword [ebp - 0x34], eax
jmp 0x405f8e
mov edx, dword [ebp - 0x20]
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp - 0x24]
mov ebx, ecx
jmp 0x406a8d
cmp ecx, 0x11
mov dword [ebp - 0x30], ecx
je 0x4058b5
mov edx, ecx
cmp ecx, 0xa
mov esi, dword [ebp + 0xc]
je 0x405908
cmp edx, 9
mov edi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x20]
jne 0x406a82
mov eax, dword [esi + 4]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 4]
mov edx, 0xff000fff
mov esi, dword [esi]
and esi, edx
cmp esi, 0x10000161
je 0x406a40
cmp esi, 0x8000391
mov esi, dword [ebp + 0xc]
jne 0x406a82
and edx, dword [eax]
cmp edx, 0x8000391
jne 0x406a82
test dword [ebp - 0x50], 0x100
jne 0x4076a5
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x20], 0x16f
jmp 0x406a6b
mov esi, dword [ebp + 0xc]
mov eax, dword [esi + 4]
mov dword [ebp - 0x2c], eax
cmp ecx, 9
je 0x4051a1
cmp ecx, 0xd9
mov ecx, dword [ebp - 0x54]
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
mov edx, eax
movzx eax, byte [ecx*8 + 0x791c2f]
mov eax, dword [eax*4 + 0x7953ec]
mov dword [ebp - 0x20], eax
shr eax, 0x12
and eax, 7
mov dword [ebp - 0x34], eax
movzx eax, byte [edi + 8]
mov ecx, dword [edx + 8]
shl ecx, 8
movzx edi, cx
or edi, eax
mov dword [ebp - 0x30], edi
mov al, 2
jmp 0x4056b0
mov edx, dword [ebp + 0x18]
mov eax, dword [edx]
and eax, 7
shl eax, 9
or eax, ecx
mov esi, dword [ebp + 0xc]
mov ecx, dword [esi + 4]
mov dword [ebp - 0x34], ecx
mov edi, dword [ebp + 0x10]
mov edx, dword [edi + 4]
cmp eax, 9
je 0x4051c3
cmp eax, 0x6c9
mov ecx, dword [ebp - 0x54]
mov eax, dword [ebp + 0x14]
mov edi, dword [ebp - 0x24]
jne case.0x401cd1.11
movzx eax, byte [ecx*8 + 0x791c2f]
mov ebx, dword [eax*4 + 0x7953ec]
mov eax, dword [ebp + 0x14]
movzx esi, byte [eax + 8]
mov ecx, dword [ebp + 0x18]
mov ecx, dword [ecx + 8]
shl ecx, 8
movzx eax, cx
or eax, esi
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x20], ebx
mov ebx, edi
mov al, 2
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], edx
jmp 0x4056b6
movzx edx, byte [ebp - 0x20]
mov esi, dword [ebp + 0xc]
mov eax, dword [esi + 4]
mov dword [ebp - 0x34], eax
cmp ecx, 0x11
je 0x4051d6
cmp ecx, 9
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
mov ecx, edx
mov edx, dword [edi + 4]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x20], 0x10f
mov al, 1
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x30], ecx
jmp 0x4056b3
mov ecx, edx
shr ecx, 0x13
and ecx, 0xc00
mov eax, edx
shr eax, 0xd
and eax, 0x300
or eax, ecx
test dword [ebp - 0x50], 0x400
jne 0x40449f
and edx, 0x1f00
xor eax, edx
mov edi, dword [ebp - 0x24]
mov byte [edi], 0xc5
xor ah, 0xf9
mov byte [edi + 1], ah
mov eax, dword [ebp - 0x20]
mov byte [edi + 2], al
add edi, 3
jmp 0x4044bf
xor ecx, ecx
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
xor edi, edi
jmp 0x40478d
cmp ecx, 0x11
je 0x4059e1
mov eax, ecx
cmp ecx, 0xa
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp + 0xc]
je 0x405947
cmp eax, 9
jne 0x40699a
mov edi, esi
mov esi, ecx
mov eax, dword [edi + 4]
mov edx, dword [ebp + 0x10]
mov ebx, dword [edx + 4]
mov ecx, 0xf07
mov edx, dword [edx]
and edx, ecx
cmp edx, 1
jne 0x4062c4
movzx ecx, byte [esi*8 + 0x791c2f]
mov edx, dword [ecx*4 + 0x7953ec]
mov dword [ebp - 0x38], 0
jmp 0x4062e8
mov edi, dword [ebp - 0x34]
cmp ecx, 1
jne case.default.0x401cd1
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 4]
mov eax, 0xff000fff
and eax, dword [ecx]
xor ecx, ecx
cmp eax, 0x8000039
sete cl
shl ecx, 0x1b
mov ebx, dword [ebp - 0x20]
or ebx, ecx
mov dword [ebp - 0x38], 0
xor ecx, ecx
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
mov eax, edi
mov edi, edx
jmp 0x40478d
mov edi, dword [ebp + 0x10]
mov eax, dword [edi]
mov esi, dword [ebp + 0xc]
or eax, dword [esi]
shr eax, 0x1c
mov edx, dword [ebp - 0x20]
or edx, dword [eax*4 + 0x791148]
cmp ecx, 0xa
je 0x4051f9
cmp ecx, 9
mov ebx, dword [ebp + 0x14]
jne 0x404d6d
mov eax, edx
mov ecx, dword [ebp + 0x10]
mov edi, esi
mov esi, dword [ecx + 4]
mov edi, dword [edi + 4]
mov dword [ebp - 0x38], 0
xor ecx, ecx
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
mov ebx, edx
mov eax, esi
jmp 0x40478d
cmp ecx, 0xa
jne case.default.0x401cd1
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x34], ecx
shr eax, 0x1c
mov eax, dword [eax*4 + 0x791148]
mov edx, dword [ebp + 0xc]
jmp 0x40359e
mov esi, dword [ebp + 0xc]
jmp 0x403430
mov edi, dword [ebp + 0x10]
mov eax, dword [edi]
mov esi, dword [ebp + 0xc]
or eax, dword [esi]
shr eax, 0x1c
mov edx, dword [ebp - 0x20]
or edx, dword [eax*4 + 0x791148]
mov dword [ebp - 0x20], edx
jmp 0x403430
cmp ecx, 0xc9
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
jne 0x403430
mov eax, dword [esi + 4]
mov edi, dword [edi + 4]
mov ebx, dword [ebp + 0x14]
mov edx, dword [ebx + 8]
mov ecx, edx
shr ecx, 0x10
mov dword [ebp - 0x2c], ecx
mov ecx, edx
shr ecx, 0x18
mov dword [ebp - 0x30], ecx
mov ebx, 0x2001c5
jmp 0x4039c3
mov eax, dword [ebp + 0x14]
mov edx, ecx
mov ecx, dword [eax + 8]
cmp edx, 0xca
mov edi, dword [ebp - 0x24]
je 0x404279
cmp edx, 0xc9
jne case.0x401cd1.11
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
mov edi, dword [esi + 4]
jmp 0x404237
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebx]
test eax, eax
je 0x404747
mov edi, ebx
mov ecx, eax
and ecx, 7
cmp ecx, 2
jne 0x407271
cmp dword [edi + 4], 7
jne 0x407271
xor ecx, ecx
test al, 0xf8
mov eax, 7
cmovne eax, ecx
or eax, dword [edi + 0xc]
mov ecx, esi
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp - 0x24]
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
jmp 0x40474f
mov eax, 0xff000fff
mov esi, dword [ebp + 0xc]
mov edx, dword [esi]
and edx, eax
cmp edx, 0x8000039
sete dl
mov edi, dword [ebp + 0x10]
and eax, dword [edi]
cmp eax, 0x8000039
sete al
or al, dl
movzx eax, al
shl eax, 0x1b
or dword [ebp - 0x20], eax
jmp 0x40474c
mov edi, dword [ebp + 0x10]
mov eax, dword [edi]
jmp 0x403563
mov edi, dword [ebp + 0x10]
mov eax, dword [edi]
cmp eax, 0x1000000
jae 0x4044d0
mov esi, dword [ebp + 0xc]
movzx eax, byte [esi + 3]
shl eax, 0x18
mov edi, dword [ebp - 0x20]
mov edx, edi
or edx, 0x40000000
cmp eax, 0x20000000
cmove edi, edx
mov dword [ebp - 0x20], edi
jmp 0x40474c
mov edi, dword [ebp + 0x10]
mov eax, dword [edi]
cmp ecx, 9
jne 0x403563
mov edx, eax
and edx, 0xf07
cmp edx, 1
mov edx, dword [ebp - 0x54]
mov esi, dword [ebp + 0xc]
jne 0x403566
mov ecx, edx
movzx ecx, byte [edx*8 + 0x791c2f]
or eax, dword [esi]
shr eax, 0x1c
mov ebx, dword [eax*4 + 0x791148]
or ebx, dword [ecx*4 + 0x7953ec]
mov eax, dword [esi + 4]
mov ecx, dword [ebp + 0x10]
mov edi, dword [ecx + 4]
jmp 0x40476f
mov esi, dword [ebp + 0xc]
or eax, dword [esi]
shr eax, 0x1c
mov edx, dword [ebp - 0x20]
or edx, dword [eax*4 + 0x791148]
mov dword [ebp - 0x20], edx
jmp 0x40474c
cmp ecx, 0x11
jne case.default.0x401cd1
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x34], ecx
shr eax, 0x1c
mov eax, dword [eax*4 + 0x791148]
mov edx, dword [ebp + 0x10]
mov ecx, dword [edx]
shr ecx, 6
and ecx, 0x7c
mov ecx, dword [ecx + 0x791188]
cmp ecx, eax
cmova eax, ecx
or dword [ebp - 0x20], eax
mov dword [ebp - 0x38], 0
xor ecx, ecx
mov dword [ebp - 0x40], 0
mov ebx, edx
jmp 0x40637b
mov eax, 0xf07
mov esi, dword [ebp + 0xc]
mov ecx, dword [esi]
and ecx, eax
cmp ecx, 0x101
jne 0x40699a
mov edi, dword [ebp + 0x10]
and eax, dword [edi]
cmp eax, 0x101
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
mov edx, esi
mov ecx, eax
mov eax, 0xf07
mov ebx, ecx
mov ecx, dword [ecx]
and ecx, eax
cmp ecx, 0x101
jne 0x40425b
mov ecx, dword [ebp + 0x18]
and eax, dword [ecx]
cmp eax, 0x101
jne 0x40425b
mov eax, 0xf07
and eax, dword [ecx + 0x10]
cmp eax, 0x101
jne 0x40425b
mov eax, dword [ebp + 0x18]
add eax, 0x20
mov dword [ebp - 0x3c], eax
mov eax, dword [eax]
and eax, 7
cmp eax, 2
jne 0x40425b
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
test al, 3
jne 0x408765
mov edx, eax
lea eax, [edx + 1]
cmp dword [ebx + 4], eax
jne 0x408765
mov eax, edx
lea eax, [edx + 2]
cmp dword [ecx + 4], eax
jne 0x408765
mov eax, edx
lea eax, [edx + 3]
cmp dword [ecx + 0x14], eax
jne 0x408765
shl edx, 7
mov eax, dword [ebp + 0xc]
add edx, dword [eax + 4]
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x38], 0
xor ecx, ecx
mov dword [ebp - 0x40], 0
mov edi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x3c]
jmp 0x40637e
mov dword [ebp - 0x30], ecx
mov esi, dword [ebp + 0xc]
jmp 0x403701
mov dword [ebp - 0x30], ecx
mov eax, 0xff000fff
mov esi, dword [ebp + 0xc]
mov edx, dword [esi]
and edx, eax
cmp edx, 0x8000039
sete dl
mov edi, dword [ebp + 0x10]
and eax, dword [edi]
cmp eax, 0x8000039
sete al
or al, dl
movzx eax, al
shl eax, 0x1b
or dword [ebp - 0x20], eax
jmp 0x403701
mov dword [ebp - 0x30], ecx
mov edi, dword [ebp + 0x10]
mov eax, dword [edi]
mov esi, dword [ebp + 0xc]
or eax, dword [esi]
shr eax, 0x1c
mov edx, dword [ebp - 0x20]
or edx, dword [eax*4 + 0x791148]
mov dword [ebp - 0x20], edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 8]
mov edx, dword [ebp - 0x30]
cmp edx, 0xd1
mov edi, dword [ebp - 0x24]
je 0x405b4e
cmp edx, 0xc9
jne case.0x401cd1.11
mov edx, dword [esi + 4]
jmp 0x40422f
mov dword [ebp - 0x30], ecx
mov esi, dword [ebp + 0xc]
jmp 0x4037d3
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
test eax, eax
je case.0x401522.115
and eax, 0xf07
cmp eax, 1
jne case.default.0x401cd1
mov eax, dword [ebp + 0x18]
cmp dword [eax + 4], 2
jne case.default.0x401cd1
mov dword [ebp - 0x30], ecx
mov eax, 0xff000fff
mov esi, dword [ebp + 0xc]
and eax, dword [esi]
cmp eax, 0x8000039
sete al
mov ebx, dword [ebp + 0x14]
movzx edx, byte [ebx + 3]
shl edx, 0x18
cmp edx, 0x8000000
sete dl
or dl, al
movzx eax, dl
shl eax, 0x1b
or dword [ebp - 0x20], eax
jmp 0x4037d6
mov dword [ebp - 0x30], ecx
mov esi, dword [ebp + 0xc]
mov eax, dword [esi]
mov edx, dword [ebp - 0x20]
jmp 0x4037c1
mov dword [ebp - 0x30], ecx
mov esi, dword [ebp + 0xc]
mov eax, dword [esi]
mov edx, eax
and edx, 0xff000fff
xor ebx, ebx
cmp edx, 0x289
sete bl
shl ebx, 0xc
mov edx, dword [ebp - 0x20]
or edx, ebx
mov edi, dword [ebp + 0x10]
or eax, dword [edi]
shr eax, 0x1c
or edx, dword [eax*4 + 0x791148]
mov dword [ebp - 0x20], edx
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x30]
cmp eax, 0x89
mov edi, dword [ebp - 0x24]
je 0x403d70
cmp eax, 0x49
mov ebx, dword [ebp - 0x20]
jne 0x40699a
mov eax, dword [ebp + 0x10]
mov edx, dword [eax + 4]
shl edx, 7
add edx, dword [esi + 4]
mov eax, dword [ebp + 0x14]
mov edi, dword [eax + 4]
mov eax, edx
xor ecx, ecx
mov dword [ebp - 0x38], 0
jmp 0x404778
cmp ecx, 0x49
jne case.default.0x401cd1
mov esi, dword [ebp + 0xc]
mov eax, dword [esi + 4]
test al, 1
mov edi, dword [ebp + 0x10]
mov ebx, dword [ebp + 0x14]
jne 0x404aa2
lea ecx, [eax + 1]
cmp ecx, dword [edi + 4]
jne 0x404aa2
mov edx, ebx
mov ecx, dword [ebx]
shr ecx, 0x1c
mov ebx, dword [ebp - 0x20]
or ebx, dword [ecx*4 + 0x791148]
mov ecx, dword [edx + 4]
shl ecx, 7
add ecx, eax
mov dword [ebp - 0x34], ecx
mov edx, dword [ebp + 0x18]
mov eax, dword [edx]
and eax, 7
cmp eax, 2
je 0x4072b9
cmp eax, 1
jne 0x40699a
mov edi, dword [edx + 4]
mov dword [ebp - 0x38], 0
xor ecx, ecx
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
mov eax, dword [ebp - 0x34]
jmp 0x40478d
mov ebx, ecx
mov esi, dword [ebp + 0xc]
jmp 0x4038c0
mov ebx, ecx
mov edi, dword [ebp + 0x10]
mov eax, dword [edi]
mov esi, dword [ebp + 0xc]
or eax, dword [esi]
shr eax, 0x1c
mov edx, dword [ebp - 0x20]
or edx, dword [eax*4 + 0x791148]
mov dword [ebp - 0x20], edx
mov edx, dword [ebp + 0x18]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
and eax, 7
shl eax, 9
or eax, ebx
shl ecx, 4
cmp eax, 0x289
mov ebx, dword [ebp + 0x14]
mov edi, dword [ebp - 0x24]
je 0x404302
cmp eax, 0x249
jne 0x404d6d
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
shl eax, 7
add eax, dword [esi + 4]
mov edi, dword [ebx + 4]
jmp 0x404237
mov dword [ebp - 0x30], ecx
mov esi, dword [ebp + 0xc]
jmp 0x40396c
mov dword [ebp - 0x30], ecx
mov eax, 0xff000fff
mov esi, dword [ebp + 0xc]
and eax, dword [esi]
xor edx, edx
cmp eax, 0x289
sete dl
shl edx, 0xc
or dword [ebp - 0x20], edx
jmp 0x40396c
mov dword [ebp - 0x30], ecx
mov esi, dword [ebp + 0xc]
mov eax, dword [esi]
mov edx, dword [ebp - 0x20]
jmp 0x40395a
mov dword [ebp - 0x30], ecx
mov esi, dword [ebp + 0xc]
mov eax, dword [esi]
mov edx, eax
and edx, 0xff000fff
xor ebx, ebx
cmp edx, 0x289
sete bl
shl ebx, 0xc
mov edx, dword [ebp - 0x20]
or edx, ebx
mov edi, dword [ebp + 0x10]
or eax, dword [edi]
shr eax, 0x1c
or edx, dword [eax*4 + 0x791148]
mov dword [ebp - 0x20], edx
mov ebx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
mov eax, dword [edx]
mov ecx, dword [edx + 8]
and eax, 7
shl eax, 9
add eax, dword [ebp - 0x30]
cmp eax, 0x689
mov edi, dword [ebp - 0x24]
mov edx, 0x1a
je 0x4039d2
cmp eax, 0x649
mov ebx, dword [ebp - 0x20]
jne 0x4055c7
mov eax, dword [ebp + 0x10]
mov edx, dword [eax + 4]
shl edx, 7
add edx, dword [esi + 4]
mov eax, dword [ebp + 0x14]
mov edi, dword [eax + 4]
mov eax, edx
mov edx, ecx
shr edx, 0x10
mov dword [ebp - 0x2c], edx
mov edx, ecx
shr edx, 0x18
mov dword [ebp - 0x30], edx
mov edx, ecx
mov cl, 1
mov dword [ebp - 0x38], edx
mov dl, dh
mov dword [ebp - 0x44], edx
jmp 0x40478d
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
shl eax, 7
add eax, dword [esi + 4]
mov dword [ebp - 0x34], eax
mov cl, 1
jmp 0x40637e
mov esi, dword [ebp + 0xc]
mov ebx, ecx
jmp 0x403a2a
mov eax, 0xff000fff
mov esi, dword [ebp + 0xc]
mov edx, dword [esi]
and edx, eax
cmp edx, 0x8000039
sete dl
mov ebx, dword [ebp + 0x14]
and eax, dword [ebx]
mov ebx, ecx
cmp eax, 0x8000039
sete al
or al, dl
movzx eax, al
shl eax, 0x1b
or dword [ebp - 0x20], eax
cmp ebx, 0x51
je 0x404319
cmp ebx, 0x49
jne 0x40699a
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 4]
shl edx, 7
add edx, dword [esi + 4]
jmp 0x403deb
cmp ecx, 0x51
jne case.default.0x401cd1
jmp 0x404294
cmp ecx, 0x51
je 0x404294
cmp ecx, 0x11
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
movzx eax, byte [ecx*8 + 0x791c2f]
mov ecx, dword [esi]
shr ecx, 0x1c
mov ecx, dword [ecx*4 + 0x791148]
mov edx, dword [edi]
shr edx, 6
and edx, 0x7c
mov edx, dword [edx + 0x791188]
cmp edx, ecx
cmova ecx, edx
mov edx, dword [esi + 4]
mov dword [ebp - 0x34], edx
or ecx, dword [eax*4 + 0x7953ec]
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x20], ecx
xor ecx, ecx
mov ebx, edi
jmp 0x405a6a
mov edx, dword [ebp + 0x18]
mov eax, dword [edx]
mov esi, dword [edx + 8]
and eax, 7
shl eax, 9
or eax, ecx
cmp eax, 0x651
je 0x40521c
mov ecx, esi
cmp eax, 0x649
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
mov eax, dword [eax + 4]
shl eax, 7
add eax, dword [esi + 4]
mov edi, dword [edi + 4]
jmp 0x404237
mov esi, dword [ebp + 0xc]
jmp 0x403b21
mov edi, dword [ebp + 0x10]
mov eax, dword [edi]
mov esi, dword [ebp + 0xc]
or eax, dword [esi]
shr eax, 0x1c
mov edx, dword [ebp - 0x20]
or edx, dword [eax*4 + 0x791148]
mov dword [ebp - 0x20], edx
cmp ecx, 0x11
mov ebx, dword [ebp - 0x54]
mov edi, dword [ebp - 0x24]
je 0x4049f0
mov eax, ecx
cmp ecx, 0xa
mov edx, dword [ebp - 0x20]
je 0x4044e5
cmp eax, 9
jne 0x40699a
mov ecx, dword [esi + 4]
mov eax, dword [ebp + 0x10]
mov edi, dword [eax + 4]
mov eax, ecx
mov dword [ebp - 0x38], 0
xor ecx, ecx
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
mov ebx, edx
jmp 0x40478d
cmp ecx, 0x89
je 0x40450f
mov edx, ecx
cmp ecx, 0x51
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
je 0x40431c
cmp edx, 0x49
jne case.0x401cd1.11
mov edx, esi
mov eax, dword [eax + 4]
jmp 0x403c55
mov esi, dword [ebp + 0xc]
jmp 0x403bc6
mov edi, dword [ebp + 0x10]
mov eax, dword [edi]
mov esi, dword [ebp + 0xc]
or eax, dword [esi]
shr eax, 0x1c
mov edx, dword [ebp - 0x20]
or edx, dword [eax*4 + 0x791148]
mov dword [ebp - 0x20], edx
mov edx, ecx
cmp ecx, 0x89
mov ecx, dword [ebp - 0x54]
mov ebx, dword [ebp + 0x14]
mov edi, dword [ebp - 0x24]
je 0x403d70
cmp edx, 0x49
mov ebx, dword [ebp - 0x20]
je 0x403d5c
and ebx, 0x60000000
movzx eax, byte [ecx*8 + 0x791c2f]
or ebx, dword [eax*4 + 0x7953ec]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 8]
cmp edx, 0xd1
je 0x405b4b
cmp edx, 0xc9
jne case.0x401cd1.11
mov edx, dword [esi + 4]
mov eax, dword [ebp + 0x10]
jmp 0x4039ac
cmp ecx, 0x89
je 0x40450f
mov edx, ecx
cmp ecx, 0x51
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x14]
je 0x405963
cmp edx, 0x49
jne 0x40596e
mov edx, esi
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 4]
mov edx, dword [ebp + 0x10]
mov edi, dword [edx + 4]
test dword [ebp - 0x50], 0x100
jne 0x4059a3
shl eax, 7
add eax, ecx
jmp 0x40419b
cmp ecx, 0x89
je 0x405240
mov edx, ecx
cmp ecx, 0x49
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov ebx, dword [ebp + 0x14]
jne 0x405267
mov eax, dword [edi + 4]
shl eax, 7
add eax, dword [esi + 4]
mov edi, dword [ebx + 4]
jmp 0x40419b
mov esi, dword [ebp + 0xc]
jmp 0x403cc8
mov edi, dword [ebp + 0x10]
mov eax, dword [edi]
mov esi, dword [ebp + 0xc]
or eax, dword [esi]
shr eax, 0x1c
mov edx, dword [ebp - 0x20]
or edx, dword [eax*4 + 0x791148]
mov dword [ebp - 0x20], edx
cmp ecx, 0x89
mov edx, dword [ebp - 0x54]
mov ebx, dword [ebp + 0x14]
mov edi, dword [ebp - 0x24]
je 0x403d70
mov eax, ecx
cmp ecx, 0x4a
mov ebx, dword [ebp - 0x20]
je 0x40453d
cmp eax, 0x49
je 0x403d5c
jmp 0x40699a
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp + 0xc]
jmp 0x403d3f
mov dword [ebp - 0x30], ecx
mov edi, dword [ebp + 0x10]
mov eax, dword [edi]
mov edx, dword [ebp - 0x20]
jmp 0x403d2a
mov dword [ebp - 0x30], ecx
mov edi, dword [ebp + 0x10]
mov eax, dword [edi]
mov edx, eax
and edx, 7
xor ebx, ebx
cmp edx, 2
sete bl
shl ebx, 0xc
mov edx, dword [ebp - 0x20]
or edx, ebx
mov esi, dword [ebp + 0xc]
or eax, dword [esi]
shr eax, 0x1c
or edx, dword [eax*4 + 0x791148]
mov dword [ebp - 0x20], edx
mov ecx, dword [ebp - 0x54]
mov ebx, dword [ebp + 0x14]
mov edi, dword [ebp - 0x24]
mov edx, dword [ebp - 0x30]
cmp edx, 0x89
je 0x403d70
cmp edx, 0x49
mov ebx, dword [ebp - 0x20]
jne 0x4041e5
mov eax, dword [ebp + 0x10]
mov edx, dword [eax + 4]
shl edx, 7
add edx, dword [esi + 4]
mov eax, dword [ebp + 0x14]
jmp 0x40476a
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
shl eax, 7
add eax, dword [esi + 4]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x38], 0
xor ecx, ecx
mov dword [ebp - 0x40], 0
jmp 0x40637e
mov esi, dword [ebp + 0xc]
jmp 0x403dc6
mov eax, 0xff000fff
mov esi, dword [ebp + 0xc]
mov edx, dword [esi]
and edx, eax
cmp edx, 0x8000039
sete dl
mov edi, dword [ebp + 0x10]
and eax, dword [edi]
cmp eax, 0x8000039
sete al
or al, dl
movzx eax, al
shl eax, 0x1b
or dword [ebp - 0x20], eax
cmp ecx, 0x11
mov eax, dword [ebp + 0x14]
mov edi, dword [ebp - 0x24]
je 0x404324
mov edx, ecx
cmp ecx, 9
jne case.0x401cd1.11
mov eax, dword [esi + 4]
shl eax, 7
mov edx, dword [ebp - 0x34]
or edx, eax
mov eax, dword [ebp + 0x10]
mov edi, dword [eax + 4]
mov eax, edx
jmp 0x40419b
mov dword [ebp - 0x30], ecx
mov esi, dword [ebp + 0xc]
jmp 0x403e70
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x20]
jmp 0x403e59
mov dword [ebp - 0x30], ecx
mov eax, 0xff000fff
mov esi, dword [ebp + 0xc]
and eax, dword [esi]
cmp eax, 0x8000039
mov edi, dword [ebp + 0x10]
je 0x403e31
mov edx, dword [edi]
and edx, 0xff000000
xor eax, eax
cmp edx, 0x8000000
jne 0x403e36
mov eax, 0x8000000
or dword [ebp - 0x20], eax
mov cl, 4
mov ebx, dword [ebp + 0x14]
mov edi, dword [ebp - 0x24]
jmp 0x403e78
mov edx, dword [ebp - 0x20]
mov eax, edx
or eax, 0x1000
mov dword [ebp - 0x30], ecx
cmp ecx, 0xd1
cmove edx, eax
mov edi, dword [ebp + 0x10]
mov eax, dword [edi]
mov esi, dword [ebp + 0xc]
or eax, dword [esi]
shr eax, 0x1c
or edx, dword [eax*4 + 0x791148]
mov dword [ebp - 0x20], edx
mov ebx, dword [ebp + 0x14]
mov edi, dword [ebp - 0x24]
mov cl, 1
mov eax, dword [ebx + 8]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x30]
cmp eax, 0xd1
je 0x403ec6
cmp eax, 0xc9
mov eax, dword [ebp - 0x20]
jne 0x40699a
mov dword [ebp - 0x20], eax
mov ebx, dword [ebp - 0x38]
mov eax, ebx
shr eax, 0x18
mov dword [ebp - 0x30], eax
mov eax, ebx
shr eax, 0x10
mov dword [ebp - 0x2c], eax
mov eax, dword [esi + 4]
shl eax, 7
mov edx, dword [ebp - 0x34]
or edx, eax
mov eax, dword [ebp + 0x10]
mov edi, dword [eax + 4]
mov eax, edx
mov dl, bh
jmp 0x404250
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x40], eax
mov eax, dword [esi + 4]
shl eax, 7
add dword [ebp - 0x34], eax
mov ebx, dword [ebp + 0x10]
jmp 0x40637e
mov esi, dword [ebp + 0xc]
jmp 0x403efc
mov edi, dword [ebp + 0x10]
mov eax, dword [edi]
mov esi, dword [ebp + 0xc]
or eax, dword [esi]
shr eax, 0x1c
mov edx, dword [ebp - 0x20]
or edx, dword [eax*4 + 0x791148]
mov dword [ebp - 0x20], edx
mov edx, dword [ebp + 0x18]
mov eax, dword [edx]
and eax, 7
shl eax, 9
or eax, ecx
cmp eax, 0x249
mov ebx, dword [ebp + 0x14]
mov edi, dword [ebp - 0x24]
je 0x40457e
cmp eax, 0x289
je 0x4045b8
cmp eax, 0x449
mov eax, dword [ebp - 0x20]
jne 0x404d6d
or eax, 0x8000000
mov ecx, ebx
mov dword [ebp - 0x20], eax
mov eax, ebx
jmp 0x4045ca
mov edx, dword [ebp + 0x18]
mov eax, dword [edx + 0x10]
and eax, 7
cmp eax, 3
jne case.default.0x401cd1
mov eax, dword [edx]
mov esi, dword [ebp + 0xc]
mov edx, dword [esi]
mov edi, dword [ebp + 0x10]
or edx, dword [edi]
mov ebx, dword [ebp + 0x14]
or edx, dword [ebx]
or edx, eax
and eax, 7
shl eax, 9
or eax, ecx
shr edx, 0x1c
mov ebx, dword [ebp - 0x20]
or ebx, dword [edx*4 + 0x791148]
mov edx, dword [ebp + 0x18]
mov ecx, dword [edx + 0x18]
cmp eax, 0x249
je 0x406308
cmp eax, 0x289
je 0x40634f
cmp eax, 0x449
mov edi, dword [ebp - 0x24]
jne 0x40699a
or ebx, 0x8000000
mov edx, ecx
mov ecx, dword [ebp + 0x10]
mov ecx, dword [ecx + 4]
shl ecx, 7
add ecx, dword [esi + 4]
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx + 4]
shl ecx, 4
and edx, 0xf
or edx, ecx
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x20], ebx
mov cl, 1
mov ebx, dword [ebp + 0x18]
jmp 0x40637e
mov dword [ebp - 0x3c], edx
cmp ecx, 0x11
je 0x4059c3
mov edx, ecx
cmp ecx, 0xa
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
je 0x405a02
cmp edx, 9
jne case.0x401cd1.11
mov ecx, dword [esi]
mov eax, ecx
and eax, 0xf07
cmp eax, 1
jne 0x406682
mov edi, esi
mov eax, dword [ebp - 0x54]
movzx edx, byte [eax*8 + 0x791c2f]
and ecx, 0xff000000
xor ebx, ebx
cmp ecx, 0x8000000
sete bl
shl ebx, 0x1b
or ebx, dword [edx*4 + 0x7953ec]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 4]
jmp 0x40707d
cmp ecx, 0xa
je 0x405a40
mov eax, ecx
cmp ecx, 0x49
mov esi, dword [ebp + 0xc]
je 0x405a76
cmp eax, 0x11
mov edi, dword [ebp - 0x24]
jne 0x40699a
jmp 0x4049f0
mov esi, dword [ebp + 0xc]
jmp 0x404099
mov edi, dword [ebp + 0x10]
mov eax, dword [edi]
mov esi, dword [ebp + 0xc]
or eax, dword [esi]
shr eax, 0x1c
mov edx, dword [ebp - 0x20]
or edx, dword [eax*4 + 0x791148]
mov dword [ebp - 0x20], edx
mov edx, dword [ebp + 0x18]
mov eax, dword [edx]
and eax, 7
shl eax, 9
or eax, ecx
cmp eax, 0x449
mov edi, dword [ebp - 0x24]
je 0x4045bc
cmp eax, 0x289
mov ebx, dword [ebp - 0x20]
je 0x4045ce
cmp eax, 0x249
jne 0x40699a
mov eax, dword [ebp + 0x10]
mov edx, dword [eax + 4]
shl edx, 7
add edx, dword [esi + 4]
mov eax, ebx
or eax, 0x8000000
test dword [ebp - 0x50], 0x100
mov edi, dword [ebp + 0x14]
mov ecx, edi
mov esi, dword [ebp + 0x18]
cmove ecx, esi
cmove ebx, eax
mov eax, esi
cmove eax, edi
mov esi, dword [eax + 4]
mov eax, edx
mov edx, esi
shl edx, 4
mov dword [ebp - 0x38], edx
mov edi, dword [ecx + 4]
mov ecx, esi
shr ecx, 4
mov dword [ebp - 0x44], ecx
mov ecx, esi
shr ecx, 0xc
mov dword [ebp - 0x2c], ecx
shr esi, 0x14
mov dword [ebp - 0x30], esi
mov cl, 1
jmp 0x40478d
cmp ecx, 1
jne case.default.0x401cd1
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
xor edi, edi
xor ecx, ecx
mov dword [ebp - 0x38], 0
jmp 0x4041a4
cmp ecx, 0x11
je 0x4059e1
jmp case.default.0x401cd1
cmp ecx, 0xa
jne case.default.0x401cd1
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x38], 0
xor ecx, ecx
mov dword [ebp - 0x40], 0
mov ebx, dword [ebp + 0xc]
jmp 0x40637b
cmp ecx, 0x49
jne case.default.0x401cd1
mov ebx, dword [ebp + 0x14]
mov ecx, dword [ebx + 4]
shl ecx, 7
mov eax, dword [ebp + 0xc]
add ecx, dword [eax + 4]
mov eax, dword [ebp + 0x10]
mov edi, dword [eax + 4]
mov eax, ecx
mov dword [ebp - 0x38], 0
xor ecx, ecx
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
mov ebx, dword [ebp - 0x20]
jmp 0x40478d
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x3c], ecx
jmp 0x4053b8
mov edx, dword [esi + 4]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x30], 0
jmp 0x4056b3
and ebx, 0x60001000
movzx eax, byte [ecx*8 + 0x791c2f]
mov eax, dword [eax*4 + 0x7953ec]
or ebx, eax
mov dword [ebp - 0x20], ebx
shr eax, 0x12
and eax, 7
mov ebx, edx
mov edx, dword [ebp + 0x14]
mov ecx, dword [edx + 8]
cmp ebx, 0xd1
je 0x405299
mov edx, ebx
cmp ebx, 0xc9
jne 0x40699a
mov edx, dword [esi + 4]
shl edx, 7
or edx, eax
mov eax, dword [ebp + 0x10]
mov edi, dword [eax + 4]
mov eax, edx
mov edx, ecx
shr edx, 0x10
mov dword [ebp - 0x2c], edx
mov edx, ecx
shr edx, 0x18
mov dword [ebp - 0x30], edx
mov edx, ecx
mov cl, 1
mov dword [ebp - 0x38], edx
mov dl, dh
mov dword [ebp - 0x44], edx
mov ebx, dword [ebp - 0x20]
jmp 0x40478d
mov esi, edx
jmp 0x404d6d
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp - 0x20]
add ebx, dword [eax + 4]
mov esi, dword [ebp - 0x48]
mov edx, dword [ebp + 0x18]
mov edi, dword [ebp - 0x24]
jmp 0x40564a
mov dword [ebp - 0x38], ecx
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
mov dword [ebp - 0x34], eax
mov cl, 1
mov ebx, esi
jmp 0x40637e
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebx]
mov edi, dword [ebx + 4]
mov edx, dword [ebp + 0xc]
or eax, dword [edx]
shr eax, 0x1c
mov eax, dword [eax*4 + 0x791148]
mov esi, dword [ebp + 0x10]
mov ecx, dword [esi]
shr ecx, 6
and ecx, 0x7c
mov ecx, dword [ecx + 0x791188]
cmp ecx, eax
cmova eax, ecx
or dword [ebp - 0x20], eax
shl edi, 7
add edi, dword [edx + 4]
mov dword [ebp - 0x34], edi
xor ecx, ecx
mov dword [ebp - 0x38], 0
jmp 0x40520e
mov edx, dword [esi + 4]
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x38], 0
jmp 0x405869
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
mov dword [ebp - 0x34], eax
jmp 0x4043f9
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
shl eax, 7
add eax, dword [esi + 4]
mov dword [ebp - 0x34], eax
jmp 0x4045ee
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 4]
jmp 0x405966
mov eax, dword [esi + 4]
shl eax, 7
add dword [ebp - 0x34], eax
jmp 0x4049f6
mov ebx, edi
mov edi, eax
mov edx, esi
mov esi, ebx
mov ebx, edx
mov eax, dword [edx]
cmp eax, 0x1000000
jae 0x405303
mov edx, 0x34
mov esi, ebx
mov eax, edi
jmp 0x40805d
mov eax, dword [esi]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
mov ebx, eax
shr eax, 0x18
mov edi, edx
shr edi, 0x18
cmp eax, edi
jne 0x405f39
mov esi, dword [esi + 4]
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x34], ecx
cmp eax, 1
jne 0x405fb8
mov edi, edx
and ebx, 0xff000fff
cmp ebx, 0x1000021
mov ebx, dword [ebp - 0x24]
jne 0x406f1b
mov eax, dword [ebp - 0x4c]
or eax, 0x80000000
add esi, 4
jmp 0x406f2b
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x34], ecx
mov ecx, eax
shr ecx, 0x18
mov edx, eax
shr edx, 0x16
and edx, 0x3c
or ebx, dword [edx + 0x79141c]
mov edx, ebx
mov dword [ebp - 0x28], 0
cmp ecx, 1
mov dword [ebp - 0x20], ebx
je 0x404f95
jmp 0x404400
movzx eax, byte [esi + 3]
shl eax, 0x18
xor ecx, ecx
cmp eax, 0x4000000
setne cl
lea eax, [ecx*4 + 0xd8]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x40], 0
jmp 0x40508e
cmp edx, 0x1000000
mov eax, dword [ebp + 0x14]
jae 0x405a7e
mov edx, 0x34
jmp 0x40805d
mov esi, dword [ebp + 0xc]
mov eax, dword [esi + 4]
mov dword [ebp - 0x34], eax
jmp 0x4050b6
cmp ecx, 0xa
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
mov ebx, eax
mov eax, dword [edi]
shr eax, 0x18
cmp eax, 1
mov edx, 0x1a
je 0x407a7e
movzx ecx, byte [ecx*8 + 0x791c2f]
mov ecx, dword [ecx*4 + 0x7953ec]
and eax, 0xf
or ecx, dword [eax*4 + 0x7913dc]
mov dword [ebp - 0x20], ecx
mov eax, dword [edi + 4]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x28], 0
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x3c], eax
jmp 0x4058a9
shl eax, 8
and edx, 0x1f00
or edx, eax
mov eax, dword [ebp - 0x20]
shl eax, 0x18
or eax, 0x78e0c4
xor eax, edx
mov edi, dword [ebp - 0x24]
mov dword [edi], eax
add edi, 4
mov dword [ebp - 0x2c], 0
mov eax, dword [ebp - 0x48]
xor ecx, ecx
jmp 0x404a9a
shr eax, 0x1c
mov edx, dword [ebp - 0x20]
or edx, dword [eax*4 + 0x791148]
mov dword [ebp - 0x20], edx
jmp case.0x401522.103
and edx, 0x60000000
movzx ecx, byte [ebx*8 + 0x791c2f]
or edx, dword [ecx*4 + 0x7953ec]
mov ecx, dword [ebp + 0x10]
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x20], edx
jmp 0x40456e
mov eax, dword [ebp - 0x20]
or eax, 0x8000000
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 4]
shl edx, 7
mov ecx, dword [ebp + 0xc]
add edx, dword [ecx + 4]
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x20], eax
xor ecx, ecx
mov ebx, dword [ebp + 0x14]
jmp 0x405a6a
and ebx, 0x60000000
movzx ecx, byte [edx*8 + 0x791c2f]
or ebx, dword [ecx*4 + 0x7953ec]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 4]
shl edx, 7
mov ecx, dword [ebp + 0x14]
add edx, dword [ecx + 4]
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x20], ebx
xor ecx, ecx
mov ebx, esi
mov dword [ebp - 0x40], 0
jmp 0x40637e
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
shl eax, 7
add eax, dword [esi + 4]
mov edx, dword [edx + 4]
mov ecx, edx
shl ecx, 4
mov dword [ebp - 0x38], ecx
mov ecx, edx
shr ecx, 4
mov dword [ebp - 0x44], ecx
mov ecx, edx
shr ecx, 0xc
mov dword [ebp - 0x2c], ecx
shr edx, 0x14
mov dword [ebp - 0x30], edx
mov edi, dword [ebx + 4]
mov cl, 1
mov ebx, dword [ebp - 0x20]
jmp 0x40478d
mov eax, edx
jmp 0x4045d6
mov eax, dword [ebp - 0x20]
or eax, 0x8000000
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0x14]
mov ebx, edx
jmp 0x4045d6
mov dword [ebp - 0x20], ebx
mov eax, edx
mov ebx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov ecx, dword [ecx + 4]
shl ecx, 7
add ecx, dword [esi + 4]
mov dword [ebp - 0x34], ecx
mov eax, dword [eax + 4]
shl eax, 4
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x40], 0
mov cl, 1
jmp 0x40637e
cmp ecx, 9
je 0x405f46
cmp ecx, 0x11
jne case.0x401522.13
mov edi, dword [ebp + 0x10]
movzx ecx, byte [edi + 3]
shl ecx, 0x18
mov esi, dword [ebp + 0xc]
mov eax, dword [esi]
cmp ecx, 0x1000000
jne 0x406bc4
mov edi, esi
jmp 0x404657
cmp ecx, 8
jb case.0x401522.12
cmp ecx, 0x48
mov edi, ecx
jg 0x405347
cmp edi, 9
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
je 0x40676f
cmp edi, 0x11
jne case.0x401cd1.11
mov edx, esi
mov edi, esi
mov eax, dword [esi]
mov ebx, dword [ebp - 0x24]
and eax, 0xff000fff
cmp eax, 0x2000029
mov edx, 0x1a
jne 0x407171
mov dword [ebp - 0x28], 0
cmp dword [edi + 4], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x40], 0
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x3c], eax
mov esi, edi
jmp 0x406bb6
cmp ecx, 2
je 0x4046fe
cmp ecx, 1
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
mov ecx, esi
mov eax, dword [esi]
mov edi, dword [esi + 4]
mov ecx, eax
shr ecx, 0x18
mov edx, eax
shr edx, 0x16
and edx, 0x3c
mov ebx, dword [ebp - 0x20]
or ebx, dword [edx + 0x79141c]
mov dword [ebp - 0x28], 0
cmp ecx, 1
mov dword [ebp - 0x20], ebx
jne 0x40708f
and eax, 0xff000fff
cmp eax, 0x1000021
mov edx, dword [ebp - 0x24]
jne 0x406018
or dword [ebp - 0x4c], 0x80000000
add edi, 4
mov dword [ebp - 0x2c], edi
jmp 0x406029
mov edi, dword [ebp + 0xc]
mov eax, dword [edi]
cmp eax, 0x1000000
mov ebx, dword [ebp + 0x14]
jb 0x404c46
shr eax, 0x16
and eax, 0x3c
mov edx, dword [ebp - 0x20]
or edx, dword [eax + 0x79141c]
mov dword [ebp - 0x20], edx
jmp 0x407788
mov ebx, dword [ebp - 0x24]
mov edx, 0x1a
mov eax, dword [ebp + 0x14]
jmp 0x402db1
mov ebx, dword [ebp - 0x24]
mov edx, 0x1a
mov eax, edi
jmp 0x402db1
mov ecx, esi
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp - 0x24]
cmp ecx, 0x11
je 0x4049f0
cmp ecx, 9
mov ebx, dword [ebp - 0x20]
jne 0x40699a
mov edx, dword [esi + 4]
mov eax, dword [ebp + 0x10]
mov edi, dword [eax + 4]
mov eax, edx
mov dword [ebp - 0x38], 0
xor ecx, ecx
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x34], eax
shl eax, 4
and eax, 0xf980
mov dword [ebp - 0x3c], edi
mov esi, edi
and esi, 0x18
lea eax, [eax + esi*4]
mov esi, ebx
and esi, 0x60001f00
mov edx, ebx
mov ebx, dword [ebp - 0x50]
mov edi, ebx
and edi, 0x1000
or edi, esi
shr edi, 8
or edi, eax
mov eax, dword [ebp - 0x48]
mov esi, dword [eax + 0x4c]
shl esi, 0x10
or esi, edi
test ebx, 0x8c0000
je 0x404837
mov eax, ebx
and eax, 0x800000
or eax, esi
test ebx, 0xc0000
je 0x40483f
and esi, 0x600000
cmp esi, 0x400000
je 0x404802
mov esi, dword [ebp - 0x58]
test byte [esi*8 + 0x79560c], 0x70
jne 0x40648e
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x20], edx
mov esi, dword [ebp - 0x58]
mov ebx, dword [esi*8 + 0x79560c]
test dword [ebp - 0x50], 0x40000
mov esi, dword [ebp + 0xc]
jne 0x4049cb
test bl, 8
je 0x406491
and eax, 0xff8fffff
or eax, 0x100000
jmp 0x404845
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x20], edx
jmp 0x404847
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x20], edx
mov esi, eax
mov edx, dword [ebp - 0x34]
and edx, 7
mov edi, esi
and edi, 0xd78150
mov ecx, dword [ebp - 0x50]
mov ebx, ecx
and ebx, 0xc00
mov eax, esi
or eax, 0x10
or ebx, edi
cmovne eax, esi
mov edi, dword [ebp - 0x58]
test byte [edi*8 + 0x79560b], 1
cmove eax, esi
test eax, 0xd78150
je 0x404907
mov esi, eax
shr esi, 4
and esi, 0x10
mov edi, eax
and eax, 0xff78ef
or eax, esi
shl edi, 4
and edi, 0x80000
or eax, edi
shl eax, 8
mov ebx, dword [ebp - 0x20]
mov esi, ebx
shr esi, 4
and esi, 0x800000
or esi, eax
mov eax, ebx
shr eax, 5
and eax, 0x830000
or eax, esi
xor eax, 0x87cf062
mov esi, dword [ebp - 0x24]
mov dword [esi], eax
mov byte [esi + 4], bl
mov eax, dword [ebp - 0x3c]
and eax, 7
lea eax, [eax + edx*8]
or al, 0xc0
mov byte [esi + 5], al
mov ecx, dword [ebp - 0x28]
test cl, cl
je 0x40498f
mov eax, dword [ebp - 0x38]
mov byte [esi + 6], al
cmp cl, 1
mov eax, dword [ebp - 0x48]
jne 0x4049a5
add esi, 7
mov dword [ebp - 0x2c], 0
mov cl, 1
jmp 0x4049c1
mov ebx, dword [ebp - 0x20]
mov esi, ebx
shr esi, 0xc
and esi, 0x8000
mov edi, ebx
shr edi, 0xd
shl ecx, 0x15
or ecx, edi
mov edi, eax
shr edi, 0xb
and edi, 0x400
and ecx, 0x80000300
or ecx, esi
or ecx, edi
or ecx, eax
test ecx, 0x8000803e
je 0x404a0e
and eax, 0xf
shl ebx, 0x18
or ebx, dword [eax*4 + 0x791034]
movzx eax, cx
shl eax, 8
xor eax, ebx
mov edi, dword [ebp - 0x24]
mov dword [edi], eax
mov eax, dword [ebp - 0x3c]
and eax, 7
lea eax, [eax + edx*8]
or al, 0xc0
mov byte [edi + 4], al
mov ecx, dword [ebp - 0x28]
test cl, cl
mov eax, dword [ebp - 0x48]
je 0x404a54
mov edx, dword [ebp - 0x38]
mov byte [edi + 5], dl
cmp cl, 1
jne 0x404a59
add edi, 6
jmp 0x404a49
add esi, 6
mov dword [ebp - 0x2c], 0
xor ecx, ecx
mov eax, dword [ebp - 0x48]
mov edi, esi
jmp 0x404a9a
mov edx, dword [ebp - 0x44]
mov byte [esi + 7], dl
mov edx, dword [ebp - 0x2c]
mov byte [esi + 8], dl
mov edx, dword [ebp - 0x30]
mov byte [esi + 9], dl
add esi, 0xa
mov dword [ebp - 0x2c], 0
mov edx, dword [ebp + 0x18]
mov edi, esi
jmp 0x407ee1
test bl, 4
je 0x406491
and eax, 0xff8fffff
mov ebx, dword [ebp - 0x50]
and ebx, 0x600000
lea esi, [ebx + eax]
add esi, 0x100000
jmp 0x404847
mov eax, dword [esi + 4]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x38], 0
xor ecx, ecx
mov dword [ebp - 0x40], 0
mov ebx, dword [ebp + 0x10]
jmp 0x40637e
mov eax, ecx
shr eax, 8
xor eax, ecx
mov edi, dword [ebp - 0x24]
mov byte [edi], 0xc5
xor al, 0xf9
mov byte [edi + 1], al
mov byte [edi + 2], bl
mov eax, dword [ebp - 0x3c]
and eax, 7
lea eax, [eax + edx*8]
or al, 0xc0
mov byte [edi + 3], al
mov ecx, dword [ebp - 0x28]
test cl, cl
mov eax, dword [ebp - 0x48]
je 0x404a70
mov edx, dword [ebp - 0x38]
mov byte [edi + 4], dl
cmp cl, 1
jne 0x404a7e
add edi, 5
mov dword [ebp - 0x2c], 0
mov cl, 1
jmp 0x404a9a
add edi, 5
jmp 0x404a73
mov edx, dword [ebp - 0x44]
mov byte [edi + 6], dl
mov edx, dword [ebp - 0x2c]
mov byte [edi + 7], dl
mov edx, dword [ebp - 0x30]
mov byte [edi + 8], dl
add edi, 9
jmp 0x404a93
add edi, 4
mov dword [ebp - 0x2c], 0
xor ecx, ecx
jmp 0x404a9a
mov edx, dword [ebp - 0x44]
mov byte [edi + 5], dl
mov edx, dword [ebp - 0x2c]
mov byte [edi + 6], dl
mov edx, dword [ebp - 0x30]
mov byte [edi + 7], dl
add edi, 8
mov dword [ebp - 0x2c], 0
mov edx, dword [ebp + 0x18]
jmp 0x407ee1
mov edx, 0x1d
mov eax, ebx
jmp 0x40805d
mov esi, dword [ebp + 0xc]
cmp dword [esi + 4], 0
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
mov eax, dword [ebp + 0x10]
movzx eax, byte [eax + 8]
mov dword [ebp - 0x30], eax
mov al, 1
mov dword [ebp - 0x28], eax
jmp 0x4053bb
mov eax, 0xff000fff
mov esi, dword [ebp + 0xc]
and eax, dword [esi]
cmp eax, 0x4000031
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
mov edx, dword [esi + 4]
mov dword [ebp - 0x2c], edx
jmp 0x402a50
mov esi, dword [ebp + 0xc]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [ebp - 0x34], ecx
shr eax, 0x18
cmp eax, 2
mov edx, dword [ebp + 0x10]
jne 0x405f69
mov ebx, dword [ebp - 0x24]
mov byte [ebx], 0x66
inc ebx
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], edx
jmp 0x4077a3
mov edi, dword [ebp + 0x10]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [ebp - 0x34], ecx
shr eax, 0x16
and eax, 0x3c
mov ecx, dword [ebp - 0x20]
or ecx, dword [eax + 0x7913dc]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x38], 0
jmp 0x405084
mov eax, dword [edi + 8]
mov dword [ebp - 0x38], eax
movzx edx, byte [edx*8 + 0x791c2f]
mov eax, dword [esi]
mov esi, eax
shr esi, 0x16
and esi, 0x3c
mov esi, dword [esi + 0x7913dc]
or esi, dword [edx*4 + 0x7953ec]
mov dword [ebp - 0x20], esi
mov edx, esi
shr edx, 0x12
and edx, 7
mov dword [ebp - 0x34], edx
cmp ebx, 0x1a
mov edx, ebx
mov ebx, dword [ebp - 0x24]
je 0x40683d
cmp edx, 0x19
jne 0x404bc2
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
mov dword [ebp - 0x2c], eax
mov al, 1
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x30], eax
jmp 0x4056b6
mov esi, dword [ebp + 0xc]
jmp 0x406a33
mov dword [ebp - 0x34], 0
mov ebx, 0xe8
jmp 0x404c60
mov edi, dword [ebp + 0x10]
mov eax, dword [edi]
mov ecx, eax
shr ecx, 0x18
mov ebx, dword [ebp + 0x14]
je 0x404c48
cmp ecx, 2
jne 0x406850
mov eax, dword [ebp - 0x24]
mov byte [eax], 0x66
inc eax
mov dword [ebp - 0x24], eax
mov edx, dword [ebp + 0x10]
mov eax, dword [edx]
mov ebx, dword [ebp - 0x20]
jmp 0x406856
mov esi, dword [ebp + 0xc]
cmp dword [esi + 4], 0
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
cmp dword [edi + 4], 2
mov edx, 0x1a
jne 0x40805d
mov eax, dword [esi]
jmp 0x404e82
mov edi, dword [ebp + 0xc]
mov eax, dword [edi]
cmp eax, 0x1000000
mov ebx, dword [ebp + 0x14]
jae 0x405f7c
mov esi, edi
mov edx, 0x34
mov eax, ebx
jmp 0x40805d
mov dword [ebp - 0x34], 0
mov ebx, 0xe9
mov edx, esi
mov edi, dword [ebp - 0x24]
mov ecx, ebx
or ebx, dword [ebp - 0x4c]
cmp ebx, 0x80ffffff
ja 0x4073c1
shr ebx, 0x18
and ebx, 0x7f
mov eax, ebx
or al, 0x40
mov byte [edi], al
cmp ebx, 1
sbb edi, 0xffffffff
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x24], edi
sub edi, dword [eax + 0x6c]
mov eax, dword [ebp - 0x54]
movzx eax, byte [eax*8 + 0x791c2f]
mov eax, dword [eax*4 + 0x7953ec]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x20], ecx
mov esi, ecx
and esi, 0x1f00
xor eax, eax
cmp esi, 0x100
sete al
cmp dword [ebp - 0x34], 1
sbb eax, 0
add eax, 6
mov ecx, dword [edx]
and ecx, 7
cmp ecx, 3
je 0x404d79
cmp ecx, 4
mov ebx, dword [ebp + 0x14]
jne 0x404d6a
mov dword [ebp - 0x3c], esi
mov ecx, dword [ebp - 0x48]
mov ecx, dword [ecx + 0x2c]
mov edx, dword [edx + 4]
cmp dword [ecx + 0xa0], edx
jbe 0x407de2
mov ecx, dword [ecx + 0x9c]
mov ecx, dword [ecx + edx*4]
test ecx, ecx
je 0x407de2
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ecx + 0x20]
mov edx, dword [ebp - 0x48]
cmp ecx, dword [edx + 0x68]
je 0x406f79
mov ecx, dword [ebp - 0x20]
test ecx, ecx
sete al
mov edx, dword [ebp - 0x50]
and edx, 0x10
shr edx, 4
or dl, al
mov ebx, dword [ebp - 0x58]
test ebx, ebx
mov edi, dword [ebp - 0x24]
mov esi, dword [ebp - 0x3c]
je 0x4071d1
test dl, dl
mov eax, dword [ebp - 0x34]
je 0x4071e8
mov byte [edi], bl
inc edi
mov ebx, 0xffffffff
mov cl, 1
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x28], 0
mov edx, dword [ebp - 0x2c]
jmp 0x408152
mov esi, dword [ebp + 0xc]
mov edx, 0x1a
mov eax, ebx
jmp 0x40805d
mov dword [ebp - 0x3c], esi
mov ecx, dword [ebp - 0x48]
mov ecx, dword [ecx + 0x2c]
mov esi, dword [ecx + 0x28]
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x30], ecx
mov esi, dword [ecx + 0x2c]
mov ecx, dword [edx + 8]
mov dword [ebp - 0x28], ecx
mov ecx, dword [edx + 0xc]
mov dword [ebp - 0x38], ecx
mov ecx, esi
mov esi, dword [ebp - 0x2c]
mov edx, esi
and edx, ecx
cmp edx, 0xffffffff
je 0x404df3
xor edx, edx
add edi, eax
setb dl
add edi, esi
adc edx, ecx
mov ecx, dword [ebp - 0x28]
sub ecx, edi
mov esi, dword [ebp - 0x38]
sbb esi, edx
mov edx, ecx
add edx, 0x80000000
adc esi, 0
mov edx, dword [ebp - 0x48]
test byte [edx + 0x38], 1
jne 0x406f83
test esi, esi
mov edx, dword [ebp - 0x50]
je 0x406f86
cmp dword [ebp - 0x54], 0x12f
je 0x404df3
cmp dword [ebp - 0x54], 0x3b
jne 0x407013
lea eax, [ebp - 0x5c]
mov ecx, dword [ebp - 0x30]
push 4
push eax
call sym.Morpheme32.exe_public:_unsigned_int___thiscall_asmjit::_abi_1_10::CodeHolder::newRelocEntry_struct_asmjit::_abi_1_10::RelocEntry____enum_asmjit::_abi_1_10::RelocType_
test eax, eax
je 0x4066ea
mov esi, dword [ebp + 0xc]
jmp 0x408056
mov ecx, dword [ebp - 0x48]
test byte [ecx + 0x38], 1
mov edi, dword [ebp - 0x54]
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
je case.0x401cd1.11
mov eax, dword [esi + 8]
xor ecx, ecx
mov edx, 0xffff
cmp edx, eax
sbb ecx, dword [esi + 0xc]
jl 0x404e49
mov ecx, dword [ebp + 0x10]
mov esi, dword [ecx + 0xc]
test esi, esi
jle 0x4072c1
mov esi, dword [ebp + 0xc]
mov edx, 0x32
mov eax, dword [ebp + 0x14]
jmp 0x40805d
mov esi, dword [ebp + 0xc]
jmp 0x405855
mov esi, dword [ebp + 0xc]
cmp dword [esi + 4], 2
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
jne case.0x401cd1.11
cmp dword [edi + 4], 0
mov edx, 0x1a
jne 0x40805d
mov eax, dword [edi]
shr eax, 0x18
xor ecx, ecx
cmp eax, 1
setne cl
mov edx, dword [ebp - 0x20]
add edx, ecx
xor ecx, ecx
cmp eax, 2
sete cl
shl ecx, 0x15
or edx, ecx
mov ecx, edx
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x3c], 0
mov edi, dword [ebp - 0x24]
jmp 0x4053c1
mov esi, dword [ebp + 0xc]
mov edi, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov cl, 2
mov dword [ebp - 0x28], ecx
mov edx, edi
or edx, eax
je 0x4066b4
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x3c], eax
jmp 0x4053bb
mov edi, dword [ebp + 0x10]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [ebp - 0x34], ecx
shr eax, 0x16
and eax, 0x3c
mov ecx, dword [ebp - 0x20]
or ecx, dword [eax + 0x7913dc]
mov dword [ebp - 0x20], ecx
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebx + 8]
mov dword [ebp - 0x38], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x40], eax
jmp 0x405197
mov ebx, dword [ebp - 0x20]
inc ebx
cmp edi, 0x4a
je 0x406887
cmp edi, 0x49
mov edx, 0x1a
jne 0x40805d
cmp dword [eax + 4], 1
jne 0x40805d
mov eax, dword [esi]
shr eax, 0x16
and eax, 0x3c
or ebx, dword [eax + 0x7913dc]
mov dword [ebp - 0x20], ebx
mov eax, dword [esi + 4]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
mov dword [ebp - 0x34], eax
jmp 0x402d54
mov edi, dword [ebp + 0x10]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [ebp - 0x34], ecx
mov ecx, eax
shr ecx, 0x18
mov edx, eax
shr edx, 0x16
and edx, 0x3c
mov esi, dword [ebp - 0x20]
or esi, dword [edx + 0x79141c]
mov edx, esi
mov dword [ebp - 0x28], 0
cmp ecx, 1
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x20], edx
jne 0x404400
and eax, 0xff000fff
cmp eax, 0x1000021
mov ebx, dword [ebp - 0x24]
jne 0x405b29
or dword [ebp - 0x4c], 0x80000000
add dword [ebp - 0x34], 4
jmp 0x405b38
movzx eax, byte [ecx*8 + 0x791c2f]
mov eax, dword [eax*4 + 0x7953ec]
mov edi, eax
shr eax, 0x12
and eax, 7
cmp edx, 0x1a
mov ebx, dword [ebp - 0x24]
je 0x4068d5
cmp edx, 0x19
jne 0x406a33
mov dword [ebp - 0x34], eax
mov ecx, dword [esi]
mov esi, dword [esi + 4]
mov eax, ecx
shr eax, 0x18
mov edx, ecx
shr edx, 0x16
and edx, 0x3c
cmp eax, 1
mov dword [ebp - 0x24], ebx
jne 0x4070cd
and ecx, 0xff000fff
cmp ecx, 0x1000021
jne 0x407578
or dword [ebp - 0x4c], 0x80000000
add esi, 4
jmp 0x407588
mov ecx, dword [ebp - 0x54]
cmp ecx, 0xef
mov edi, dword [ebp - 0x48]
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
je 0x406bf4
cmp ecx, 0xec
je 0x406bff
mov ebx, edi
cmp ecx, 0xce
mov edi, dword [ebp - 0x24]
jne case.0x401cd1.11
mov ecx, esi
mov esi, ebx
mov ebx, 0x364c0
add ebx, dword [ecx + 4]
jmp 0x40564a
and dword [ebp - 0x20], 0xffff1fff
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x40], 0
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x3c], esi
jmp 0x4077a0
mov eax, 0xff000fff
mov esi, dword [ebp + 0xc]
and eax, dword [esi]
xor ecx, ecx
cmp eax, 0x10000161
sete cl
shl ecx, 0x15
or dword [ebp - 0x20], ecx
mov ecx, dword [esi + 4]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x40], 0
mov edi, dword [ebp + 0x10]
jmp 0x40779d
mov dword [ebp - 0x38], ecx
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x40], eax
mov esi, dword [ebp + 0xc]
jmp 0x405104
mov dword [ebp - 0x38], ecx
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x40], eax
mov eax, 0xff000fff
mov esi, dword [ebp + 0xc]
and eax, dword [esi]
xor ecx, ecx
cmp eax, 0x10000161
sete cl
shl ecx, 0x15
or dword [ebp - 0x20], ecx
mov eax, dword [esi + 4]
mov dword [ebp - 0x34], eax
mov al, 1
mov dword [ebp - 0x28], eax
mov edi, dword [ebp + 0x10]
jmp 0x40779d
mov eax, 0xff000fff
mov edi, dword [ebp + 0x10]
and eax, dword [edi]
mov ecx, dword [ebp - 0x54]
movzx ecx, byte [ecx*8 + 0x791c2f]
xor edx, edx
cmp eax, 0x10000161
sete dl
shl edx, 0x15
or edx, dword [ecx*4 + 0x7953ec]
mov dword [ebp - 0x20], edx
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebx + 8]
mov dword [ebp - 0x38], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x40], eax
mov eax, dword [edi + 4]
mov dword [ebp - 0x34], eax
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x3c], esi
mov al, 1
mov dword [ebp - 0x28], eax
jmp 0x4077a0
mov eax, 0xff000fff
mov edi, dword [ebp + 0x10]
and eax, dword [edi]
xor ecx, ecx
cmp eax, 0x10000161
sete cl
shl ecx, 0x15
or dword [ebp - 0x20], ecx
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebx + 8]
mov dword [ebp - 0x38], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x40], eax
mov eax, dword [edi + 4]
mov dword [ebp - 0x34], eax
mov al, 1
mov dword [ebp - 0x28], eax
jmp 0x40508b
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x34], eax
mov edi, dword [ebp + 0x10]
mov eax, dword [edi + 4]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], 0
jmp 0x4056b3
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x28], 0
jmp 0x408701
mov ecx, edx
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x40], 0
mov al, 1
mov dword [ebp - 0x28], eax
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x20], 0x10f
jmp 0x4077a0
mov dword [ebp - 0x20], edx
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x38], 0
xor ecx, ecx
mov dword [ebp - 0x40], 0
mov ebx, esi
jmp 0x40637b
mov ecx, esi
mov dword [ebp - 0x38], esi
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x40], eax
mov ebx, dword [ebp + 0x14]
mov ecx, dword [ebx + 4]
shl ecx, 7
mov eax, dword [ebp + 0xc]
add ecx, dword [eax + 4]
mov dword [ebp - 0x34], ecx
mov cl, 1
jmp 0x4059fa
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 4]
shl ecx, 7
mov eax, dword [ebp + 0xc]
add ecx, dword [eax + 4]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x38], 0
xor ecx, ecx
mov dword [ebp - 0x40], 0
jmp 0x406378
movzx eax, byte [ecx*8 + 0x791c2f]
mov ebx, dword [eax*4 + 0x7953ec]
cmp edx, 0xa
mov edi, dword [ebp - 0x24]
je 0x4068f7
cmp edx, 9
jne 0x40699a
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
mov edi, dword [esi + 4]
jmp 0x40476f
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebp + 0x14]
mov ecx, dword [ecx + 0xc]
mov dword [ebp - 0x40], ecx
mov ecx, dword [esi + 4]
shl ecx, 7
or ecx, eax
mov dword [ebp - 0x34], ecx
jmp 0x405b5d
mov edx, edi
cmp eax, 0x2000000
mov edi, dword [ebp - 0x24]
jb 0x406a31
mov ecx, esi
movzx ecx, byte [esi*8 + 0x791c2f]
and eax, 0xff000000
xor ebx, ebx
cmp eax, 0x2000000
sete bl
shl ebx, 0x15
or ebx, dword [ecx*4 + 0x7953ec]
mov eax, dword [edx + 4]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x30], 0
xor ecx, ecx
mov dword [ebp - 0x58], 0
jmp 0x407393
shr eax, 0x18
mov ecx, 0x200000
cmp eax, 2
je 0x40532a
xor ecx, ecx
test byte [esi + 0x38], 1
sete cl
lea edx, [ecx*4 + 4]
xor ecx, ecx
cmp eax, edx
jne 0x406f47
or dword [ebp - 0x20], ecx
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x40], 0
jmp 0x407169
cmp edi, 0x49
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
je 0x4067d3
cmp edi, 0x89
mov edi, dword [ebp - 0x24]
mov edx, dword [ebp - 0x20]
jne case.0x401cd1.11
mov dword [ebp - 0x24], edi
mov eax, esi
mov eax, dword [esi]
shr eax, 0x18
mov ecx, dword [ebp + 0x10]
movzx ecx, byte [ecx + 3]
cmp eax, ecx
jne 0x406a33
and eax, 0xf
or edx, dword [eax*4 + 0x79141c]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x40], 0
mov eax, dword [ebp + 0x14]
jmp 0x405873
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x3c], edi
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
mov ebx, esi
mov esi, dword [ebp - 0x48]
mov edx, ecx
shr edx, 0x15
and edx, 7
movzx eax, byte [edx + 0x7911d0]
mov byte [edi], al
mov eax, ecx
or eax, dword [ebp - 0x4c]
cmp eax, 0x80ffffff
jbe 0x4053ea
mov esi, ebx
jmp 0x4056f4
shr eax, 0x18
cmp edx, 1
sbb edi, 0xffffffff
and eax, 0x7f
mov edx, eax
or dl, 0x40
mov byte [edi], dl
cmp eax, 1
sbb edi, 0xffffffff
mov eax, ecx
shr eax, 6
and eax, 0x7c
movzx edx, byte [eax + 0x7911d8]
mov dh, byte [eax + 0x7911d9]
mov byte [edi], dh
cmp dl, 1
sbb edi, 0xffffffff
cmp dl, 2
movzx eax, byte [eax + 0x7911da]
mov byte [edi], al
sbb edi, 0xffffffff
mov byte [edi], cl
mov ecx, dword [ebp - 0x28]
cmp cl, 4
jb 0x40544e
mov eax, dword [ebp - 0x30]
mov dword [edi + 1], eax
add edi, 5
mov eax, ecx
add al, 0xfc
mov ebx, dword [ebp - 0x3c]
mov edx, dword [ebp + 0x18]
jmp 0x405457
inc edi
mov eax, ecx
mov edx, dword [ebp + 0x18]
mov ebx, dword [ebp - 0x30]
test al, al
je 0x405670
mov byte [edi], bl
cmp al, 1
jne 0x40546b
inc edi
jmp 0x405670
mov byte [edi + 1], bh
cmp al, 2
jne 0x40547a
add edi, 2
jmp 0x405670
mov edx, ebx
shr edx, 0x10
mov byte [edi + 2], dl
cmp al, 3
jne 0x405495
add edi, 3
mov dword [ebp - 0x2c], 0
jmp 0x408417
shr ebx, 0x18
mov byte [edi + 3], bl
add edi, 4
mov dword [ebp - 0x2c], 0
jmp 0x408417
mov eax, dword [esi]
shr eax, 0x16
and eax, 0x3c
mov ecx, 0x11f
or ecx, dword [eax + 0x7913dc]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x38], 0
jmp 0x4058a6
mov esi, ebx
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
mov dword [ebp - 0x34], edx
shr eax, 0x16
and eax, 0x3c
mov edx, 0x11f
or edx, dword [eax + 0x7913dc]
cmp edi, 0xa
je 0x406c13
cmp edi, 9
jne 0x406c36
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x30], 0
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0x20], edx
jmp 0x4056b6
mov esi, edx
jmp 0x406f49
mov eax, dword [ebp + 0x14]
jmp 0x406c38
mov edi, dword [ebp + 0x10]
mov eax, dword [edi]
mov ecx, eax
and ecx, 0xf00
or ecx, dword [edi + 4]
mov ecx, dword [ebp - 0x48]
mov esi, dword [ebp + 0xc]
jne 0x406a33
mov edx, dword [esi]
test edx, 0x1ff8
jne 0x40710f
shr eax, 0x16
and eax, 0x3c
mov ebx, 0xa2
or ebx, dword [eax + 0x79141c]
mov eax, dword [esi + 0xc]
test dl, 0xf8
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x20], ebx
je 0x408356
sar eax, 0x1f
jmp 0x40835c
mov eax, 0xff000fff
and eax, dword [esi]
cmp eax, 0x8000039
mov edi, dword [ebp - 0x24]
mov edx, 0x1a
jne 0x4055c7
mov eax, dword [esi + 4]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 8]
mov dword [ebp - 0x30], ecx
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x58], eax
mov ebx, 0x80000b8
mov cl, 8
jmp 0x407393
mov eax, dword [ebp + 0x14]
jmp 0x40805d
mov esi, dword [ebp + 0xc]
mov ecx, dword [esi + 8]
mov edi, dword [esi + 0xc]
movsx eax, cl
mov edx, eax
mov dword [ebp - 0x30], ecx
xor edx, ecx
sar eax, 0x1f
mov dword [ebp - 0x3c], edi
xor eax, edi
or eax, edx
jne 0x4066db
xor edx, edx
xor eax, eax
test byte [ebp - 0x50], 0x20
sete dl
lea ecx, [edx + edx + 0x68]
setne al
lea eax, [eax + eax*2]
inc eax
mov dword [ebp - 0x28], eax
jmp 0x404eb6
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
jmp 0x406053
mov eax, edx
movzx eax, byte [edx*8 + 0x791c2f]
jmp 0x405885
mov eax, 1
mov esi, dword [ebp - 0x48]
mov edi, dword [ebp - 0x24]
shr edx, 0xa
movzx ecx, dl
lea ebx, [eax + ecx]
add ebx, 0x36000
mov edx, dword [ebp + 0x18]
mov eax, ebx
shr eax, 0x15
and eax, 7
movzx ecx, byte [eax + 0x7911d0]
mov byte [edi], cl
cmp eax, 1
sbb edi, 0xffffffff
mov eax, ebx
shr eax, 0xa
mov byte [edi], al
mov byte [edi + 1], bl
add edi, 2
xor ecx, ecx
mov dword [ebp - 0x2c], 0
mov eax, esi
jmp 0x407ee1
mov eax, dword [ebp - 0x54]
movzx eax, byte [eax*8 + 0x791c2f]
mov eax, dword [eax*4 + 0x7953ec]
mov dword [ebp - 0x20], eax
shr eax, 0x12
and eax, 7
mov dword [ebp - 0x34], eax
mov edi, dword [ebp + 0x10]
mov eax, dword [edi + 8]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
mov dword [ebp - 0x2c], eax
mov al, 1
mov dword [ebp - 0x28], eax
mov ebx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x20]
mov eax, edi
shr eax, 0x15
and eax, 7
movzx edx, byte [eax + 0x7911d0]
mov ecx, ebx
mov byte [ebx], dl
mov ebx, dword [ebp - 0x34]
mov esi, ebx
shr esi, 1
and esi, 4
mov edx, dword [ebp - 0x2c]
shr edx, 3
and edx, 1
or edx, esi
or edi, dword [ebp - 0x4c]
shr edi, 0x18
or edx, edi
cmp edx, 0x80
jbe 0x405701
mov esi, dword [ebp + 0xc]
mov edx, 0x25
mov eax, dword [ebp + 0x14]
jmp 0x40805d
cmp eax, 1
mov edi, ecx
sbb edi, 0xffffffff
and edx, 0x7f
mov eax, edx
or al, 0x40
cmp edx, 1
mov byte [edi], al
sbb edi, 0xffffffff
mov ecx, dword [ebp - 0x20]
mov eax, ecx
shr eax, 6
and eax, 0x7c
movzx edx, byte [eax + 0x7911d8]
mov dh, byte [eax + 0x7911d9]
mov byte [edi], dh
mov esi, dword [ebp - 0x2c]
and esi, 7
cmp dl, 1
sbb edi, 0xffffffff
cmp dl, 2
movzx eax, byte [eax + 0x7911da]
mov byte [edi], al
sbb edi, 0xffffffff
mov byte [edi], cl
lea eax, [esi + ebx*8]
or al, 0xc0
mov byte [edi + 1], al
mov ebx, dword [ebp - 0x28]
cmp bl, 4
jb 0x40577c
mov eax, dword [ebp - 0x30]
mov dword [edi + 2], eax
add edi, 6
mov dword [ebp - 0x2c], 0
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp - 0x48]
mov cl, 4
jmp 0x407ee1
test bl, bl
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp - 0x48]
je 0x4057a2
mov ecx, dword [ebp - 0x30]
mov byte [edi + 2], cl
cmp bl, 1
jne 0x4057b3
add edi, 3
mov dword [ebp - 0x2c], 0
mov cl, 1
jmp 0x407ee1
add edi, 2
mov dword [ebp - 0x2c], 0
xor ecx, ecx
jmp 0x407ee1
mov byte [edi + 3], ch
cmp bl, 2
jne 0x4057cc
add edi, 4
mov dword [ebp - 0x2c], 0
mov cl, 2
jmp 0x407ee1
shr ecx, 0x10
mov byte [edi + 4], cl
add edi, 5
mov dword [ebp - 0x2c], 0
mov cl, 3
jmp 0x407ee1
mov edx, dword [esi + 4]
mov dword [ebp - 0x34], edx
jmp 0x40585b
mov eax, dword [ebp - 0x54]
movzx eax, byte [eax*8 + 0x791c2f]
mov esi, dword [eax*4 + 0x7953ec]
mov eax, esi
shr eax, 0x12
and eax, 7
mov dword [ebp - 0x34], eax
mov ecx, 0xff000fff
mov edx, dword [ebp + 0xc]
and ecx, dword [edx]
xor eax, eax
cmp ecx, 0x10000161
sete al
shl eax, 0x15
or eax, esi
mov dword [ebp - 0x20], eax
mov edi, dword [ebp + 0x10]
mov ecx, dword [edi + 8]
mov dword [ebp - 0x30], ecx
mov eax, dword [edx + 4]
mov dword [ebp - 0x2c], eax
mov cl, 1
mov dword [ebp - 0x28], ecx
jmp 0x4056b3
mov eax, 0xff000fff
and eax, dword [esi]
xor ecx, ecx
cmp eax, 0x10000161
sete cl
shl ecx, 0x15
or dword [ebp - 0x20], ecx
mov eax, dword [esi + 4]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x40], 0
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x3c], eax
jmp 0x4077a0
mov eax, ecx
movzx eax, byte [ecx*8 + 0x791c2f]
mov eax, dword [eax*4 + 0x7953ec]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x40], 0
jmp 0x4077a0
mov esi, dword [ebp + 0xc]
mov eax, dword [esi + 4]
mov dword [ebp - 0x34], eax
mov eax, 0xff000fff
and eax, dword [esi]
cmp eax, 0x8000391
je 0x406c45
cmp eax, 0x10000161
mov edi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x20]
jne 0x406a82
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x20], 0x40017e
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x40], 0
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x3c], eax
jmp 0x406c77
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 4]
mov dword [ebp - 0x34], eax
mov eax, 0xff000fff
and eax, dword [edx]
cmp eax, 0x8000391
mov edi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x20]
je 0x406c58
cmp eax, 0x10000161
jne 0x406a82
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x20], 0x2001d6
jmp 0x406c66
mov eax, dword [ebp - 0x20]
inc eax
mov ecx, dword [ebp + 0x10]
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x20], eax
jmp 0x405a3a
mov eax, dword [ebx + 4]
shl eax, 7
add eax, dword [esi + 4]
jmp 0x4059e7
movzx eax, byte [ecx*8 + 0x791c2f]
mov eax, dword [eax*4 + 0x7953ec]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebx + 8]
cmp edx, 0xd1
mov edi, dword [ebp - 0x24]
je 0x406c7e
cmp edx, 0xc9
je 0x403725
jmp 0x40699a
mov ebx, dword [ebp - 0x20]
or ebx, 0x8000000
shl edi, 7
add edi, ecx
mov dword [ebp - 0x38], 0
mov ecx, edi
mov edi, eax
mov eax, ecx
jmp 0x404776
mov ecx, dword [ebp - 0x3c]
mov eax, ecx
and eax, 0xff9fe000
or eax, 0x40017e
test ecx, 0x10000000
mov ecx, dword [ebp - 0x20]
cmovne ecx, eax
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x38], 0
xor ecx, ecx
mov dword [ebp - 0x40], 0
mov ebx, dword [ebp + 0x10]
jmp 0x40637b
movzx eax, byte [ecx*8 + 0x791c2f]
mov eax, dword [eax*4 + 0x7953ec]
mov ecx, eax
and ecx, 0xff9fe000
or ecx, 0x2001d6
test eax, 0x10000000
cmove ecx, eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x20], ecx
xor ecx, ecx
mov ebx, esi
jmp 0x405a6a
mov eax, dword [ebp - 0x54]
movzx eax, byte [eax*8 + 0x791c2f]
mov eax, dword [eax*4 + 0x7953ec]
mov ecx, dword [ebp + 0x10]
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x20], eax
xor ecx, ecx
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x40], 0
jmp 0x40637b
mov ebx, dword [ebp - 0x20]
jmp 0x4037f3
shr edx, 0x16
and edx, 0x3c
mov ebx, dword [ebp - 0x20]
or ebx, dword [edx + 0x79141c]
mov edx, dword [ebp - 0x30]
cmp edx, 0x1a
je 0x406c89
cmp edx, 0xa
jne case.0x401cd1.11
mov edx, esi
mov eax, dword [ebp + 0x10]
cmp dword [eax + 4], 1
jne 0x406a31
add ebx, 2
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x28], 0
jmp 0x406878
mov edx, 0x1a
jmp 0x40805d
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x34], ecx
mov ecx, eax
shr ecx, 0x18
mov edx, eax
shr edx, 0x16
and edx, 0x3c
mov esi, dword [ebp - 0x20]
or esi, dword [edx + 0x79141c]
mov edx, esi
mov dword [ebp - 0x28], 0
cmp ecx, 1
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x20], edx
jne 0x4070b7
and eax, 0xff000fff
cmp eax, 0x1000021
jne 0x4070a1
or dword [ebp - 0x4c], 0x80000000
add dword [ebp - 0x34], 4
jmp 0x4070b0
xor eax, eax
cmp dword [ebp - 0x34], 4
setae al
shl eax, 0x1e
or dword [ebp - 0x4c], eax
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x28], 0
jmp 0x4070be
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x38], ecx
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x40], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x34], eax
mov cl, 1
mov ebx, dword [ebp + 0x10]
jmp 0x40637e
xor ecx, ecx
cmp eax, 8
sete cl
shl ecx, 0x1b
or dword [ebp - 0x20], ecx
jmp 0x402a50
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [ebp - 0x34], ecx
mov ecx, eax
shr ecx, 0x18
mov edx, eax
shr edx, 0x16
and edx, 0x3c
mov edi, dword [ebp - 0x20]
or edi, dword [edx + 0x79141c]
mov edx, edi
mov dword [ebp - 0x28], 0
cmp ecx, 1
mov dword [ebp - 0x20], edi
jne 0x406cc8
and eax, 0xff000fff
cmp eax, 0x1000021
mov ebx, dword [ebp - 0x24]
jne 0x4072eb
or dword [ebp - 0x4c], 0x80000000
add dword [ebp - 0x34], 4
jmp 0x405da8
mov ebx, dword [ebp - 0x20]
add ebx, 2
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [ebp - 0x34], ecx
mov ecx, eax
shr ecx, 0x18
mov edx, eax
shr edx, 0x16
and edx, 0x3c
or ebx, dword [edx + 0x79141c]
mov edx, ebx
mov dword [ebp - 0x28], 0
cmp ecx, 1
mov dword [ebp - 0x20], ebx
jne 0x405c25
and eax, 0xff000fff
cmp eax, 0x1000021
mov ebx, dword [ebp - 0x24]
jne 0x4072ff
or dword [ebp - 0x4c], 0x80000000
add dword [ebp - 0x34], 4
jmp 0x40730e
mov dword [ebp - 0x38], 0
jmp 0x405869
mov eax, dword [esi]
mov ebx, dword [esi + 4]
mov esi, eax
shr esi, 0x18
mov edx, dword [edi + 8]
mov dword [ebp - 0x30], edx
mov edx, dword [edi + 0xc]
mov dword [ebp - 0x3c], edx
mov edx, 0x80
lea edi, [esi - 1]
cmp edi, 7
ja case.0x405c58.3
jmp dword [edi*4 + 0x7917b0]
and eax, 0xff000fff
cmp eax, 0x1000021
jne 0x40839a
or dword [ebp - 0x4c], 0x80000000
add ebx, 4
jmp 0x4083a8
mov eax, dword [esi]
cmp eax, 0x1000000
jb 0x4068ea
mov edi, eax
shr edi, 0x18
mov dword [ebp - 0x20], edi
mov esi, dword [ebp + 0x10]
mov ecx, dword [esi + 8]
mov ebx, ecx
sar ebx, 0x1f
cmp edi, 4
mov edx, 4
cmovb edx, edi
cmovne ebx, dword [esi + 0xc]
movsx esi, cl
mov edi, esi
sar edi, 0x1f
mov dword [ebp - 0x40], ebx
xor edi, ebx
mov dword [ebp - 0x38], ecx
xor esi, ecx
or esi, edi
mov edi, dword [ebp + 0xc]
mov ebx, 1
cmovne ebx, edx
test byte [ebp - 0x50], 0x20
cmovne ebx, edx
xor edx, edx
mov dword [ebp - 0x28], ebx
cmp bl, 1
sete dl
cmp dword [ebp - 0x20], 1
lea ecx, [edx + edx + 0x81]
mov edx, 0x80
cmovne edx, ecx
shr eax, 0x16
and eax, 0x3c
or edx, dword [eax + 0x7913dc]
mov dword [ebp - 0x20], edx
jmp 0x40779d
mov eax, dword [eax]
mov edx, eax
shr edx, 0x18
shr eax, 0x16
and eax, 0x3c
mov eax, dword [eax + 0x7913dc]
or eax, 0x6b
mov ecx, dword [edi + 8]
cmp edx, 4
je 0x406cde
mov edi, dword [edi + 0xc]
jmp 0x406ce3
mov eax, dword [eax]
mov edi, eax
shr edi, 0x18
shr eax, 0x16
and eax, 0x3c
mov eax, dword [eax + 0x7913dc]
or eax, 0x6b
mov ebx, dword [ebp + 0x14]
mov ecx, dword [ebx + 8]
cmp edi, 4
mov dword [ebp - 0x20], eax
je 0x406d2f
mov eax, dword [ebx + 0xc]
jmp 0x406d34
mov edx, edi
test byte [edi + 0x38], 1
mov edi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
jne 0x406d86
and eax, 0xf
or ecx, dword [eax*4 + 0x79141c]
mov dword [ebp - 0x20], ecx
jmp 0x406932
shr ecx, 0x18
lea eax, [ecx - 2]
or ecx, 2
cmp ecx, 6
mov ebx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x20]
jne 0x4070f4
and eax, 0xf
or edx, dword [eax*4 + 0x7913dc]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x38], 0
jmp 0x4068c3
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
mov edi, dword [eax + 4]
mov eax, ecx
and eax, 0xff000fff
cmp eax, 0x2000599
jne 0x406dc2
mov eax, dword [esi]
shr eax, 0x16
and eax, 0x3c
mov ecx, 0x8c
or ecx, dword [eax + 0x7913dc]
mov dword [ebp - 0x20], ecx
dec edi
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x28], 0
jmp 0x404407
mov ecx, dword [esi]
mov edi, dword [esi + 4]
mov eax, ecx
and eax, 0xff000fff
cmp eax, 0x2000599
jne 0x406e0f
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx]
shr eax, 0x16
and eax, 0x3c
mov esi, 0x8e
or esi, dword [eax + 0x7913dc]
mov dword [ebp - 0x20], esi
dec edi
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], ecx
jmp 0x4077a0
mov edx, esi
mov ecx, dword [esi]
mov edi, dword [esi + 4]
mov eax, ecx
shr eax, 0x18
cmp eax, 1
jne 0x406e5c
and ecx, 0xff000fff
cmp ecx, 0x1000021
mov ecx, dword [ebp + 0x10]
jne 0x407321
or dword [ebp - 0x4c], 0x80000000
add edi, 4
mov edx, edi
jmp 0x407331
mov ecx, dword [esi]
mov edx, 0x34
cmp ecx, 0x1000000
jb 0x40805d
mov eax, ecx
shr eax, 0x18
xor edx, edx
cmp eax, 1
sete dl
xor edx, 0xc7
shr ecx, 0x16
and ecx, 0x3c
or edx, dword [ecx + 0x7913dc]
mov dword [ebp - 0x20], edx
mov edx, dword [ebp + 0x10]
mov ecx, dword [edx + 8]
mov dword [ebp - 0x38], ecx
cmp eax, 4
mov ecx, 4
cmovb ecx, eax
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x34], 0
jmp 0x4077a0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], edi
jmp 0x4056b6
xor eax, eax
cmp ecx, 4
setae al
shl eax, 0x1e
or dword [ebp - 0x4c], eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x28], 0
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0x2c], ecx
jmp 0x4056b6
mov esi, edi
jmp 0x404d6d
mov esi, dword [ebp + 0xc]
mov edx, 0x35
mov eax, dword [ebp + 0x14]
jmp 0x40805d
mov edi, dword [ebp + 0x10]
mov eax, dword [edi]
shr eax, 0x18
mov esi, dword [ebp + 0xc]
mov ecx, dword [esi]
cmp eax, 1
jne 0x406ec4
mov edx, 0x1a
mov eax, dword [ebp + 0x14]
jmp 0x406776
xor ecx, ecx
cmp eax, 8
sete cl
shl ecx, 0x1b
or dword [ebp - 0x20], ecx
jmp 0x40686a
shr eax, 0x16
and eax, 0x3c
mov edx, dword [ebp - 0x20]
or edx, dword [eax + 0x79141c]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x28], 0
jmp 0x407796
mov esi, dword [ebp + 0xc]
mov eax, ecx
jmp 0x40805d
mov edx, 0x31
mov eax, dword [ebp + 0x14]
jmp 0x40805d
mov ecx, dword [ebp - 0x54]
cmp ecx, 0x668
mov edi, dword [ebp - 0x24]
mov dword [ebp - 0x2c], esi
jne 0x40760c
cmp dword [ebp - 0x34], 0
je 0x405fdd
mov edx, esi
test esi, esi
jne 0x40760c
mov ecx, dword [ebp - 0x48]
test byte [ecx + 0x38], 1
jne 0x4075e2
mov ecx, esi
cmp dword [ebp - 0x34], esi
jne 0x4075e2
cmp ebx, 0x4000000
jb 0x4075e2
cmp eax, 8
jne 0x40760c
mov ebx, dword [ebp - 0x3c]
and ebx, 0x8000000
jmp 0x407601
xor eax, eax
mov dword [ebp - 0x2c], edi
cmp edi, 4
setae al
shl eax, 0x1e
or dword [ebp - 0x4c], eax
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x30], 0
mov ebx, edx
jmp 0x4056b6
xor edx, edx
cmp dword [ebp - 0x2c], 4
setae dl
shl edx, 0x1e
or dword [ebp - 0x4c], edx
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp - 0x24]
or ecx, dword [eax + 0x79141c]
mov eax, dword [ebp - 0x30]
cmp eax, 0x19
je 0x406097
cmp eax, 9
jne 0x404d6d
mov eax, dword [ebp + 0x10]
cmp dword [eax + 4], 1
mov edx, 0x1a
jne 0x407a7e
add ecx, 2
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x28], 0
mov ebx, edi
jmp 0x4056b6
mov ebx, edi
mov eax, dword [ebp + 0x10]
movzx eax, byte [eax + 8]
mov dword [ebp - 0x30], eax
cmp eax, 1
jne 0x406ef7
mov eax, dword [ebp - 0x4c]
and eax, 0x20
jne 0x406ef7
mov dword [ebp - 0x30], 1
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x20], ecx
jmp 0x4056b6
and eax, 0xf
mov ebx, dword [ebp - 0x20]
or ebx, dword [eax*4 + 0x79141c]
xor edx, edx
mov eax, dword [ebp + 0x10]
jmp 0x4060f4
and eax, 0xf
mov ebx, dword [ebp - 0x20]
or ebx, dword [eax*4 + 0x79141c]
xor edx, edx
mov eax, dword [ebp + 0xc]
mov esi, ecx
shr esi, 3
and esi, 0x3ff
movzx esi, byte [esi + 0x790bac]
xor edi, edi
test cl, 0xf8
jne 0x406110
mov edi, dword [eax + 4]
or edi, edx
mov ecx, esi
and ecx, 2
or ecx, edi
jne case.default.0x401cd1
mov dword [ebp - 0x58], esi
mov edx, ebx
shr edx, 0x15
and edx, 7
movzx ecx, byte [edx + 0x7911d0]
mov esi, dword [ebp - 0x24]
mov byte [esi], cl
mov ecx, ebx
or ecx, dword [ebp - 0x4c]
cmp ecx, 0x80ffffff
mov edi, dword [ebp - 0x48]
ja 0x4073be
shr ecx, 0x18
cmp edx, 1
sbb esi, 0xffffffff
and ecx, 0x7f
mov edx, ecx
or dl, 0x40
cmp ecx, 1
mov byte [esi], dl
sbb esi, 0xffffffff
mov eax, dword [eax]
shr eax, 0x12
and eax, 7
setne cl
cmp eax, 7
movzx eax, byte [eax + 0x7911c8]
setne dl
and dl, cl
mov byte [esi], al
movzx eax, dl
mov ecx, dword [ebp - 0x58]
and ecx, dword [edi + 0x28]
mov byte [esi + eax], 0x67
add eax, esi
cmp ecx, 1
sbb eax, 0xffffffff
mov ecx, ebx
shr ecx, 6
and ecx, 0x7c
movzx edx, byte [ecx + 0x7911d8]
mov dh, byte [ecx + 0x7911d9]
mov byte [eax], dh
cmp dl, 1
sbb eax, 0xffffffff
cmp dl, 2
movzx ecx, byte [ecx + 0x7911da]
mov byte [eax], cl
sbb eax, 0xffffffff
mov ecx, ebx
mov byte [eax], cl
inc eax
mov dword [ebp - 0x2c], 0
mov esi, edi
mov edi, eax
jmp 0x408415
mov ecx, dword [ebp - 0x54]
movzx ecx, byte [ecx*8 + 0x791c2f]
mov ecx, dword [ecx*4 + 0x7953ec]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x2c], esi
jmp 0x4056b6
mov eax, dword [ebp - 0x58]
test byte [eax*8 + 0x795609], 0x20
mov ebx, dword [ebp - 0x24]
mov edx, 0x1a
je 0x406764
movzx eax, byte [esi*8 + 0x791c2f]
mov eax, dword [eax*4 + 0x7953ec]
mov edx, eax
and edx, 0xffff1fff
mov dword [ebp - 0x20], edx
shr eax, 0x12
and eax, 7
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x28], 0
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x40], 0
jmp 0x4077a3
mov dword [ebp - 0x28], 0
mov eax, dword [ebp - 0x58]
test byte [eax*8 + 0x795609], 0x10
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x40], 0
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x3c], eax
mov esi, eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x20], edi
jne 0x4077a3
jmp 0x40805d
movzx ecx, byte [esi*8 + 0x791c2f]
test ecx, ecx
je 0x407182
mov ecx, dword [ecx*4 + 0x7953ec]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x2c], eax
jmp 0x406089
and ecx, dword [edi]
cmp ecx, 1
jne 0x407037
movzx ecx, byte [esi*8 + 0x791c2f]
mov ecx, dword [ecx*4 + 0x7953ec]
inc ecx
mov dword [ebp - 0x38], 0
mov edx, ecx
xor ecx, ecx
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
mov edi, ebx
mov ebx, edx
jmp 0x40478d
and cl, 0xf
mov eax, dword [ebp + 0x10]
mov edi, edx
mov edx, esi
mov esi, dword [eax + 4]
shl esi, 7
add esi, dword [edx + 4]
mov edx, edi
mov edx, dword [edi + 4]
mov eax, edx
shl eax, 4
or al, cl
mov ecx, edx
shr ecx, 4
mov dword [ebp - 0x44], ecx
mov ecx, edx
shr ecx, 0xc
mov dword [ebp - 0x2c], ecx
shr edx, 0x14
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x38], eax
mov eax, dword [ebp + 0x14]
mov edi, dword [eax + 4]
mov eax, esi
mov cl, 1
jmp 0x40478d
mov dword [ebp - 0x20], ebx
and ecx, 0xf
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
shl eax, 7
add eax, dword [esi + 4]
mov dword [ebp - 0x34], eax
mov eax, dword [edx + 4]
shl eax, 4
or ecx, eax
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x40], 0
mov cl, 1
mov ebx, dword [ebp + 0x14]
mov edi, dword [ebp - 0x24]
mov dword [ebp - 0x28], ecx
mov eax, dword [ebx]
mov ecx, eax
shr ecx, 3
and ecx, 0x3ff
movzx esi, byte [ecx + 0x790bac]
shr eax, 0x12
and eax, 7
movzx ecx, byte [eax + 0x7911c8]
setne dl
cmp eax, 7
setne al
and al, dl
mov byte [edi], cl
movzx eax, al
lea edx, [edi + eax]
mov ecx, dword [ebp - 0x48]
mov ecx, dword [ecx + 0x28]
mov dword [ebp - 0x2c], esi
and ecx, esi
mov byte [edi + eax], 0x67
cmp ecx, 1
mov dword [ebp - 0x60], edx
mov ecx, edx
sbb ecx, 0xffffffff
mov eax, dword [ebx]
mov dword [ebp - 0x24], eax
and eax, 0xf8
xor edi, edi
mov edx, 0
cmp eax, 9
jb 0x4063e8
mov edx, dword [ebx + 4]
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0x24]
and eax, 0x1f00
cmp eax, 0x101
jb 0x406400
mov edi, dword [ebx + 8]
mov dword [ebp - 0x3c], ebx
xor eax, eax
test dword [ebp - 0x24], 0xe00000
setne al
mov ebx, dword [ebp - 0x34]
shl ebx, 4
and ebx, 0xf980
mov edx, dword [ebp - 0x20]
and edx, 0x60001f00
mov ecx, dword [ebp - 0x50]
mov esi, ecx
and esi, 0x1000
or esi, edx
mov edx, dword [ebp - 0x30]
and edx, 8
shr esi, 8
or esi, ebx
shl eax, 0x14
or eax, esi
lea edx, [eax + edx*4]
mov eax, edi
and eax, 0x10
shl eax, 0xf
mov esi, dword [ebp - 0x48]
mov esi, dword [esi + 0x4c]
shl esi, 0x10
or esi, eax
mov eax, dword [ebp - 0x58]
mov ebx, edi
mov edi, dword [eax*8 + sym.Morpheme32.exe_struct_asmjit::_abi_1_10::x86::InstDB::CommonInfo_const__const_const_asmjit::_abi_1_10::x86::InstDB::_commonInfoTable]
mov eax, edi
not eax
shl eax, 9
and eax, 0x80000000
or eax, esi
mov dword [ebp - 0x64], ebx
mov esi, ebx
and esi, 8
lea ebx, [edx + esi*8]
or ebx, eax
test ecx, 0x8c0000
je 0x4064a7
test ecx, 0xc0000
je 0x40649e
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
mov edx, 0x2a
jmp 0x40805d
mov eax, ecx
and eax, 0x800000
or ebx, eax
mov eax, ebx
and eax, 0x80df8110
mov esi, ecx
and esi, 0xc00
mov edx, ebx
or edx, 0x10
or esi, eax
cmovne edx, ebx
test edi, 0x1000000
cmove edx, ebx
test edx, 0x80df8110
je 0x406547
mov eax, edx
shl eax, 4
and eax, 0x80000
mov esi, edx
shr esi, 4
and esi, 0x10
mov ebx, edx
and ebx, 0xff78ef
or ebx, esi
or ebx, eax
shl ebx, 8
mov edi, dword [ebp - 0x20]
mov esi, edi
shr esi, 4
and esi, 0x800000
mov eax, edi
shr eax, 5
and eax, 0x830000
or eax, esi
or eax, ebx
xor eax, 0x87cf062
test edx, 0x100000
jne 0x4065a0
mov ecx, edi
mov esi, edi
shr edi, 0xd
and edi, 0x18
shr ecx, 0x19
and ecx, 4
or ecx, edi
shr edx, 0x15
and edx, 3
or edx, ecx
add esi, dword [edx*4 + 0x791074]
mov edx, esi
jmp 0x406633
mov esi, dword [ebp - 0x20]
mov eax, esi
shr eax, 0xc
and eax, 0x8000
mov edi, esi
shr edi, 0xd
shl ecx, 0x15
or ecx, edi
mov edi, edx
shr edi, 0xb
and edi, 0x400
and ecx, 0x80000300
or ecx, eax
or ecx, edi
or ecx, edx
test ecx, 0x8000807e
je 0x4065ec
and edx, 0xf
mov eax, esi
shl eax, 0x18
or eax, dword [edx*4 + 0x791034]
movzx ecx, cx
shl ecx, 8
xor ecx, eax
mov edi, dword [ebp - 0x44]
mov dword [edi], ecx
mov eax, 4
jmp 0x406608
mov edx, dword [ebp - 0x58]
mov edx, dword [edx*8 + 0x79560c]
shr edx, 3
and edx, 0xe
je 0x4065dc
mov ecx, dword [ebp - 0x24]
shr ecx, 0x15
and cl, 7
mov esi, edx
shl esi, cl
tzcnt esi, esi
cmp esi, 5
mov ecx, 4
cmovae ecx, esi
xor ecx, 0xfffffffc
shl ecx, 0x1d
cmp ecx, 0x40000000
jbe 0x40660f
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
mov edx, 0x29
jmp 0x40805d
mov eax, ecx
shr eax, 8
xor eax, ecx
mov edi, dword [ebp - 0x44]
mov byte [edi], 0xc5
xor al, 0xf9
mov byte [edi + 1], al
mov eax, esi
mov byte [edi + 2], al
mov eax, 3
xor ecx, ecx
mov esi, dword [ebp + 0xc]
jmp 0x406645
and ebx, 0x60000000
cmp ebx, ecx
cmovbe ebx, ecx
and eax, 0x9fffff62
or eax, ebx
mov ecx, dword [ebp - 0x20]
and ecx, 0xffff1fff
tzcnt edx, edx
shl edx, 0xd
or edx, ecx
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp - 0x44]
mov dword [edi], eax
mov ecx, edx
mov byte [edi + 4], dl
mov eax, 5
mov ebx, dword [ebp + 0x14]
and dword [ebp - 0x34], 7
add edi, eax
mov dword [ebp - 0x44], edi
mov eax, dword [ebp - 0x58]
test byte [eax*8 + 0x79560a], 0x10
mov edx, dword [ebp - 0x2c]
jne 0x40666d
mov edi, dword [ebp - 0x48]
mov eax, ebx
mov ebx, ecx
jmp 0x4078b5
test dl, 2
mov edx, 0x1a
mov eax, ebx
jne 0x4078d7
jmp 0x40805d
mov edi, dword [ebp + 0x10]
mov eax, dword [edi]
mov ecx, eax
and ecx, 0xf07
cmp ecx, 1
jne 0x40705c
and eax, 0xff000000
xor ecx, ecx
cmp eax, 0x8000000
sete cl
shl ecx, 0x1b
mov ebx, dword [ebp - 0x20]
or ebx, ecx
jmp 0x407077
mov ebx, dword [ebp - 0x50]
and ebx, 0x20
mov eax, ebx
shr eax, 5
xor eax, 1
mov ecx, dword [ebp - 0x20]
add ecx, eax
shr ebx, 4
mov eax, ebx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x30], 0
jmp 0x404eb6
mov ecx, 0x68
mov al, 4
mov dword [ebp - 0x28], eax
jmp 0x404eb6
mov esi, dword [ebp - 0x48]
mov eax, dword [esi + 0x74]
sub eax, dword [esi + 0x6c]
mov ecx, dword [ebp - 0x5c]
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x1c], 0
mov eax, dword [esi + 0x68]
mov eax, dword [eax]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0x38]
mov dword [ecx + 0x24], eax
mov eax, dword [ebp - 0x28]
mov dword [ecx + 0x20], eax
cmp dword [ebp - 0x20], 0
je 0x40719d
test byte [esi + 0x38], 1
jne 0x40863e
cmp dword [ebp - 0x54], 0x12f
je 0x40673b
cmp dword [ebp - 0x54], 0x3b
jne 0x40863e
test ebx, ebx
jne 0x406749
mov eax, dword [ebp - 0x24]
mov byte [eax], 0x40
inc eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x48]
mov ecx, dword [eax + 0x2c]
push dword [ebp - 0x38]
push dword [ebp - 0x28]
call sym.Morpheme32.exe_public:_unsigned_int___thiscall_asmjit::_abi_1_10::CodeHolder::addAddressToAddressTable_unsigned_long_long_unsigned___int64__
test eax, eax
je 0x408634
mov edx, eax
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
jmp 0x40805d
mov ecx, dword [esi]
mov edx, 0x1a
and ecx, 0xff000fff
cmp ecx, 0x2000029
jne 0x40805d
cmp dword [esi + 4], 0
jne 0x40805d
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
mov ecx, eax
and ecx, 0xff000f07
cmp ecx, 0x1000001
jne 0x40717b
mov ecx, dword [ebp + 0x10]
mov ecx, dword [ecx + 4]
and eax, 0xff000fff
cmp eax, 0x1000021
jne 0x407649
or dword [ebp - 0x4c], 0x80000000
add ecx, 4
mov dword [ebp - 0x2c], ecx
jmp 0x402a50
mov eax, esi
mov eax, dword [esi]
shr eax, 0x18
mov ecx, dword [ebp + 0x10]
movzx ecx, byte [ecx + 3]
cmp eax, ecx
mov edi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
jne 0x407085
and eax, 0xf
or ecx, dword [eax*4 + 0x79141c]
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 4]
mov dword [ebp - 0x2c], eax
jmp 0x40761c
mov esi, eax
jmp 0x407470
mov eax, dword [ebp - 0x24]
mov byte [eax], 0x66
inc eax
mov ecx, dword [ebp - 0x20]
jmp 0x40681f
mov eax, edi
inc ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x30], 0
mov ecx, eax
mov dword [ebp - 0x2c], ebx
mov ebx, eax
jmp 0x4056b6
cmp eax, 0x1000000
jae 0x40711c
mov esi, dword [ebp + 0xc]
jmp 0x4068ea
mov ebx, dword [ebp - 0x20]
mov edx, dword [ebp + 0x10]
and eax, 0xff000000
xor ecx, ecx
cmp eax, 0x1000000
setne cl
add ebx, ecx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], edx
jmp 0x4077a0
mov edi, ebx
cmp dword [eax + 4], 1
mov ebx, dword [ebp - 0x24]
mov edx, 0x1a
jne 0x40805d
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x34], ecx
shr eax, 0x16
and eax, 0x3c
or edi, dword [eax + 0x7913dc]
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x40], 0
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x3c], eax
jmp 0x4077a3
mov dword [ebp - 0x24], ebx
mov ebx, esi
mov ecx, dword [esi]
cmp ecx, 0x1000000
jae 0x407135
mov esi, ebx
mov edx, 0x34
mov eax, dword [ebp + 0x14]
jmp 0x40805d
mov dword [ebp - 0x20], ebx
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x38], 0
xor ecx, ecx
mov dword [ebp - 0x40], 0
jmp 0x40428d
mov eax, ebx
mov edx, 0x35
jmp 0x40805d
xor eax, eax
cmp ebx, 4
setae al
shl eax, 0x1e
or dword [ebp - 0x4c], eax
mov dword [ebp - 0x30], 0
jmp 0x40718c
cmp esi, 1
jne case.default.0x401cd1
mov edi, dword [ebp + 0x14]
and ecx, 0xff000fff
cmp ecx, 0x6a1
je 0x408568
cmp ecx, 0x7a9
je 0x4085a8
cmp ecx, 0x2000599
jne 0x407271
shr eax, 0x16
and eax, 0x3c
mov ecx, 0x8e
or ecx, dword [eax + 0x7913dc]
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x2c]
dec eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x34], eax
jmp 0x408805
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
mov edx, 0x1a
jmp 0x40805d
xor eax, eax
mov dword [ebp - 0x2c], edi
cmp edi, 4
setae al
shl eax, 0x1e
or dword [ebp - 0x4c], eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x28], 0
jmp 0x4056b6
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], 0
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0x2c], esi
jmp 0x4056b6
mov eax, dword [ebp - 0x58]
test byte [eax*8 + 0x795609], 8
je 0x406a31
mov esi, ecx
movzx eax, byte [ecx*8 + 0x791c2f]
mov eax, dword [eax*4 + 0x7953ec]
mov dword [ebp - 0x20], eax
shr eax, 0x12
and eax, 7
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x3c], edx
jmp 0x4058a9
mov eax, dword [ebp - 0x58]
test byte [eax*8 + 0x795609], 0x20
jne 0x40734e
mov esi, edx
mov edx, 0x1a
mov eax, dword [ebp + 0x14]
jmp 0x40805d
mov esi, dword [ebp + 0x10]
and edx, dword [esi]
cmp edx, 0x10000161
mov esi, dword [ebp + 0xc]
jne 0x406a82
test dword [ebp - 0x50], 0x100
jne 0x4076b5
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x20], 0x40017e
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x28], 0
mov ebx, edi
mov dword [ebp - 0x2c], ecx
jmp 0x4056b6
or ebx, 0x8000000
mov edx, ebx
mov ebx, dword [ebp - 0x30]
mov esi, dword [esi]
mov dword [ebp - 0x50], esi
and esi, 0xff000fff
xor ecx, ecx
cmp esi, 0x10000161
mov esi, dword [ebp + 0xc]
mov eax, dword [esi + 4]
mov dword [ebp - 0x2c], eax
sete cl
shl ecx, 0x15
or ecx, edx
cmp ebx, 9
jne 0x406aed
mov eax, dword [ebp + 0x10]
mov esi, dword [eax]
mov edi, esi
and edi, 0xf07
cmp edi, 1
jne 0x406b22
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x34], edx
mov edx, dword [eax + 4]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x28], 0
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0x20], ecx
jmp 0x4056b6
cmp ebx, 0x11
jne 0x406b1d
mov dword [ebp - 0x28], 0
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x40], 0
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x3c], eax
mov ebx, edi
mov dword [ebp - 0x20], ecx
jmp 0x4077a3
mov eax, dword [ebp + 0x10]
mov esi, dword [eax]
and edx, 0x8000000
mov ecx, dword [ebp - 0x54]
movzx edi, byte [ecx*8 + 0x791c2f]
or edx, dword [edi*4 + 0x7953ec]
and esi, 0xff000fff
xor ecx, ecx
cmp esi, 0x10000161
sete cl
shl ecx, 0x15
or ecx, edx
mov eax, dword [eax + 4]
mov dword [ebp - 0x34], eax
cmp ebx, 9
mov dword [ebp - 0x20], ecx
jne 0x406b90
mov eax, dword [ebp - 0x50]
and eax, 0xf07
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x30], 0
cmp eax, 1
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp - 0x24]
mov edx, 0x1a
mov eax, dword [ebp + 0x14]
je 0x4056b6
jmp 0x40805d
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x40], 0
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x3c], esi
cmp ebx, 0xa
mov ebx, dword [ebp - 0x24]
mov edx, 0x1a
mov eax, dword [ebp + 0x14]
je 0x4077a3
jmp 0x40805d
mov ecx, dword [esi + 4]
mov dword [ebp - 0x34], ecx
shr eax, 0x16
and eax, 0x3c
mov ecx, 0x1af
or ecx, dword [eax + 0x7913dc]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x3c], edi
jmp 0x4058a9
mov ecx, esi
mov esi, edi
mov ebx, 0x374d8
jmp 0x406c08
mov ecx, esi
mov esi, edi
mov ebx, 0x374d0
add ebx, dword [ecx + 4]
mov edi, dword [ebp - 0x24]
jmp 0x40564a
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x40], 0
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x20], edx
jmp 0x4077a0
mov eax, esi
mov esi, dword [ebp + 0xc]
mov edx, 0x1a
jmp 0x40805d
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x20], 0x16f
jmp 0x405862
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x20], 0x17f
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], esi
mov ebx, edi
jmp 0x4077a3
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp + 0x14]
jmp 0x405b51
mov edi, ebx
mov eax, dword [ebp + 0x10]
movzx eax, byte [eax + 8]
mov dword [ebp - 0x40], 0
test byte [ebp - 0x50], 0x20
mov ebx, dword [ebp - 0x24]
jne 0x407365
cmp eax, 1
jne 0x407365
mov dword [ebp - 0x38], 1
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x20], edi
jmp 0x4077a3
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x40], 0
mov eax, dword [ebp + 0xc]
jmp 0x405873
mov edi, ecx
sar edi, 0x1f
movsx esi, cl
mov ebx, esi
sar ebx, 0x1f
xor ebx, edi
mov dword [ebp - 0x30], ecx
xor esi, ecx
or esi, ebx
mov ecx, dword [ebp - 0x50]
and ecx, 0x20
cmp edx, 2
setne dl
add dl, dl
add dl, 2
or ecx, esi
mov esi, dword [ebp + 0xc]
mov ecx, dword [esi + 4]
lea esi, [eax - 2]
cmove esi, eax
mov dword [ebp - 0x20], esi
movzx eax, dl
mov edx, 1
cmovne edx, eax
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x2c], ecx
jmp 0x4056b3
mov eax, ecx
sar eax, 0x1f
mov ebx, dword [ebp - 0x24]
movsx edx, cl
mov esi, edx
sar esi, 0x1f
mov dword [ebp - 0x40], eax
xor esi, eax
mov dword [ebp - 0x38], ecx
xor edx, ecx
or edx, esi
mov esi, dword [ebp - 0x50]
and esi, 0x20
cmp edi, 2
setne cl
add cl, cl
add cl, 2
or esi, edx
mov esi, dword [ebp + 0xc]
mov edx, dword [esi + 4]
mov dword [ebp - 0x34], edx
mov edx, dword [ebp - 0x20]
lea eax, [edx - 2]
cmove eax, edx
mov dword [ebp - 0x20], eax
movzx eax, cl
mov ecx, 1
cmovne ecx, eax
mov dword [ebp - 0x28], ecx
jmp 0x402e0c
movzx ecx, byte [esi*8 + 0x791c2f]
and ebx, 7
add ebx, dword [ecx*4 + 0x7953ec]
xor ecx, ecx
cmp eax, 2
sete cl
shl ecx, 0x15
or ecx, ebx
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x3c], 0
mov esi, dword [ebp + 0xc]
jmp 0x4053c1
mov esi, ecx
shr esi, 0x18
shr ecx, 0x16
and ecx, 0x3c
mov ebx, dword [ecx + 0x79141c]
mov dword [ebp - 0x34], edi
test edi, edi
jne 0x406deb
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
test edx, 0x1ff8
je 0x408484
cmp esi, 1
jne 0x40775c
cmp eax, 0x1000021
jne 0x40774d
or dword [ebp - 0x4c], 0x80000000
add dword [ebp - 0x34], 4
jmp 0x40775c
mov esi, ecx
shr esi, 0x18
shr ecx, 0x16
and ecx, 0x3c
mov ebx, dword [ecx + 0x79141c]
mov dword [ebp - 0x34], edi
test edi, edi
jne 0x406e38
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
test edx, 0x1ff8
je 0x4084da
cmp esi, 1
jne 0x40777c
cmp eax, 0x1000021
jne 0x40776d
or dword [ebp - 0x4c], 0x80000000
add dword [ebp - 0x34], 4
jmp 0x40777c
mov edx, dword [ebp + 0x10]
mov ecx, dword [edx + 8]
mov dword [ebp - 0x30], ecx
mov ebx, dword [edx + 0xc]
cmp eax, 8
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x58], ebx
jne 0x40737b
mov cl, 8
test byte [ebp - 0x50], 0x20
jne 0x40737d
test ebx, ebx
mov edi, dword [ebp - 0x24]
jne 0x406e99
mov cl, 4
mov eax, dword [ebp - 0x48]
test byte [eax + 0x20], 1
jne 0x407380
mov eax, dword [ebp - 0x30]
sar eax, 0x1f
xor eax, dword [ebp - 0x58]
mov cl, 8
jne 0x407380
mov dword [ebp - 0x34], 0
mov al, 4
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x20], 0x80000c7
mov ebx, edi
jmp 0x4056b6
mov edi, esi
shr ecx, 0x18
cmp ecx, eax
jne 0x40746e
mov edx, dword [edi + 4]
mov dword [ebp - 0x34], edx
mov ecx, dword [ebp + 0x10]
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x2c], ecx
and eax, 0xf
mov ecx, 0x1af
or ecx, dword [eax*4 + 0x7913dc]
mov dword [ebp - 0x20], ecx
jmp 0x402d54
add ecx, 0xfffffff0
mov dword [ebp - 0x20], ecx
mov al, 1
mov dword [ebp - 0x28], eax
jmp 0x4056b6
movzx eax, byte [ebp - 0x20]
lea ebx, [ecx + eax]
add ebx, 0x37000
mov edi, edx
jmp 0x405647
xor eax, eax
mov ecx, esi
cmp esi, 4
setae al
shl eax, 0x1e
or eax, dword [ebp - 0x4c]
and edi, 0xff000fff
cmp edi, 0x1000021
mov dword [ebp - 0x2c], esi
jne 0x406f55
or eax, 0x80000000
add dword [ebp - 0x34], 4
jmp 0x406f63
mov esi, ebx
mov edx, 0x1a
mov eax, edi
jmp 0x40805d
xor ecx, ecx
cmp dword [ebp - 0x34], 4
setae cl
shl ecx, 0x1e
or eax, ecx
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x28], 0
jmp 0x4056b6
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [ecx + 0x18]
add edi, eax
sub ecx, edi
mov edx, dword [ebp - 0x50]
test dl, 0x20
mov ebx, dword [ebp - 0x58]
jne 0x406fc8
test ebx, ebx
je 0x406fc8
lea edx, [ecx + eax]
add edx, 0xffffff7e
cmp edx, 0xffffff00
mov edx, dword [ebp - 0x50]
jb 0x406fc8
add ecx, eax
or dword [ebp - 0x4c], 0x10
mov edi, dword [ebp - 0x24]
mov byte [edi], bl
add cl, 0xfe
mov byte [edi + 1], cl
add edi, 2
mov dword [ebp - 0x2c], 0
xor ecx, ecx
jmp 0x407641
test dl, 0x10
jne 0x407013
mov eax, dword [ebp - 0x20]
test eax, eax
mov edi, dword [ebp - 0x24]
mov edx, dword [ebp - 0x3c]
je 0x407013
and dword [ebp - 0x4c], 0xffffffef
cmp edx, 1
mov byte [edi], 0xf
sbb edi, 0xffffffff
mov byte [edi], al
mov edx, dword [ebp - 0x34]
mov eax, edx
shl al, 3
or al, 0xc0
mov byte [edi + 1], al
inc edi
cmp edx, 1
sbb edi, 0xffffffff
mov dword [edi], ecx
add edi, 4
mov dword [ebp - 0x2c], 0
xor ecx, ecx
mov eax, dword [ebp - 0x48]
jmp 0x404a9a
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
mov edx, 0x30
jmp 0x40805d
xor eax, eax
cmp dword [ebp - 0x34], 4
setae al
shl eax, 0x1e
or dword [ebp - 0x4c], eax
jmp 0x402df7
test dword [ebp - 0x50], 0x100
mov edi, ebx
je 0x40419b
mov ebx, dword [ebp - 0x20]
inc ebx
mov dword [ebp - 0x38], 0
mov edx, edi
mov edi, eax
mov eax, edx
jmp 0x404776
mov ebx, dword [ebp - 0x3c]
test ebx, 0x10000000
je 0x406a33
and ebx, 0xff9fe000
or ebx, 0x40017e
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
mov edi, dword [edi + 4]
jmp 0x40476f
mov edx, esi
jmp 0x40699a
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], 0
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0x2c], edi
jmp 0x4056b6
xor eax, eax
cmp dword [ebp - 0x34], 4
setae al
shl eax, 0x1e
or dword [ebp - 0x4c], eax
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], esi
jmp 0x4077a3
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebx + 8]
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebx + 0xc]
mov dword [ebp - 0x3c], ecx
cmp eax, 4
mov dword [ebp - 0x20], edi
mov ebx, 4
cmovb ebx, eax
mov ecx, ebx
mov edi, dword [ebp - 0x20]
jmp 0x40759b
xor ecx, ecx
test byte [esi + 0x38], 1
sete cl
lea ecx, [ecx*4 + 4]
cmp eax, ecx
je 0x405d9b
mov esi, dword [ebp + 0xc]
mov edx, 0x2b
mov eax, dword [ebp + 0x14]
jmp 0x40805d
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x40], eax
mov al, 1
mov dword [ebp - 0x28], eax
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x3c], esi
jmp 0x4077a3
mov dword [ebp - 0x34], eax
mov eax, ecx
shr eax, 0x18
shr ecx, 0x16
and ecx, 0x3c
or edi, dword [ecx + 0x79141c]
mov dword [ebp - 0x20], edi
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 8]
mov dword [ebp - 0x38], edx
mov ecx, dword [ecx + 0xc]
mov dword [ebp - 0x40], ecx
cmp eax, 4
mov ecx, 4
cmovb ecx, eax
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x3c], ebx
jmp 0x4077a0
mov esi, edi
mov eax, dword [ebp + 0x14]
jmp 0x40805d
mov edx, esi
jmp 0x406a33
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x2c], ebx
mov ebx, edi
jmp 0x4056b6
mov edi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x58]
mov byte [edi], al
lea eax, [edi + 1]
mov ecx, dword [ebp - 0x5c]
movsd xmm0, qword [0x790b40]
movsd qword [ecx + 8], xmm0
sub eax, dword [esi + 0x74]
mov edx, eax
inc dl
mov byte [ecx + 0xa], dl
mov byte [ecx + 0xc], al
mov byte [edi + 1], 0
add edi, 2
jmp 0x40840e
test dl, dl
mov eax, dword [ebp - 0x34]
je 0x4071e8
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp + 0xc]
mov edx, 0x30
jmp 0x40805d
mov byte [edi], 0xf
cmp esi, 1
sbb edi, 0xffffffff
mov byte [edi], cl
mov ecx, eax
shl al, 3
or al, 0xc0
mov byte [edi + 1], al
inc edi
cmp ecx, 1
sbb edi, 0xffffffff
mov ebx, 0xfffffffc
mov cl, 4
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x38], 0
mov edx, dword [ebp - 0x2c]
jmp 0x408152
mov edi, dword [ebp + 0x14]
and eax, 0xff000fff
cmp eax, 0x6a1
je 0x4085cb
cmp eax, 0x7a9
je 0x408604
cmp eax, 0x2000599
jne 0x407271
shr ecx, 0x16
and ecx, 0x3c
mov eax, 0x8c
or eax, dword [ecx + 0x7913dc]
mov dword [ebp - 0x20], eax
dec edx
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x28], 0
jmp 0x4056b3
mov esi, dword [ebp + 0xc]
mov eax, edi
mov edx, 0x1a
jmp 0x40805d
xor edx, edx
cmp esi, 4
setae dl
shl edx, 0x1e
or edx, dword [ebp - 0x4c]
mov ebx, dword [ebp - 0x58]
mov ecx, esi
and ebx, 0xff000fff
cmp ebx, 0x1000021
mov dword [ebp - 0x2c], esi
jne 0x40747d
or edx, 0x80000000
add eax, 4
mov dword [ebp - 0x34], eax
jmp 0x40748f
mov dword [ebp - 0x20], ebx
jmp 0x4035b4
mov ecx, dword [ecx + 8]
mov dword [ebp - 0x30], ecx
movzx edx, byte [edi*8 + 0x791c2f]
mov ecx, dword [edx*4 + 0x7953ec]
or esi, eax
mov dword [ebp - 0x3c], esi
mov al, 6
mov dword [ebp - 0x28], eax
mov edi, dword [ebp - 0x24]
mov esi, dword [ebp + 0xc]
jmp 0x4053c1
xor eax, eax
cmp dword [ebp - 0x34], 4
setae al
shl eax, 0x1e
or dword [ebp - 0x4c], eax
jmp 0x405da8
xor eax, eax
cmp dword [ebp - 0x34], 4
setae al
shl eax, 0x1e
or dword [ebp - 0x4c], eax
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x38], 0
jmp 0x402e05
xor eax, eax
mov edx, edi
cmp edi, 4
setae al
shl eax, 0x1e
or dword [ebp - 0x4c], eax
mov edi, dword [ebp - 0x24]
mov dword [ebp - 0x2c], edx
movzx eax, byte [ecx + 8]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x58], 0
mov cl, 1
mov ebx, 0xb0
jmp 0x407393
add dword [ebp - 0x20], 4
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x28], 0
jmp 0x404b24
mov dword [ebp - 0x38], eax
add edi, 0xfffffff0
mov dword [ebp - 0x20], edi
mov al, 1
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x3c], esi
jmp 0x4077a3
mov ecx, eax
mov edi, dword [ebp - 0x24]
mov eax, ecx
and al, 0xf
movzx eax, al
mov ebx, 0xb8
or ebx, dword [eax*4 + 0x79145c]
mov eax, ebx
shr eax, 0x15
and eax, 7
mov edx, ebx
movzx ebx, byte [eax + 0x7911d0]
mov byte [edi], bl
mov esi, edx
or esi, dword [ebp - 0x4c]
shr esi, 0x18
mov ebx, dword [ebp - 0x2c]
shr ebx, 3
or ebx, esi
cmp ebx, 0x80
jbe 0x4073ce
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
mov edx, 0x25
jmp 0x40805d
cmp eax, 1
sbb edi, 0xffffffff
and ebx, 0x7f
mov eax, ebx
or al, 0x40
mov byte [edi], al
cmp ebx, 1
sbb edi, 0xffffffff
mov eax, dword [ebp - 0x2c]
and eax, 7
add edx, eax
mov eax, edx
shr eax, 6
and eax, 0x7c
movzx ebx, byte [eax + 0x7911d8]
mov bh, byte [eax + 0x7911d9]
mov byte [edi], bh
cmp bl, 1
sbb edi, 0xffffffff
cmp bl, 2
movzx eax, byte [eax + 0x7911da]
mov byte [edi], al
sbb edi, 0xffffffff
mov byte [edi], dl
cmp cl, 4
jb 0x407430
mov eax, dword [ebp - 0x30]
mov dword [edi + 1], eax
add edi, 5
mov eax, ecx
add al, 0xfc
mov ebx, dword [ebp - 0x58]
jmp 0x407436
inc edi
mov eax, ecx
mov ebx, dword [ebp - 0x30]
test al, al
mov edx, dword [ebp + 0x18]
je 0x407ed7
mov byte [edi], bl
cmp al, 1
je 0x407eca
mov byte [edi + 1], bh
cmp al, 2
je 0x407ed4
mov edx, ebx
shr edx, 0x10
mov byte [edi + 2], dl
cmp al, 3
jne 0x407631
add edi, 3
jmp 0x40763a
mov esi, edi
mov edx, 0x35
mov eax, dword [ebp + 0x14]
jmp 0x40805d
mov esi, eax
xor eax, eax
mov dword [ebp - 0x34], esi
cmp esi, 4
setae al
shl eax, 0x1e
or edx, eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x28], 0
jmp 0x4056b3
mov dword [ebp - 0x2c], ebx
mov edx, 0x200080
mov esi, 2
jmp 0x4086aa
mov dword [ebp - 0x2c], ebx
jmp 0x4086aa
mov dword [ebp - 0x2c], ebx
mov eax, dword [ebp - 0x30]
sar eax, 0x1f
mov dword [ebp - 0x3c], eax
mov esi, 4
jmp 0x4086aa
mov dword [ebp - 0x2c], ebx
mov edi, dword [ebp + 0x14]
cmp ecx, 0x15
jne 0x4083bb
mov eax, dword [ebp - 0x30]
sar eax, 0x1f
xor eax, dword [ebp - 0x3c]
jne 0x40869b
cmp dword [ebp - 0x3c], 0
jne 0x4083ca
xor edx, edx
mov eax, dword [ebp - 0x48]
test byte [eax + 0x20], 1
sete dl
lea esi, [edx*4 + 4]
shl edx, 0x1b
or edx, 0x80
jmp 0x4086aa
xor ecx, ecx
mov edx, edi
cmp edi, 4
setae cl
shl ecx, 0x1e
or ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x58]
and edx, 0xff000fff
cmp edx, 0x1000021
mov dword [ebp - 0x2c], edi
jne 0x407550
or ecx, 0x80000000
add eax, 4
mov dword [ebp - 0x34], eax
jmp 0x407562
mov edx, eax
xor eax, eax
mov dword [ebp - 0x34], edx
cmp edx, 4
setae al
shl eax, 0x1e
or ecx, eax
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x30], 0
jmp 0x4056b3
xor ecx, ecx
mov ebx, esi
cmp esi, 4
setae cl
shl ecx, 0x1e
or dword [ebp - 0x4c], ecx
mov ecx, dword [ebp + 0x10]
movzx ecx, byte [ecx + 8]
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x3c], 0
mov cl, 1
mov dword [ebp - 0x28], ecx
or edi, dword [edx + 0x79141c]
mov edx, esi
test esi, esi
je 0x4075b8
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x2c], esi
jmp 0x4056b6
test byte [ebp - 0x4c], 0x20
jne 0x4076d1
xor edx, edx
cmp eax, 1
sete dl
mov ecx, edi
and ecx, 0x8200000
xor edx, 0xa9
or ecx, edx
mov esi, dword [ebp + 0xc]
jmp 0x404eb6
test byte [ebp - 0x50], 0x20
jne 0x40760c
add esi, dword [ebp - 0x34]
mov dword [ebp - 0x2c], esi
and eax, 0xf
mov ebx, dword [ebp - 0x3c]
or ebx, dword [eax*4 + 0x79141c]
and ebx, 0x8200000
or ebx, 0x90
jmp 0x4052ee
and eax, 0xf
mov ecx, dword [ebp - 0x20]
or ecx, dword [eax*4 + 0x79141c]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x30], 0
mov ebx, edi
jmp 0x4056b6
shr ebx, 0x18
mov byte [edi + 3], bl
add edi, 4
mov dword [ebp - 0x2c], 0
mov edx, dword [ebp + 0x18]
jmp 0x407ede
xor eax, eax
cmp ecx, 4
setae al
shl eax, 0x1e
or dword [ebp - 0x4c], eax
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x30], 0
jmp 0x405f24
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
mov dword [ebp - 0x3c], eax
mov edi, ebx
jmp 0x408364
xor eax, eax
mov edi, ebx
cmp ebx, 4
setae al
shl eax, 0x1e
or eax, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x58]
and edx, 0xff000fff
cmp edx, 0x1000021
jne 0x4076e3
or eax, 0x80000000
add esi, 4
jmp 0x4076f2
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x20], 0x17f
jmp 0x4076c3
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x20], 0x2001d6
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x2c], eax
jmp 0x406089
mov dword [ebp - 0x2c], 0
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0x20], edi
jmp 0x4056b6
xor edx, edx
mov ebx, esi
cmp esi, 4
setae dl
shl edx, 0x1e
or eax, edx
mov dword [ebp - 0x4c], eax
mov ebx, edi
mov eax, dword [ebp - 0x20]
or eax, dword [ecx + 0x79141c]
mov ecx, eax
mov dword [ebp - 0x28], 0
test dword [ebp - 0x4c], 0x200
mov eax, dword [ebp - 0x24]
jne 0x40772c
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x30], 0
mov ebx, eax
mov dword [ebp - 0x20], ecx
jmp 0x4056b6
add ecx, 2
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], 0
mov ebx, eax
mov dword [ebp - 0x2c], esi
jmp 0x4056b6
xor eax, eax
cmp dword [ebp - 0x34], 4
setae al
shl eax, 0x1e
or dword [ebp - 0x4c], eax
mov esi, dword [ebp + 0xc]
add ebx, 0x88
mov dword [ebp - 0x20], ebx
jmp 0x4043f9
xor eax, eax
cmp dword [ebp - 0x34], 4
setae al
shl eax, 0x1e
or dword [ebp - 0x4c], eax
mov edi, dword [ebp + 0x10]
add ebx, 0x8a
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], edi
mov ebx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ecx]
mov esi, ecx
mov dword [ebp - 0x3c], ecx
mov ecx, eax
shr ecx, 3
and ecx, 0x3ff
movzx edx, byte [ecx + 0x790bac]
mov dword [ebp - 0x2c], edx
shr eax, 0x12
and eax, 7
movzx ecx, byte [eax + 0x7911c8]
setne ch
cmp eax, 7
setne al
and al, ch
mov byte [ebx], cl
movzx eax, al
lea edi, [ebx + eax]
mov ecx, dword [ebp - 0x48]
mov ecx, dword [ecx + 0x28]
and ecx, edx
mov byte [ebx + eax], 0x67
cmp ecx, 1
mov dword [ebp - 0x60], edi
sbb edi, 0xffffffff
mov ebx, dword [ebp - 0x20]
mov eax, ebx
shr eax, 0x15
and eax, 7
movzx ecx, byte [eax + 0x7911d0]
mov byte [edi], cl
mov ecx, dword [esi + 4]
mov dword [ebp - 0x30], ecx
shr ecx, 3
and ecx, 1
mov esi, dword [ebp - 0x34]
mov edx, esi
shr edx, 1
and edx, 4
or edx, ecx
mov ecx, dword [ebp - 0x3c]
mov ecx, dword [ecx + 8]
mov dword [ebp - 0x64], ecx
shr ecx, 2
and ecx, 2
or edx, ecx
and edx, dword [ebp - 0x2c]
mov ecx, ebx
or ecx, dword [ebp - 0x4c]
shr ecx, 0x18
or ecx, edx
cmp ecx, 0x80
jbe 0x407859
mov eax, dword [ebp + 0x14]
mov edx, 0x25
mov esi, dword [ebp + 0xc]
jmp 0x40805d
cmp eax, 1
sbb edi, 0xffffffff
and ecx, 0x7f
mov eax, ecx
or al, 0x40
mov byte [edi], al
cmp ecx, 1
sbb edi, 0xffffffff
and esi, 7
mov dword [ebp - 0x34], esi
mov eax, ebx
shr eax, 6
and eax, 0x7c
movzx ecx, byte [eax + 0x7911d8]
movzx edx, byte [eax + 0x7911d9]
mov byte [edi], dl
cmp cl, 1
sbb edi, 0xffffffff
cmp cl, 2
movzx eax, byte [eax + 0x7911da]
mov byte [edi], al
sbb edi, 0xffffffff
mov eax, ebx
mov byte [edi], al
inc edi
mov dword [ebp - 0x44], edi
mov edi, dword [ebp - 0x48]
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp + 0xc]
mov edx, dword [ebp - 0x2c]
test dl, 0x42
je 0x407936
test dl, 0x40
jne 0x407986
mov dword [ebp - 0x2c], edx
mov edx, 0x2c
cmp dword [ebp - 0x64], 4
mov ecx, ebx
je 0x40805d
mov ebx, dword [ebp - 0x48]
mov edi, dword [ebp - 0x64]
and edi, 7
mov edx, dword [ebp - 0x2c]
test dl, 1
jne 0x407a23
test dl, 0x30
je 0x407bb8
mov edx, 0x2b
test byte [ebx + 0x38], 1
je 0x40805d
mov ecx, ebx
mov ebx, eax
mov eax, dword [ebp - 0x34]
shl al, 3
or al, 4
mov edx, edi
mov edi, dword [ebp - 0x44]
mov byte [edi], al
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax]
shr eax, 0xa
and eax, 0xc0
lea eax, [eax + edx*8]
or al, 5
mov byte [edi + 1], al
mov eax, ecx
add edi, 2
jmp 0x407bee
test dl, 1
jne 0x4079d1
mov ecx, edx
mov edx, edi
mov dword [ebp - 0x2c], ecx
test cl, 0x30
je 0x407b25
mov ecx, dword [ebp - 0x34]
shl cl, 3
or cl, 5
mov edi, dword [ebp - 0x44]
mov byte [edi], cl
inc edi
test byte [edx + 0x38], 1
jne 0x407bea
mov ecx, dword [ebp - 0x3c]
mov ebx, dword [ecx + 0xc]
test byte [ebp - 0x2c], 0x10
jne 0x407e09
mov edi, dword [ebp - 0x44]
mov dword [edi + 1], ebx
add edi, 5
jmp 0x407ea2
mov ebx, eax
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0xc]
mov ecx, edx
and ecx, 3
je 0x407a6e
mov dword [ebp - 0x58], eax
mov edi, dword [ebp - 0x30]
and edi, 7
mov eax, dword [ebp - 0x64]
and eax, 7
cmp ecx, 3
jne 0x407a85
mov edx, 0x2b
mov ecx, dword [ebp - 0x3c]
test byte [ecx + 2], 3
jne 0x407a7e
lea ecx, [eax + edi*8]
add ecx, 0x790fec
jmp 0x407a91
mov esi, dword [ebp - 0x30]
and esi, 7
mov eax, dword [ebp - 0x3c]
mov edi, dword [eax + 0xc]
cmp esi, 5
setne al
test edi, edi
sete cl
and cl, al
mov edx, esi
cmp esi, 4
je 0x407ac8
mov eax, 0x200000
mov esi, dword [ebp - 0x58]
and eax, dword [esi*8 + sym.Morpheme32.exe_struct_asmjit::_abi_1_10::x86::InstDB::CommonInfo_const__const_const_asmjit::_abi_1_10::x86::InstDB::_commonInfoTable]
jne 0x407ac8
mov eax, dword [ebp - 0x34]
lea edx, [edx + eax*8]
test cl, cl
je 0x407ccf
mov edi, dword [ebp - 0x44]
mov byte [edi], dl
inc edi
jmp 0x407ea2
mov ebx, edi
mov edi, dword [ebp - 0x30]
and edi, 7
mov edx, dword [ebp - 0x3c]
mov eax, dword [edx]
mov esi, dword [edx + 0xc]
shl dword [ebp - 0x34], 3
shr eax, 0xa
and eax, 0xc0
lea eax, [eax + ebx*8]
or eax, edi
test esi, esi
mov edx, dword [ebp + 0x18]
jne 0x407aeb
cmp edi, 5
je 0x407aeb
mov ecx, dword [ebp - 0x34]
or cl, 4
mov edi, dword [ebp - 0x44]
mov byte [edi], cl
mov byte [edi + 1], al
add edi, 2
jmp 0x407ea5
mov ecx, edx
mov edx, 0x2b
test cl, 0x30
je 0x407d47
mov eax, ebx
jmp 0x40805d
test dl, 2
cmove eax, edi
lea ecx, [eax + 0x79102c]
movzx ecx, byte [ecx]
cmp ecx, 0xff
mov eax, dword [ebp - 0x58]
je 0x407cc3
mov edx, eax
shl edx, 0x10
mov edx, dword [ebp - 0x34]
lea ecx, [ecx + edx*8]
jne 0x407d8b
cmp ecx, 6
je 0x407d8b
mov edi, dword [ebp - 0x44]
mov byte [edi], cl
inc edi
jmp 0x407ea2
mov eax, dword [ebp - 0x34]
shl eax, 3
test cl, cl
je 0x407d05
or al, 4
mov edi, dword [ebp - 0x44]
mov byte [edi], al
or dl, 0x20
mov byte [edi + 1], dl
add edi, 2
jmp 0x407ea2
shr ecx, 0xd
and cl, 7
mov ebx, esi
sar ebx, cl
movsx edi, bl
mov edx, ebx
shl edx, cl
cmp edi, ebx
jne 0x407d75
cmp esi, edx
jne 0x407d75
mov ecx, dword [ebp - 0x34]
add cl, 0x44
mov edi, dword [ebp - 0x44]
mov byte [edi], cl
mov byte [edi + 1], al
mov byte [edi + 2], bl
add edi, 3
jmp 0x407ea2
mov edi, eax
mov ecx, edx
mov ebx, dword [ebp - 0x3c]
mov edx, dword [ebx]
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x58], edx
shr edx, 0xe
and edx, 3
test byte [ecx + 0x38], 1
jne 0x407df1
mov edi, dword [ebx + 4]
mov dword [ebp - 0x50], eax
mov ebx, eax
sar ebx, 0x1f
mov ecx, dword [ecx + 0x2c]
mov eax, dword [ecx + 0x28]
mov dword [ebp - 0x20], eax
mov eax, dword [ecx + 0x2c]
mov dword [ebp - 0x24], eax
cmp edx, 2
je 0x407f78
test edx, edx
jne 0x4082a4
mov edx, dword [ebp - 0x20]
and edx, dword [ebp - 0x24]
cmp edx, 0xffffffff
je 0x408037
test edi, edi
sete al
cmp edi, ebx
sete ah
mov edx, dword [ebp - 0x58]
and edx, 0x1c0000
cmp dword [ebp - 0x54], 0x17e
sete byte [ebp - 0x2c]
cmp edx, 0x100000
ja 0x4082a4
or ah, al
and byte [ebp - 0x2c], ah
je 0x407f87
jmp 0x4082a4
mov eax, dword [ebp - 0x34]
shl al, 3
or al, 4
mov edx, edi
mov edi, dword [ebp - 0x44]
mov byte [edi], al
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ecx]
shr eax, 0xa
and eax, 0xc0
lea eax, [eax + edx*8]
or al, 5
mov byte [edi + 1], al
mov eax, dword [ecx + 0xc]
mov dword [edi + 2], eax
add edi, 6
jmp 0x407d59
mov ebx, eax
mov eax, edx
mov eax, dword [eax + 0x2c]
mov ecx, dword [eax + 0xb0]
cmp ecx, dword [eax + 0xac]
jne 0x407c24
lea ecx, [eax + 0xa8]
add eax, 0x48
push 1
push 4
push eax
call sym.Morpheme32.exe_protected:_unsigned_int___thiscall_asmjit::_abi_1_10::ZoneVectorBase::_grow_class_asmjit::_abi_1_10::ZoneAllocator___unsigned_int__unsigned_int_
mov ecx, eax
test eax, eax
je 0x407c24
mov edx, 1
mov eax, ebx
jmp 0x40805d
mov edx, dword [ebp - 0x3c]
mov esi, dword [edx + 0xc]
mov eax, dword [ebp - 0x48]
mov ecx, dword [eax + 0x2c]
test byte [ebp - 0x2c], 0x10
jne 0x407dac
lea eax, [ebp - 0x5c]
push 3
push eax
call sym.Morpheme32.exe_public:_unsigned_int___thiscall_asmjit::_abi_1_10::CodeHolder::newRelocEntry_struct_asmjit::_abi_1_10::RelocEntry____enum_asmjit::_abi_1_10::RelocType_
test eax, eax
jne 0x407dda
mov ebx, dword [ebp - 0x48]
mov eax, dword [ebx + 0x68]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebx + 0x68]
mov ecx, dword [ecx]
mov dword [eax + 0x14], ecx
movsd xmm0, qword [0x790b50]
movsd qword [eax + 8], xmm0
mov ecx, edi
sub ecx, dword [ebx + 0x74]
mov edx, dword [ebp - 0x28]
add dl, cl
add dl, 4
mov byte [eax + 0xa], dl
mov byte [eax + 0xc], cl
mov ecx, dword [ebx + 0x74]
sub ecx, dword [ebx + 0x6c]
movzx edx, dl
mov ebx, edi
mov edi, esi
sar edi, 0x1f
add edx, esi
mov dword [eax + 0x18], ecx
adc edi, 0
add edx, ecx
mov ecx, dword [ebp - 0x28]
mov dword [eax + 0x1c], 0
adc edi, 0
mov dword [eax + 0x20], edx
mov dword [eax + 0x24], edi
mov edi, ebx
mov dword [ebx], 0
add edi, 4
mov edx, dword [ebp + 0x18]
jmp 0x407ea8
mov edx, 0x2b
mov eax, ebx
jmp 0x40805d
shr ebx, 0xd
and bl, 7
mov ecx, ebx
mov ebx, edi
sar ebx, cl
movsx esi, bl
mov eax, ebx
shl eax, cl
cmp esi, ebx
jne 0x407e4b
cmp edi, eax
jne 0x407e4b
or dl, 0x40
mov edi, dword [ebp - 0x44]
mov byte [edi], dl
mov byte [edi + 1], bl
add edi, 2
jmp 0x407ea2
mov esi, eax
shr ebx, 0xd
and bl, 7
mov eax, edi
mov ecx, ebx
sar eax, cl
mov ecx, ebx
mov ebx, eax
shl ebx, cl
movsx ecx, al
or dl, 0x20
cmp ecx, eax
jne 0x407e5d
cmp edi, ebx
jne 0x407e5d
mov ecx, esi
or cl, 0x44
mov edi, dword [ebp - 0x44]
mov byte [edi], cl
mov byte [edi + 1], dl
mov byte [edi + 2], al
add edi, 3
jmp 0x407ea2
mov ecx, dword [ebp - 0x34]
or cl, 6
mov edi, dword [ebp - 0x44]
mov byte [edi], cl
mov word [edi + 1], ax
add edi, 3
mov ecx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x40]
mov edx, dword [ebp + 0x18]
cmp cl, 4
jae 0x407eb4
mov eax, ecx
mov ebx, dword [ebp - 0x38]
jmp 0x407ec0
mov ecx, dword [ebp - 0x34]
add cl, 0x84
mov edi, dword [ebp - 0x44]
mov byte [edi], cl
mov byte [edi + 1], al
mov dword [edi + 2], esi
jmp 0x407e6e
movsx edx, ax
movsx esi, dl
cmp esi, edx
mov edi, dword [ebp - 0x44]
jne 0x407e73
add cl, 0x40
mov byte [edi], cl
mov byte [edi + 1], al
add edi, 2
jmp 0x407ea2
mov eax, dword [edx + 4]
cmp dword [ecx + 0xa0], eax
jbe 0x407de2
mov edx, dword [ecx + 0x9c]
mov eax, dword [edx + eax*4]
test eax, eax
je 0x407de2
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x5c]
push 3
push eax
call sym.Morpheme32.exe_public:_unsigned_int___thiscall_asmjit::_abi_1_10::CodeHolder::newRelocEntry_struct_asmjit::_abi_1_10::RelocEntry____enum_asmjit::_abi_1_10::RelocType_
test eax, eax
je 0x407fbf
mov esi, dword [ebp + 0xc]
jmp 0x408059
mov esi, dword [ebp + 0xc]
mov edx, 0xc
mov eax, ebx
jmp 0x40805d
cmp edx, 2
mov ecx, dword [ebp - 0x44]
jne 0x407e8e
mov edx, 0x2b
mov eax, edi
jmp 0x40805d
mov eax, dword [edx + 0x2c]
mov ecx, dword [ecx + 4]
cmp dword [eax + 0xa0], ecx
jbe 0x407e81
mov eax, dword [eax + 0x9c]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x407e81
movzx eax, byte [ebp - 0x28]
sub ebx, eax
add ebx, 0xfffffffc
mov eax, dword [edx + 0x20]
mov ecx, dword [ebp - 0x48]
cmp eax, dword [ecx + 0x68]
jne 0x408150
mov eax, ecx
sub ebx, edi
add ebx, dword [edx + 0x18]
add ebx, dword [ecx + 0x6c]
jmp 0x407978
or dl, 0x80
mov eax, edi
mov edi, dword [ebp - 0x44]
mov byte [edi], dl
mov dword [edi + 1], eax
add edi, 5
jmp 0x407ea2
mov eax, esi
or al, 0x84
mov ecx, edi
mov edi, dword [ebp - 0x44]
mov byte [edi], al
mov byte [edi + 1], dl
mov dword [edi + 2], ecx
add edi, 6
jmp 0x407ea2
add cl, 0x80
mov byte [edi], cl
mov word [edi + 1], ax
add edi, 3
jmp 0x407ea2
mov edx, 0xc
mov eax, dword [ebp + 0x14]
jmp 0x40805d
mov ebx, eax
mov eax, dword [ebp - 0x34]
shl al, 3
or al, 5
mov byte [ecx], al
mov dword [ecx + 1], ebx
add ecx, 5
mov edi, ecx
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x40]
cmp cl, 4
jb 0x407d6b
mov eax, dword [ebp - 0x38]
mov dword [edi], eax
add edi, 4
mov eax, ecx
add al, 0xfc
test al, al
je 0x407ed7
mov byte [edi], bl
cmp al, 1
jne 0x407ecd
inc edi
jmp 0x407ed7
mov byte [edi + 1], bh
cmp al, 2
jne 0x407f47
add edi, 2
mov dword [ebp - 0x2c], 0
mov eax, dword [ebp - 0x48]
lea esi, [eax + 0x44]
test byte [ebp - 0x4c], 1
je 0x407f22
cmp dword [eax + 0x30], 0
je 0x407f22
mov ebx, edi
mov edi, eax
movzx eax, cl
movzx ecx, byte [ebp - 0x2c]
mov dword [ebp - 0x10], 0xffffffff
push ebx
push eax
push ecx
push edx
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp - 0x4c]
push dword [ebp - 0x54]
push edi
call fcn.00411010
mov eax, edi
mov edi, ebx
add esp, 0x28
xorps xmm0, xmm0
movups xmmword [esi], xmm0
mov edx, eax
mov eax, dword [eax + 0x68]
mov ecx, edi
sub ecx, dword [edx + 0x6c]
mov dword [edx + 0x74], edi
mov edx, dword [eax + 0x48]
cmp edx, ecx
cmova ecx, edx
mov dword [eax + 0x48], ecx
xor eax, eax
jmp 0x40807e
mov esi, edx
mov edx, ecx
mov ecx, ebx
shr ecx, 0x10
mov byte [edi + 2], cl
cmp al, 3
jne 0x407f5c
add edi, 3
jmp 0x407f65
shr ebx, 0x18
mov byte [edi + 3], bl
add edi, 4
mov dword [ebp - 0x2c], 0
mov eax, dword [ebp - 0x48]
mov ecx, edx
mov edx, esi
jmp 0x407ee1
mov edx, dword [ebp - 0x20]
and edx, dword [ebp - 0x24]
cmp edx, 0xffffffff
je 0x408047
mov edx, dword [ebp - 0x48]
mov edx, dword [edx + 0x68]
cmp dword [edx], 0
jne 0x408047
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x48]
sub eax, dword [ecx + 0x6c]
mov dword [ebp - 0x30], eax
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x2c], eax
mov eax, dword [edx + 0x14]
mov dword [ebp - 0x3c], eax
test byte [ebp - 0x58], 0xf8
je 0x40821c
mov ecx, ebx
jmp 0x40821e
mov edx, dword [ebp - 0x48]
mov eax, dword [edx + 0x68]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x10], ecx
mov ecx, dword [edx + 0x74]
sub ecx, dword [edx + 0x6c]
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], 0
movsd xmm0, qword [0x790b50]
movsd qword [eax + 8], xmm0
mov ecx, edi
sub ecx, dword [edx + 0x74]
mov edx, dword [ebp - 0x28]
add dl, cl
add dl, 4
mov byte [eax + 0xa], dl
mov byte [eax + 0xc], cl
mov ecx, esi
sar ecx, 0x1f
mov dword [eax + 0x20], esi
mov dword [eax + 0x24], ecx
mov edx, dword [ebp - 0x2c]
cmp dword [edx + 0x20], 0
je 0x408145
add esi, dword [edx + 0x18]
adc ecx, dword [edx + 0x1c]
mov dword [eax + 0x20], esi
mov dword [eax + 0x24], ecx
mov ecx, dword [edx + 0x20]
mov ecx, dword [ecx]
mov dword [eax + 0x14], ecx
mov dword [edi], 0
add edi, 4
jmp 0x407ea2
cmp edi, ebx
je 0x4082a4
test edi, edi
je 0x4082a4
lea eax, [ebp - 0x5c]
push 4
push eax
call sym.Morpheme32.exe_public:_unsigned_int___thiscall_asmjit::_abi_1_10::CodeHolder::newRelocEntry_struct_asmjit::_abi_1_10::RelocEntry____enum_asmjit::_abi_1_10::RelocType_
test eax, eax
je 0x408095
mov ebx, dword [ebp + 0x14]
mov edx, eax
mov eax, ebx
mov dword [ebp - 0x10], 0xffffffff
push dword [ebp + 0x18]
push eax
push dword [ebp + 0x10]
push esi
push dword [ebp - 0x4c]
push dword [ebp - 0x54]
push edx
push dword [ebp - 0x48]
call fcn.004111c0
add esp, 0x20
mov ecx, dword [ebp - 0x18]
mov dword fs:[0], ecx
add esp, 0xc8
pop esi
pop edi
pop ebx
pop ebp
ret 0x14
mov eax, dword [ebp - 0x34]
shl al, 3
or al, 5
mov edi, dword [ebp - 0x44]
mov byte [edi], al
mov edx, dword [ebp - 0x48]
mov eax, dword [edx + 0x68]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0x10], ecx
mov ecx, dword [edx + 0x74]
sub ecx, dword [edx + 0x6c]
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], 0
movsd xmm0, qword [0x790b30]
movsd qword [eax + 8], xmm0
mov ecx, edi
mov esi, edx
sub ecx, dword [edx + 0x74]
inc cl
mov edx, dword [ebp - 0x28]
add dl, cl
add dl, 4
mov byte [eax + 0xa], dl
mov byte [eax + 0xc], cl
mov edx, dword [ebp - 0x3c]
test byte [edx], 0xf8
mov ecx, dword [edx + 0xc]
je 0x4080f6
mov edx, ecx
sar edx, 0x1f
jmp 0x4080f9
mov edx, dword [edx + 4]
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], edx
mov dword [edi + 1], 0
mov eax, dword [ebp - 0x28]
cmp al, 4
jb 0x408124
mov eax, dword [ebp - 0x38]
mov dword [edi + 5], eax
add edi, 9
mov dword [ebp - 0x2c], 0
mov cl, 4
jmp 0x408417
test al, al
je 0x40840b
mov ecx, dword [ebp - 0x38]
mov byte [edi + 5], cl
cmp al, 1
je 0x4083f7
mov eax, dword [ebp - 0x38]
mov byte [edi + 6], ah
jmp 0x408876
movzx eax, byte [ebp - 0x28]
mov ebx, 0xfffffffc
sub ebx, eax
mov cl, 4
mov dword [ebp - 0x24], edi
mov eax, edi
mov esi, dword [ebp - 0x48]
sub eax, dword [esi + 0x6c]
mov word [ebp - 0xd4], 0
mov byte [ebp - 0xd2], cl
mov byte [ebp - 0xd1], cl
mov byte [ebp - 0xd0], 0
mov dword [ebp - 0x2c], ecx
shl cl, 3
mov byte [ebp - 0xcf], cl
mov word [ebp - 0xce], 0
mov ecx, dword [esi + 0x2c]
mov esi, dword [esi + 0x68]
lea edi, [ebp - 0xd4]
push edi
push ebx
push eax
push dword [esi]
push edx
call sym.Morpheme32.exe_public:_struct_asmjit::_abi_1_10::LabelLink____thiscall_asmjit::_abi_1_10::CodeHolder::newLabelLink_class_asmjit::_abi_1_10::LabelEntry___unsigned_int__unsigned_int__int__struct_asmjit::_abi_1_10::OffsetFormat_const__
test eax, eax
je 0x4081e4
movzx esi, byte [ebp - 0x2c]
mov ecx, dword [ebp - 0x5c]
test ecx, ecx
je 0x4081b9
mov ecx, dword [ecx]
mov dword [eax + 8], ecx
push esi
push 0
mov edi, dword [ebp - 0x24]
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
add edi, esi
mov ecx, dword [ebp - 0x28]
cmp cl, 4
mov eax, dword [ebp - 0x48]
jb 0x4081fb
mov ecx, dword [ebp - 0x38]
mov dword [edi], ecx
add edi, 4
mov cl, 4
jmp 0x404a9a
mov dword [ebp - 0x10], 0xffffffff
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
mov edx, 1
jmp 0x40805d
test cl, cl
je 0x408215
mov edx, dword [ebp - 0x38]
mov byte [edi], dl
cmp cl, 1
jne 0x40833e
inc edi
mov cl, 1
jmp 0x404a9a
xor ecx, ecx
jmp 0x404a9a
mov ecx, edi
movzx edx, byte [ebp - 0x28]
mov esi, dword [ebp - 0x20]
add esi, edx
mov eax, dword [ebp - 0x24]
adc eax, 0
add esi, dword [ebp - 0x30]
adc eax, 0
add esi, dword [ebp - 0x2c]
adc eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x50]
sub edx, esi
sbb ecx, eax
mov esi, edx
add esi, 0x7ffffffb
adc ecx, 0
jne 0x408285
mov eax, dword [ebp - 0x34]
shl al, 3
or al, 5
mov edi, dword [ebp - 0x44]
mov byte [edi], al
add edx, 0xfffffffb
mov dword [edi + 1], edx
mov eax, dword [ebp - 0x28]
cmp al, 4
jb 0x4083d9
mov eax, dword [ebp - 0x38]
mov dword [edi + 5], eax
add edi, 9
mov dword [ebp - 0x2c], 0
mov eax, dword [ebp - 0x48]
mov cl, 4
jmp 0x404a9a
mov eax, dword [ebp - 0x58]
and eax, 0xc000
cmp eax, 0x8000
mov esi, dword [ebp + 0xc]
jne 0x4082a4
mov eax, dword [ebp + 0x14]
mov edx, 0x2b
jmp 0x40805d
cmp edi, ebx
jne 0x4082cd
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x28]
mov edi, dword [ebp - 0x44]
mov esi, dword [ebp - 0x50]
shl al, 3
or al, 4
mov byte [edi], al
mov byte [edi + 1], 0x25
mov dword [edi + 2], esi
add edi, 6
jmp 0x407ea8
test edi, edi
je 0x4082de
mov eax, dword [ebp + 0x14]
mov edx, 0x2e
jmp 0x40805d
mov eax, dword [ebp - 0x60]
movzx eax, byte [eax]
cmp eax, 0x67
mov ecx, dword [ebp - 0x54]
je 0x4082a8
cmp ecx, 0x17e
jne 0x408421
test al, 0x40
je 0x4082a8
and eax, 0xfffffff7
mov ecx, dword [ebp - 0x60]
mov byte [ecx], al
cmp eax, 0x40
jne 0x4082a8
mov eax, dword [ebp - 0x4c]
and eax, 0x40000000
jne 0x4082a8
mov eax, dword [ebp - 0x60]
inc eax
cmp eax, dword [ebp - 0x44]
je 0x408907
mov edi, dword [ebp - 0x60]
mov esi, edi
not esi
add esi, dword [ebp - 0x44]
push esi
push eax
push edi
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
add esi, edi
mov edi, esi
jmp 0x408476
mov eax, edi
mov byte [edi + 1], dh
cmp cl, 2
jne 0x408621
mov edi, eax
add edi, 2
jmp 0x408889
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
mov dword [ebp - 0x3c], eax
mov edi, dword [ebp - 0x24]
mov esi, ecx
test byte [esi + 0x38], 1
sete al
shl al, 2
add al, 4
mov dword [ebp - 0x28], eax
shr edx, 0x12
and edx, 7
movzx eax, byte [edx + 0x7911c8]
setne ah
cmp edx, 7
setne dl
and dl, ah
mov byte [edi], al
movzx eax, dl
add edi, eax
mov esi, dword [ebp + 0xc]
jmp 0x4053be
xor eax, eax
cmp ebx, 4
setae al
shl eax, 0x1e
or dword [ebp - 0x4c], eax
mov cl, 1
mov dword [ebp - 0x58], 0x80
mov esi, 1
jmp 0x4086de
mov eax, dword [ebp - 0x30]
sar eax, 0x1f
xor eax, dword [ebp - 0x3c]
jne 0x408756
mov edx, 0x8000080
mov esi, 8
jmp 0x4086aa
test al, al
je 0x408771
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x44]
mov byte [ecx + 5], al
cmp byte [ebp - 0x28], 1
jne 0x40886d
mov edi, dword [ebp - 0x44]
add edi, 6
mov dword [ebp - 0x2c], 0
mov eax, dword [ebp - 0x48]
mov cl, 1
jmp 0x404a9a
add edi, 5
mov dword [ebp - 0x2c], 0
xor ecx, ecx
mov edx, dword [ebp + 0x18]
mov eax, esi
jmp 0x407ee1
mov ecx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x60]
sub ecx, esi
je 0x40846f
mov edx, esi
not edx
mov eax, dword [ebp - 0x44]
add edx, eax
and ecx, 7
je 0x40844a
mov esi, dword [ebp - 0x44]
lea eax, [esi - 1]
movzx ebx, byte [esi - 1]
mov byte [esi], bl
mov esi, eax
dec ecx
jne 0x40843c
cmp edx, 7
mov esi, dword [ebp - 0x60]
jb 0x40846f
mov ecx, dword [eax - 4]
mov dword [eax - 3], ecx
movzx ecx, word [eax - 8]
movzx edx, word [eax - 6]
mov word [eax - 5], dx
mov word [eax - 7], cx
add eax, 0xfffffff8
cmp eax, esi
jne 0x408452
mov byte [esi], 0x67
mov edi, dword [ebp - 0x44]
inc edi
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x28]
jmp 0x4082b4
mov dword [ebp - 0x20], ebx
mov ecx, dword [ebp - 0x48]
test byte [ecx + 0x38], 1
jne 0x40877c
test dword [ebp - 0x50], 0x300
mov ebx, dword [ebp - 0x20]
jne 0x406deb
mov edi, edx
shr edi, 0xe
and edi, 3
cmp edi, 2
je 0x406deb
mov ebx, edx
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx + 0xc]
mov dword [ebp - 0x30], ecx
and ebx, 0xf8
mov dword [ebp - 0x3c], ebx
je 0x40890f
mov ecx, dword [ebp - 0x30]
sar ecx, 0x1f
jmp 0x408915
mov dword [ebp - 0x20], ebx
mov ecx, dword [ebp - 0x48]
test byte [ecx + 0x38], 1
jne 0x4087a4
test dword [ebp - 0x50], 0x300
mov ebx, dword [ebp - 0x20]
jne 0x406e38
mov edi, edx
shr edi, 0xe
and edi, 3
cmp edi, 2
je 0x406e38
mov ebx, edx
mov ecx, dword [ebp + 0x10]
mov ecx, dword [ecx + 0xc]
mov dword [ebp - 0x30], ecx
and ebx, 0xf8
mov dword [ebp - 0x3c], ebx
je 0x4089fe
mov ecx, dword [ebp - 0x30]
sar ecx, 0x1f
jmp 0x408a04
and esi, 0xf
mov eax, 0x89
or eax, dword [esi*4 + 0x7913dc]
mov dword [ebp - 0x28], 0
test dword [ebp - 0x50], 0x200
jne 0x4087f2
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x30], 0
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0x20], eax
jmp 0x4056b6
mov dword [ebp - 0x28], 0
test byte [ebp - 0x2c], 8
je 0x408589
mov dword [ebp - 0x28], 0
mov eax, dword [ebp - 0x48]
test byte [eax + 0x38], 1
jne 0x4088b3
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x30], 0
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0x20], 0x122
jmp 0x4056b6
mov dword [ebp - 0x30], 0
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x20], 0x123
jmp 0x4056b3
mov dword [ebp - 0x28], 0
test dl, 8
je 0x4085eb
mov dword [ebp - 0x28], 0
mov eax, dword [ebp - 0x48]
test byte [eax + 0x38], 1
jne 0x4088e0
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x30], 0
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0x20], 0x120
jmp 0x4056b6
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x20], 0x121
jmp 0x4056b3
mov ecx, dword [ebp - 0x38]
shr ecx, 0x10
mov edi, eax
mov byte [eax + 2], cl
add edi, 3
jmp 0x4088a9
mov eax, dword [ebp - 0x5c]
mov dword [eax + 4], 5
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x24]
mov byte [edi], 0xf
cmp ecx, 1
sbb edi, 0xffffffff
mov byte [edi], al
mov ecx, dword [ebp - 0x34]
mov eax, ecx
shl al, 3
or al, 0xc0
mov byte [edi + 1], al
inc edi
cmp ecx, 1
sbb edi, 0xffffffff
mov eax, dword [ebp - 0x5c]
movsd xmm0, qword [0x790b30]
movsd qword [eax + 8], xmm0
mov ecx, edi
mov esi, dword [ebp - 0x48]
sub ecx, dword [esi + 0x74]
mov edx, ecx
add dl, 4
mov byte [eax + 0xa], dl
mov byte [eax + 0xc], cl
mov eax, esi
mov dword [edi], 0
add edi, 4
xor ecx, ecx
jmp 0x404a93
mov esi, 4
cmp dword [ebp - 0x3c], 0
jne 0x404e46
cmp esi, 4
mov ecx, 4
cmovb ecx, esi
mov ebx, dword [ebp - 0x30]
movsx eax, bl
mov edi, eax
xor edi, ebx
sar eax, 0x1f
xor eax, dword [ebp - 0x3c]
or eax, edi
mov dword [ebp - 0x58], edx
jne 0x4086db
test byte [ebp - 0x50], 0x20
movzx eax, cl
mov ecx, 1
cmovne ecx, eax
mov ebx, dword [ebp - 0x2c]
mov edx, ebx
test ebx, ebx
je 0x40870c
xor eax, eax
mov dword [ebp - 0x28], ecx
cmp cl, 1
sete al
xor edi, edi
cmp esi, 1
lea eax, [eax + eax + 1]
cmove eax, edi
add eax, dword [ebp - 0x58]
mov dword [ebp - 0x20], eax
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0x2c], edx
jmp 0x4056b6
cmp esi, 1
setne al
cmp cl, 1
sete ah
test al, ah
jne 0x4086e4
mov eax, dword [ebp - 0x4c]
and eax, 0x20
jne 0x4086e4
xor eax, eax
cmp esi, 1
setne al
mov ecx, dword [ebp - 0x58]
and ecx, 0x8200000
mov edi, dword [ebp - 0x34]
lea eax, [eax + edi*8]
add ecx, eax
add ecx, 4
cmp esi, 4
mov eax, 4
cmovb eax, esi
mov dword [ebp - 0x28], eax
mov esi, dword [ebp + 0xc]
jmp 0x404eb6
mov esi, dword [ebp + 0xc]
mov eax, edi
mov edx, 0x32
jmp 0x40805d
mov eax, ebx
mov edx, 0x3c
jmp 0x40805d
mov edi, dword [ebp - 0x44]
add edi, 5
jmp 0x4044bf
test dword [ebp - 0x50], 0x300
mov ebx, dword [ebp - 0x20]
jne 0x406deb
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x30], eax
mov eax, edx
and eax, 0xf8
mov dword [ebp - 0x3c], eax
jmp 0x4089de
test dword [ebp - 0x50], 0x300
mov ebx, dword [ebp - 0x20]
jne 0x406e38
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x30], eax
mov eax, edx
and eax, 0xf8
mov dword [ebp - 0x3c], eax
jmp 0x408acd
xor ecx, ecx
cmp dword [ebp - 0x2c], 4
setae cl
shl ecx, 0x1e
or ecx, dword [ebp - 0x4c]
and eax, 0xff000fff
cmp eax, 0x1000021
jne 0x408814
or ecx, 0x80000000
add edx, 4
jmp 0x408821
add eax, 2
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x30], 0
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x28], 0
jmp 0x4056b3
xor eax, eax
cmp edx, 4
setae al
shl eax, 0x1e
or ecx, eax
mov dword [ebp - 0x4c], ecx
test dword [ebp - 0x4c], 0x200
jne 0x40884a
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x20], 0x88
jmp 0x4056b3
mov dword [ebp - 0x30], 0
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x20], 0x8a
jmp 0x4056b3
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x44]
mov byte [ecx + 6], ah
cmp byte [ebp - 0x28], 2
jne 0x408893
mov edi, dword [ebp - 0x44]
add edi, 7
mov dword [ebp - 0x2c], 0
mov eax, dword [ebp - 0x48]
mov cl, 2
jmp 0x404a9a
mov eax, dword [ebp - 0x38]
shr eax, 0x10
mov edi, dword [ebp - 0x44]
mov byte [edi + 7], al
add edi, 8
mov dword [ebp - 0x2c], 0
mov eax, dword [ebp - 0x48]
mov cl, 3
jmp 0x404a9a
mov ebx, dword [ebp - 0x24]
mov byte [ebx], 0xf0
inc ebx
mov ecx, dword [ebp - 0x2c]
and ecx, 7
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x20], 0x122
jmp 0x4056b6
mov ebx, dword [ebp - 0x24]
mov byte [ebx], 0xf0
inc ebx
and edx, 7
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x20], 0x120
jmp 0x4056b6
mov edi, dword [ebp - 0x60]
jmp 0x408476
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x2c], ecx
mov ebx, edx
and ebx, 0x1c0000
or edi, ebx
jne 0x4089c2
mov edi, dword [ebp - 0x48]
mov ebx, dword [edi + 0x2c]
mov edi, dword [ebx + 0x28]
mov ecx, dword [ebx + 0x2c]
mov dword [ebp - 0x38], edi
mov ebx, edi
mov dword [ebp - 0x28], ecx
and ebx, ecx
cmp ebx, 0xffffffff
je 0x4089c2
mov ecx, dword [ebp - 0x50]
add ecx, ecx
sar ecx, 0x1f
cmp esi, 8
mov ebx, 0xffffffff
cmovne ebx, ecx
mov dword [ebp - 0x44], ebx
xor ebx, ebx
cmp esi, 2
sete bl
xor ebx, 0xfffffff7
mov ecx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x48]
sub ecx, dword [edi + 0x6c]
mov dword [ebp - 0x50], ecx
mov ecx, dword [ebp - 0x44]
add ecx, ebx
add ecx, 0x80000000
add ecx, dword [ebp - 0x30]
mov dword [ebp - 0x44], ecx
mov ecx, dword [ebp - 0x2c]
adc ecx, 0
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebp - 0x48]
mov ecx, dword [ecx + 0x68]
mov dword [ebp - 0x40], ecx
mov edi, dword [ebp - 0x38]
add edi, dword [ecx + 0x10]
mov ecx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x40]
adc ecx, dword [ebx + 0x14]
add edi, dword [ebp - 0x50]
adc ecx, 0
cmp dword [ebp - 0x44], edi
sbb dword [ebp - 0x64], ecx
mov ebx, dword [ebp - 0x20]
je 0x406deb
cmp dword [ebp - 0x2c], 0
jne 0x4089de
jmp 0x406deb
mov ecx, dword [ebp - 0x2c]
dec ecx
mov edi, 0x7fffffff
cmp edi, dword [ebp - 0x30]
mov edi, 0xfffffffe
sbb edi, ecx
mov ebx, dword [ebp - 0x20]
jb 0x406deb
add ebx, 0xa2
mov eax, ebx
cmp dword [ebp - 0x3c], 0
mov dword [ebp - 0x20], ebx
jne 0x408ade
mov esi, dword [ebp + 0xc]
mov ecx, dword [esi + 4]
jmp 0x408aec
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x2c], ecx
mov ebx, edx
and ebx, 0x1c0000
or edi, ebx
jne 0x408ab1
mov edi, dword [ebp - 0x48]
mov ebx, dword [edi + 0x2c]
mov edi, dword [ebx + 0x28]
mov ecx, dword [ebx + 0x2c]
mov dword [ebp - 0x38], edi
mov ebx, edi
mov dword [ebp - 0x28], ecx
and ebx, ecx
cmp ebx, 0xffffffff
je 0x408ab1
mov ecx, dword [ebp - 0x50]
add ecx, ecx
sar ecx, 0x1f
cmp esi, 8
mov ebx, 0xffffffff
cmovne ebx, ecx
mov dword [ebp - 0x44], ebx
xor ebx, ebx
cmp esi, 2
sete bl
xor ebx, 0xfffffff7
mov ecx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x48]
sub ecx, dword [edi + 0x6c]
mov dword [ebp - 0x50], ecx
mov ecx, dword [ebp - 0x44]
add ecx, ebx
add ecx, 0x80000000
add ecx, dword [ebp - 0x30]
mov dword [ebp - 0x44], ecx
mov ecx, dword [ebp - 0x2c]
adc ecx, 0
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebp - 0x48]
mov ecx, dword [ecx + 0x68]
mov dword [ebp - 0x40], ecx
mov edi, dword [ebp - 0x38]
add edi, dword [ecx + 0x10]
mov ecx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x40]
adc ecx, dword [ebx + 0x14]
add edi, dword [ebp - 0x50]
adc ecx, 0
cmp dword [ebp - 0x44], edi
sbb dword [ebp - 0x64], ecx
mov ebx, dword [ebp - 0x20]
je 0x406e38
cmp dword [ebp - 0x2c], 0
jne 0x408acd
jmp 0x406e38
mov ecx, dword [ebp - 0x2c]
dec ecx
mov edi, 0x7fffffff
cmp edi, dword [ebp - 0x30]
mov edi, 0xfffffffe
sbb edi, ecx
mov ebx, dword [ebp - 0x20]
jb 0x406e38
add ebx, 0xa0
mov eax, ebx
cmp dword [ebp - 0x3c], 0
mov dword [ebp - 0x20], ebx
je 0x408ae6
mov ecx, dword [ebp - 0x30]
sar ecx, 0x1f
jmp 0x408aec
mov edi, dword [ebp + 0x10]
mov ecx, dword [edi + 4]
mov dword [ebp - 0x3c], ecx
mov esi, dword [ebp - 0x48]
mov edi, dword [ebp - 0x24]
jmp 0x408364