Function at 0x4054ac
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffeac
push ebx
push esi
push edi
mov esi, 0x4cd178
test byte [ebp + 0x17], 0x80
je 0x4054d3
mov dword [ebp - 0x14], 1
and dword [ebp + 0x14], 0x7fffffff
jmp 0x4054d8
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp + 0x10], 0
je 0x4054e6
mov edx, dword [ebp + 0x10]
xor ecx, ecx
mov dword [edx + 0x20], ecx
cmp dword [ebp + 8], 0
je 0x4054f8
cmp dword [ebp + 0x10], 0
je 0x4054f8
cmp dword [ebp + 0x1c], 0
jne 0x40551b
cmp dword [ebp + 0x1c], 0
je 0x405514
mov eax, dword [ebp + 0x1c]
mov esi, 0x4b0642
mov edi, eax
mov eax, edi
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
xor eax, eax
jmp 0x407bfe
mov edx, dword [ebp + 8]
xor ecx, ecx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp + 0x1c]
mov dword [0x4cd170], edx
mov byte [eax], 0
push 5
call fcn.00401150
pop ecx
cmp dword [esi], 0
jne 0x405546
xor eax, eax
jmp 0x407bfe
cmp dword [esi], 0x29
jne 0x4058e5
cmp dword [ebp + 0x14], 0
je 0x40555c
xor eax, eax
jmp 0x407bfe
mov edx, dword [0x4cd280]
mov dword [ebp - 4], edx
xor edi, edi
push 0
call fcn.00401150
pop ecx
cmp dword [esi], 0
jne 0x40558e
mov eax, dword [ebp + 0x1c]
mov esi, str.Constant_expected
mov edi, eax
mov eax, edi
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x407bed
cmp dword [esi], 0x1c
jne 0x4055ad
mov edx, dword [ebp + 0x1c]
mov esi, str.Undefined_constant_is_not_allowed
mov edi, edx
mov eax, edi
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x407bed
mov edx, dword [ebp - 4]
add edx, edi
cmp edx, 0x10
jle 0x4055d1
mov ecx, dword [ebp + 0x1c]
mov esi, str.Total_size_is_limited_to_16_bytes
mov edi, ecx
mov eax, edi
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x407bed
cmp dword [esi], 0x1a
jne 0x405670
cmp dword [ebp - 4], 1
jne 0x4055ec
cmp dword [0x4cd280], 0xff
ja 0x4055fe
cmp dword [ebp - 4], 2
jne 0x405617
cmp dword [0x4cd280], 0xffff
jbe 0x405617
mov edx, dword [ebp + 0x1c]
mov esi, str.Constant_is_out_of_range
mov edi, edx
mov eax, edi
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
jmp 0x407bed
cmp dword [ebp - 4], 4
jg 0x405639
mov edx, dword [ebp - 4]
push edx
push 0x4cd280
mov ecx, dword [ebp + 0x10]
add ecx, edi
push ecx
call fcn.004a3530
add esp, 0xc
jmp 0x405878
mov eax, dword [ebp - 4]
add eax, 0xfffffffc
push eax
push 0
mov edx, dword [ebp + 0x10]
add edx, edi
push edx
call fcn.004a35a0
add esp, 0xc
push 4
push 0x4cd280
mov ecx, dword [ebp + 0x10]
add ecx, edi
add ecx, dword [ebp - 4]
add ecx, 0xfffffffc
push ecx
call fcn.004a3530
add esp, 0xc
jmp 0x405878
cmp dword [esi], 0x1b
jne 0x405737
cmp dword [ebp - 4], 1
jne 0x405694
cmp dword [0x4cd280], 0xff
jg 0x4056b2
cmp dword [0x4cd280], 0xffffff80
jl 0x4056b2
cmp dword [ebp - 4], 2
jne 0x4056cb
cmp dword [0x4cd280], 0xffff
jg 0x4056b2
cmp dword [0x4cd280], 0xffff8000
jge 0x4056cb
mov eax, dword [ebp + 0x1c]
mov esi, str.Constant_is_out_of_range
mov edi, eax
mov eax, edi
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
jmp 0x407bed
cmp dword [ebp - 4], 4
jg 0x4056ed
mov edx, dword [ebp - 4]
push edx
push 0x4cd280
mov ecx, dword [ebp + 0x10]
add ecx, edi
push ecx
call fcn.004a3530
add esp, 0xc
jmp 0x405878
mov eax, dword [ebp - 4]
mov edx, 0xff
add eax, 0xfffffffc
test byte [0x4cd283], 0x80
push eax
jne 0x405708
add edx, 0xffffff01
push edx
mov ecx, dword [ebp + 0x10]
add ecx, edi
push ecx
call fcn.004a35a0
add esp, 0xc
push 4
push 0x4cd280
mov eax, dword [ebp + 0x10]
add eax, edi
add eax, dword [ebp - 4]
add eax, 0xfffffffc
push eax
call fcn.004a3530
add esp, 0xc
jmp 0x405878
cmp dword [esi], 0x1d
jne 0x40585e
cmp dword [ebp - 4], 4
jne 0x4057a2
push 0
push 0
call fcn.004aa1f8
add esp, 8
mov dword [ebp - 0x68], eax
push 0x3f
push 0x3f
call fcn.004aa1f8
add esp, 8
call fcn.004aa1e4
fld xword [0x4cd284]
fstp dword [ebp - 0x7c]
call fcn.004ab6e4
mov ebx, eax
lea eax, [ebp - 0x7c]
push 4
push eax
mov edx, dword [ebp + 0x10]
add edx, edi
push edx
call fcn.004a3530
add esp, 0xc
call fcn.004aa1e4
push 0x3f
mov ecx, dword [ebp - 0x68]
push ecx
call fcn.004aa1f8
add esp, 8
jmp 0x405840
cmp dword [ebp - 4], 8
jne 0x405807
push 0
push 0
call fcn.004aa1f8
add esp, 8
mov dword [ebp - 0x68], eax
push 0x3f
push 0x3f
call fcn.004aa1f8
add esp, 8
call fcn.004aa1e4
fld xword [0x4cd284]
fstp qword [ebp - 0x84]
call fcn.004ab6e4
mov ebx, eax
lea eax, [ebp - 0x84]
push 8
push eax
mov edx, dword [ebp + 0x10]
add edx, edi
push edx
call fcn.004a3530
add esp, 0xc
call fcn.004aa1e4
push 0x3f
mov ecx, dword [ebp - 0x68]
push ecx
call fcn.004aa1f8
add esp, 8
jmp 0x405840
cmp dword [ebp - 4], 0xa
jne 0x405826
push 0xa
push 0x4cd284
mov eax, dword [ebp + 0x10]
add eax, edi
push eax
call fcn.004a3530
add esp, 0xc
xor ebx, ebx
jmp 0x405840
mov eax, dword [ebp + 0x1c]
mov esi, str.Unsupported_size_of_floating_constant
mov edi, eax
mov eax, edi
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x407bed
test bl, 0xb
je 0x405878
mov edx, dword [ebp + 0x1c]
mov esi, str.FPU_error_during_conversion_detected
mov edi, edx
mov eax, edi
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
jmp 0x407bed
mov edx, dword [ebp + 0x1c]
mov esi, str.Constant_expected
mov edi, edx
mov eax, edi
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x407bed
add edi, dword [ebp - 4]
push 0
call fcn.00401150
pop ecx
cmp dword [esi], 0
je 0x4058ab
cmp dword [esi], 0x40
jne 0x40556f
cmp dword [0x4cd280], 0x2c
jne 0x40556f
push 0
call fcn.00401150
pop ecx
jmp 0x40556f
push edi
push 0xff
mov edx, dword [ebp + 0x10]
add edx, 0x10
push edx
call fcn.004a35a0
mov ecx, dword [ebp + 0x10]
xor edx, edx
add esp, 0xc
mov dword [ecx + 0x20], edi
mov eax, dword [ebp + 0x10]
mov dword [eax + 0x24], edx
xor eax, eax
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0x28], eax
xor ecx, ecx
mov edx, dword [ebp + 0x10]
mov eax, edi
mov dword [edx + 0x2c], ecx
jmp 0x407bfe
cmp dword [esi], 0x15
je 0x4058f8
cmp dword [esi], 0x16
je 0x4058f8
cmp dword [esi], 0x17
jne 0x405979
cmp dword [ebp - 0x34], 0
je 0x40591e
mov edx, dword [ebp + 0x1c]
mov esi, str.Duplicated_REP_prefix
mov edi, edx
mov eax, edi
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x407bed
inc dword [0x4cd170]
mov edx, dword [0x4cd170]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x20
je 0x405918
mov eax, dword [0x4cd170]
xor edx, edx
mov dl, byte [eax]
cmp edx, 9
je 0x405918
mov ecx, dword [0x4cd170]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x2e
jne 0x405972
cmp dword [0x4d916c], 2
je 0x40596c
mov edx, dword [ebp + 0x1c]
mov esi, str.To_use_HLA_syntax__change_disasm_mode_to_HLA
mov edi, edx
mov eax, edi
mov ecx, 0xb
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
jmp 0x407bed
inc dword [0x4cd170]
mov edx, dword [esi]
mov dword [ebp - 0x34], edx
jmp 0x4059a4
cmp dword [esi], 0x18
jne 0x4059b1
cmp dword [ebp - 0x38], 0
je 0x40599f
mov ecx, dword [ebp + 0x1c]
mov esi, str.Duplicated_LOCK_prefix
mov edi, ecx
mov eax, edi
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jmp 0x407bed
mov edx, dword [esi]
mov dword [ebp - 0x38], edx
push 5
call fcn.00401150
pop ecx
jmp 0x4058e5
cmp dword [esi], 0x19
jne 0x4059bf
cmp dword [0x4cd280], 0x10
jle 0x4059d9
mov ecx, dword [ebp + 0x1c]
mov esi, str.Command_mnemonic_expected
mov edi, ecx
mov eax, edi
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x407bed
mov edx, dword [0x4cd170]
mov dword [ebp - 0x88], edx
push 0x4cd180
call fcn.004a9850
cmp dword [ebp - 0x34], 0x15
pop ecx
jne 0x405a11
push 0x4cd180
push str.REP__s
lea ecx, [ebp - 0xa8]
push ecx
call fcn.004a6c2c
add esp, 0xc
jmp 0x405a7d
cmp dword [ebp - 0x34], 0x16
jne 0x405a32
push 0x4cd180
push str.REPE__s
lea eax, [ebp - 0xa8]
push eax
call fcn.004a6c2c
add esp, 0xc
jmp 0x405a7d
cmp dword [ebp - 0x34], 0x17
jne 0x405a53
push 0x4cd180
push str.REPNE__s
lea edx, [ebp - 0xa8]
push edx
call fcn.004a6c2c
add esp, 0xc
jmp 0x405a7d
xor eax, eax
push esi
or ecx, 0xffffffff
mov edi, 0x4cd180
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea esi, [ebp - 0xa8]
xchg edi, esi
mov edx, ecx
mov eax, edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop esi
push 0
call fcn.00401150
pop ecx
cmp dword [esi], 0x40
jne 0x405ac6
cmp dword [0x4cd280], 0x28
jne 0x405ac6
cmp dword [0x4d916c], 2
je 0x405ab5
mov eax, dword [ebp + 0x1c]
mov esi, str.To_use_HLA_syntax__change_disasm_mode_to_HLA
mov edi, eax
mov eax, edi
mov ecx, 0xb
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
jmp 0x407bed
mov dword [ebp - 0x18], 1
push 0
call fcn.00401150
pop ecx
jmp 0x405acb
xor edx, edx
mov dword [ebp - 0x18], edx
xor ecx, ecx
lea eax, [ebp - 0x154]
mov dword [ebp - 4], ecx
xor edx, edx
xor ecx, ecx
mov dword [eax], edx
mov dword [eax + 4], ecx
mov dword [eax + 8], 0xffffffff
xor edx, edx
xor ecx, ecx
mov dword [eax + 0xc], edx
xor edx, edx
mov dword [eax + 0x10], 0xffffffff
mov dword [eax + 0x14], ecx
mov dword [eax + 0x18], edx
mov dword [eax + 0x1c], 0xffffffff
xor ecx, ecx
mov dword [eax + 0x20], ecx
add eax, 0x24
inc dword [ebp - 4]
cmp dword [ebp - 4], 3
jl 0x405ad6
mov eax, dword [ebp - 0x14]
push eax
lea eax, [ebp - 0x154]
push eax
call fcn.00402c44
add esp, 8
mov edx, dword [ebp - 0x134]
mov dword [ebp - 0x44], edx
cmp dword [ebp - 0x44], 0
je 0x405b3d
or dword [ebp - 0x44], 0x80
cmp dword [esi], 0x40
jne 0x405b8f
cmp dword [0x4cd280], 0x2c
jne 0x405b8f
push 0
call fcn.00401150
pop ecx
mov ecx, dword [ebp - 0x14]
push ecx
lea eax, [ebp - 0x130]
push eax
call fcn.00402c44
add esp, 8
cmp dword [esi], 0x40
jne 0x405b8f
cmp dword [0x4cd280], 0x2c
jne 0x405b8f
push 0
call fcn.00401150
pop ecx
mov edx, dword [ebp - 0x14]
push edx
lea ecx, [ebp - 0x10c]
push ecx
call fcn.00402c44
add esp, 8
cmp dword [ebp - 0x10c], 0
je 0x405ba1
mov dword [ebp - 0x30], 3
jmp 0x405bca
cmp dword [ebp - 0x130], 0
je 0x405bb3
mov dword [ebp - 0x30], 2
jmp 0x405bca
cmp dword [ebp - 0x154], 0
je 0x405bc5
mov dword [ebp - 0x30], 1
jmp 0x405bca
xor eax, eax
mov dword [ebp - 0x30], eax
cmp dword [esi], 0xff
jne 0x405c01
mov ecx, dword [0x4cd290]
xor eax, eax
mov edi, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
mov edx, dword [ebp + 0x1c]
sub edi, ecx
mov esi, edx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x407bed
cmp dword [ebp - 0x18], 0
je 0x405c36
cmp dword [esi], 0x40
jne 0x405c15
cmp dword [0x4cd280], 0x29
je 0x405c2e
mov eax, dword [ebp + 0x1c]
mov esi, str.Closing_parenthesis_expected
mov edi, eax
mov eax, edi
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
jmp 0x407bed
push 0
call fcn.00401150
pop ecx
cmp dword [esi], 0
je 0x405c55
mov edx, dword [ebp + 0x1c]
mov esi, str.Extra_input_after_operand
mov edi, edx
mov eax, edi
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x407bed
xor edx, edx
mov dword [ebp - 0x48], edx
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0xc], ecx
lea edx, [ebp - 0xa8]
mov dword [ebp - 0x28], 3
mov dword [ebp - 0x2c], eax
push edx
call fcn.004a36d4
pop ecx
mov dword [ebp - 8], eax
mov esi, 0x4c286c
jmp 0x406a4c
mov eax, dword [esi + 0x13]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x26
jne 0x405d8d
mov dword [ebp - 0x1c], 2
mov dword [ebp - 0x20], 4
mov ebx, 1
xor eax, eax
mov dword [ebp - 4], eax
lea eax, [ebp - 0xa8]
mov edx, dword [esi + 0x13]
lea edi, [edx + ebx]
jmp 0x405d15
xor ecx, ecx
mov cl, dl
cmp ecx, 0x2a
jne 0x405d0b
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x57
jne 0x405cda
mov dword [ebp - 0x1c], 2
inc dword [ebp - 4]
inc eax
jmp 0x405d13
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x44
jne 0x405cf0
mov dword [ebp - 0x1c], 4
inc dword [ebp - 4]
inc eax
jmp 0x405d13
cmp dword [0x4d9194], 0
jne 0x405d02
mov dword [ebp - 0x1c], 2
jmp 0x405d13
mov dword [ebp - 0x1c], 4
jmp 0x405d13
cmp dl, byte [eax]
jne 0x405d24
inc dword [ebp - 4]
inc eax
inc ebx
inc edi
mov dl, byte [edi]
test dl, dl
je 0x405d24
xor ecx, ecx
mov cl, dl
cmp ecx, 0x3a
jne 0x405cbb
mov eax, dword [ebp - 4]
cmp byte [ebp + eax - 0xa8], 0
jne 0x405d47
mov eax, dword [esi + 0x13]
mov al, byte [eax + ebx]
test al, al
je 0x405d7e
mov edx, dword [esi + 0x13]
xor ecx, ecx
mov cl, al
cmp ecx, 0x3a
je 0x405d7e
mov eax, dword [esi + 0x13]
add eax, ebx
jmp 0x405d50
inc ebx
inc eax
mov dl, byte [eax]
test dl, dl
je 0x405d5f
xor ecx, ecx
mov cl, dl
cmp ecx, 0x3a
jne 0x405d4e
mov eax, dword [esi + 0x13]
xor edx, edx
mov dl, byte [eax + ebx]
cmp edx, 0x3a
jne 0x405d79
mov dword [ebp - 0x1c], 4
inc ebx
jmp 0x405ca8
xor ecx, ecx
mov dword [ebp - 4], ecx
cmp dword [ebp - 4], 0
je 0x406a49
jmp 0x405ef9
mov eax, dword [esi + 0x13]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x24
jne 0x405e90
mov ebx, 1
xor eax, eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], 2
xor edx, edx
mov dword [ebp - 4], edx
lea eax, [ebp - 0xa8]
mov edx, dword [esi + 0x13]
add edx, ebx
jmp 0x405e1c
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x2a
jne 0x405e10
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0x57
jne 0x405ddf
mov dword [ebp - 0x20], 2
inc dword [ebp - 4]
inc eax
jmp 0x405e1a
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0x44
jne 0x405df5
mov dword [ebp - 0x20], 4
inc dword [ebp - 4]
inc eax
jmp 0x405e1a
cmp dword [0x4d9194], 0
jne 0x405e07
mov dword [ebp - 0x20], 2
jmp 0x405e1a
mov dword [ebp - 0x20], 4
jmp 0x405e1a
mov cl, byte [edx]
cmp cl, byte [eax]
jne 0x405e2a
inc dword [ebp - 4]
inc eax
inc ebx
inc edx
cmp byte [edx], 0
je 0x405e2a
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3a
jne 0x405dc0
mov eax, dword [ebp - 4]
cmp byte [ebp + eax - 0xa8], 0
jne 0x405e4d
mov edx, dword [esi + 0x13]
mov al, byte [edx + ebx]
test al, al
je 0x405e84
mov edx, dword [esi + 0x13]
xor ecx, ecx
mov cl, al
cmp ecx, 0x3a
je 0x405e84
mov eax, dword [esi + 0x13]
add eax, ebx
jmp 0x405e56
inc ebx
inc eax
mov dl, byte [eax]
test dl, dl
je 0x405e65
xor ecx, ecx
mov cl, dl
cmp ecx, 0x3a
jne 0x405e54
mov eax, dword [esi + 0x13]
xor edx, edx
mov dl, byte [eax + ebx]
cmp edx, 0x3a
jne 0x405e7f
mov dword [ebp - 0x20], 4
inc ebx
jmp 0x405dae
xor ecx, ecx
mov dword [ebp - 4], ecx
cmp dword [ebp - 4], 0
je 0x406a49
jmp 0x405ef9
xor eax, eax
mov edi, eax
mov ebx, eax
xor eax, eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], 4
mov edx, dword [esi + 0x13]
lea eax, [edx + ebx]
jmp 0x405eac
inc ebx
inc eax
mov dl, byte [eax]
xor ecx, ecx
mov cl, dl
cmp ecx, 0x2c
je 0x405ebb
test dl, dl
jne 0x405eaa
mov eax, ebx
sub eax, edi
cmp eax, dword [ebp - 8]
jne 0x405ee1
mov edx, dword [ebp - 8]
push edx
mov ecx, dword [esi + 0x13]
add ecx, edi
push ecx
lea eax, [ebp - 0xa8]
push eax
call fcn.004a3954
add esp, 0xc
test eax, eax
je 0x405ef1
lea edi, [ebx + 1]
mov eax, dword [esi + 0x13]
cmp byte [eax + ebx], 0
je 0x405ef1
mov ebx, edi
jmp 0x405ea2
cmp ebx, edi
jl 0x406a49
inc dword [ebp - 0xc]
cmp byte [esi + 0xb], 0
je 0x405f0e
xor eax, eax
mov al, byte [esi + 0xb]
cmp eax, 0x80
jl 0x405f15
xor edx, edx
mov dword [ebp - 0x28], edx
jmp 0x405f79
cmp byte [esi + 0xc], 0
je 0x405f28
xor ecx, ecx
mov cl, byte [esi + 0xc]
cmp ecx, 0x80
jl 0x405f44
cmp dword [ebp - 0x28], 1
jle 0x405f35
mov dword [ebp - 0x28], 1
cmp dword [ebp - 0x2c], 1
jge 0x405f79
mov dword [ebp - 0x2c], 1
jmp 0x405f79
cmp byte [esi + 0xd], 0
je 0x405f56
xor eax, eax
mov al, byte [esi + 0xd]
cmp eax, 0x80
jl 0x405f72
cmp dword [ebp - 0x28], 2
jle 0x405f63
mov dword [ebp - 0x28], 2
cmp dword [ebp - 0x2c], 2
jge 0x405f79
mov dword [ebp - 0x2c], 2
jmp 0x405f79
mov dword [ebp - 0x2c], 3
xor edx, edx
mov dl, byte [esi + 9]
cmp edx, 0x20
jne 0x405f8a
mov dword [ebp - 0x1c], 2
xor ecx, ecx
mov cl, byte [esi + 9]
dec ecx
je 0x405fb3
xor eax, eax
mov al, byte [esi + 9]
cmp eax, 3
je 0x405fb3
xor edx, edx
mov dl, byte [esi + 9]
cmp edx, 8
je 0x405fb3
xor ecx, ecx
mov cl, byte [esi + 9]
cmp ecx, 0x81
jne 0x405fbc
mov dword [ebp - 0x24], 1
jmp 0x405fc1
xor eax, eax
mov dword [ebp - 0x24], eax
xor edx, edx
xor ebx, ebx
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x18], 0
je 0x406002
test byte [esi + 0xa], 0x10
jne 0x406002
cmp ebx, dword [ebp - 0x30]
jl 0x405feb
mov edi, ebx
shl edi, 2
lea edi, [edi + edi*8]
lea eax, [ebp - 0x154]
add edi, eax
jmp 0x406012
mov edx, dword [ebp - 0x30]
sub edx, ebx
mov edi, edx
shl edi, 2
lea edi, [edi + edi*8]
lea eax, [ebp - 0x178]
add edi, eax
jmp 0x406012
mov edi, ebx
shl edi, 2
lea edi, [edi + edi*8]
lea eax, [ebp - 0x154]
add edi, eax
test ebx, ebx
jne 0x40601d
xor eax, eax
mov al, byte [esi + 0xb]
jmp 0x40602e
cmp ebx, 1
jne 0x406029
xor eax, eax
mov al, byte [esi + 0xc]
jmp 0x40602e
xor eax, eax
mov al, byte [esi + 0xd]
test eax, eax
je 0x406039
cmp eax, 0x80
jl 0x40604b
cmp dword [edi], 0
je 0x406a35
or dword [ebp - 0x10], 2
jmp 0x406a35
cmp dword [edi], 0
jne 0x406059
or dword [ebp - 0x10], 2
jmp 0x406a35
mov edx, eax
cmp edx, 0x91
ja case.0x40606d.0
mov dl, byte [edx + 0x406074]
jmp dword [edx*4 + 0x406106]
cmp dword [edi], 1
je 0x4061df
or dword [ebp - 0x10], 4
cmp eax, 6
jne 0x4061f4
cmp dword [edi + 8], 0
je 0x4061f4
cmp dword [edi + 8], 8
je 0x4061f4
or dword [ebp - 0x10], 4
cmp dword [ebp - 0x24], 0
jne 0x406204
cmp dword [edi + 4], 1
jne 0x406204
or dword [ebp - 0x10], 0x10
cmp dword [ebp - 0x1c], 0
jne 0x406210
mov ecx, dword [edi + 4]
mov dword [ebp - 0x1c], ecx
mov eax, dword [edi + 4]
cmp eax, dword [ebp - 0x1c]
je case.0x40606d.1
or dword [ebp - 0x10], 0x20
jmp case.0x40606d.1
cmp dword [edi], 1
je 0x40622e
or dword [ebp - 0x10], 4
cmp dword [edi + 4], 2
je case.0x40606d.1
or dword [ebp - 0x10], 0x10
jmp case.0x40606d.1
cmp dword [edi], 1
je 0x40624a
or dword [ebp - 0x10], 4
cmp dword [edi + 8], 8
jl 0x406257
or dword [ebp - 0x10], 0x100
cmp dword [ebp - 0x24], 0
jne 0x406267
cmp dword [edi + 4], 1
jne 0x406267
or dword [ebp - 0x10], 0x10
cmp dword [ebp - 0x1c], 0
jne 0x406273
mov edx, dword [edi + 4]
mov dword [ebp - 0x1c], edx
mov ecx, dword [edi + 4]
cmp ecx, dword [ebp - 0x1c]
je case.0x40606d.1
or dword [ebp - 0x10], 0x20
jmp case.0x40606d.1
cmp dword [edi], 1
je 0x406291
or dword [ebp - 0x10], 4
cmp dword [edi + 4], 4
je 0x40629b
or dword [ebp - 0x10], 0x10
cmp dword [ebp - 0x1c], 0
jne 0x4062a7
mov eax, dword [edi + 4]
mov dword [ebp - 0x1c], eax
mov edx, dword [edi + 4]
cmp edx, dword [ebp - 0x1c]
je case.0x40606d.1
or dword [ebp - 0x10], 0x20
jmp case.0x40606d.1
cmp dword [edi], 1
jne 0x4062cd
cmp dword [edi + 8], 0
je 0x4062d1
cmp dword [edi + 8], 8
je 0x4062d1
or dword [ebp - 0x10], 4
cmp dword [edi + 4], 2
je 0x4062db
or dword [ebp - 0x10], 0x10
cmp dword [ebp - 0x1c], 0
jne 0x4062e7
mov ecx, dword [edi + 4]
mov dword [ebp - 0x1c], ecx
mov eax, dword [edi + 4]
cmp eax, dword [ebp - 0x1c]
je case.0x40606d.1
or dword [ebp - 0x10], 0x20
jmp case.0x40606d.1
cmp dword [edi], 1
jne 0x40630d
cmp dword [edi + 8], 2
je 0x406311
cmp dword [edi + 8], 8
je 0x406311
or dword [ebp - 0x10], 4
cmp dword [edi + 4], 2
je case.0x40606d.1
or dword [ebp - 0x10], 0x10
jmp case.0x40606d.1
cmp dword [edi], 1
jne 0x406335
cmp dword [edi + 8], 1
je 0x406339
cmp dword [edi + 8], 8
je 0x406339
or dword [ebp - 0x10], 4
cmp dword [edi + 4], 1
je case.0x40606d.1
or dword [ebp - 0x10], 0x10
jmp case.0x40606d.1
cmp dword [edi], 0xb
jne 0x406365
cmp dword [edi + 8], 0
je case.0x40606d.1
cmp dword [edi + 8], 8
je case.0x40606d.1
or dword [ebp - 0x10], 4
jmp case.0x40606d.1
cmp dword [edi], 0xb
je case.0x40606d.1
or dword [ebp - 0x10], 4
jmp case.0x40606d.1
cmp dword [edi], 0xc
je case.0x40606d.1
or dword [ebp - 0x10], 4
jmp case.0x40606d.1
cmp dword [edi], 0xe
je case.0x40606d.1
or dword [ebp - 0x10], 4
jmp case.0x40606d.1
cmp dword [edi], 0xf
je 0x4063b2
cmp dword [edi], 1
je 0x4063b2
or dword [ebp - 0x10], 4
cmp dword [ebp - 0x24], 0
jne 0x4063c2
cmp dword [edi + 4], 1
jne 0x4063c2
or dword [ebp - 0x10], 0x10
cmp dword [ebp - 0x1c], 0
jne 0x4063ce
mov edx, dword [edi + 4]
mov dword [ebp - 0x1c], edx
cmp dword [edi + 4], 0
je case.0x40606d.1
mov ecx, dword [edi + 4]
cmp ecx, dword [ebp - 0x1c]
je case.0x40606d.1
or dword [ebp - 0x10], 0x20
jmp case.0x40606d.1
cmp dword [edi], 0xf
je 0x4063fb
cmp dword [edi], 1
je 0x4063fb
or dword [ebp - 0x10], 4
cmp dword [edi + 4], 0
je case.0x40606d.1
cmp dword [edi + 4], 1
je case.0x40606d.1
or dword [ebp - 0x10], 0x10
jmp case.0x40606d.1
cmp dword [edi], 0xf
je 0x406426
cmp dword [edi], 1
je 0x406426
or dword [ebp - 0x10], 4
cmp dword [edi + 4], 0
je case.0x40606d.1
cmp dword [edi + 4], 2
je case.0x40606d.1
or dword [ebp - 0x10], 0x10
jmp case.0x40606d.1
cmp dword [edi], 0xf
je 0x406451
cmp dword [edi], 1
je 0x406451
or dword [ebp - 0x10], 4
cmp dword [edi + 4], 0
je case.0x40606d.1
cmp dword [edi + 4], 4
je case.0x40606d.1
or dword [ebp - 0x10], 0x10
jmp case.0x40606d.1
cmp dword [edi], 1
je 0x406477
or dword [ebp - 0x10], 4
cmp dword [edi + 4], 0
je case.0x40606d.1
cmp dword [edi + 4], 4
je case.0x40606d.1
or dword [ebp - 0x10], 0x10
jmp case.0x40606d.1
cmp dword [edi], 0xf
je 0x4064a2
cmp dword [edi], 1
je 0x4064a2
or dword [ebp - 0x10], 4
cmp dword [edi + 4], 0
je 0x4064b2
cmp dword [edi + 4], 4
je 0x4064b2
or dword [ebp - 0x10], 0x10
test byte [ebp - 0x44], 9
je 0x4064bc
or dword [ebp - 0x10], 1
and dword [ebp - 0x44], 0x7f
jmp case.0x40606d.1
cmp dword [edi], 0xf
je 0x4064d3
cmp dword [edi], 0xc
je 0x4064d3
or dword [ebp - 0x10], 4
cmp dword [edi + 4], 0
je case.0x40606d.1
cmp dword [edi + 4], 8
je case.0x40606d.1
or dword [ebp - 0x10], 0x10
jmp case.0x40606d.1
cmp dword [edi], 0xc
je 0x4064f9
or dword [ebp - 0x10], 4
cmp dword [edi + 4], 0
je case.0x40606d.1
cmp dword [edi + 4], 8
je case.0x40606d.1
or dword [ebp - 0x10], 0x10
jmp case.0x40606d.1
cmp dword [edi], 0xe
je 0x40651f
or dword [ebp - 0x10], 4
cmp dword [edi + 4], 0
je case.0x40606d.1
cmp dword [edi + 4], 0x10
je case.0x40606d.1
or dword [ebp - 0x10], 0x10
jmp case.0x40606d.1
cmp dword [edi], 0xf
je 0x40654a
cmp dword [edi], 0xe
je 0x40654a
or dword [ebp - 0x10], 4
cmp dword [edi + 4], 0
je case.0x40606d.1
cmp dword [edi + 4], 0x10
je case.0x40606d.1
or dword [ebp - 0x10], 0x10
jmp case.0x40606d.1
cmp dword [edi], 0xf
je 0x406575
cmp dword [edi], 0xe
je 0x406575
or dword [ebp - 0x10], 4
cmp dword [edi + 4], 0
je case.0x40606d.1
cmp dword [edi + 4], 4
je case.0x40606d.1
or dword [ebp - 0x10], 0x10
jmp case.0x40606d.1
cmp dword [edi], 0xf
je 0x40659b
or dword [ebp - 0x10], 4
cmp dword [edi + 4], 0
je case.0x40606d.1
cmp dword [edi + 4], 8
je case.0x40606d.1
or dword [ebp - 0x10], 0x10
jmp case.0x40606d.1
cmp dword [edi], 0xf
je case.0x40606d.1
or dword [ebp - 0x10], 4
jmp case.0x40606d.1
cmp dword [edi], 0xf
je 0x4065d3
or dword [ebp - 0x10], 4
cmp dword [edi + 4], 0
je 0x4065e3
cmp dword [edi + 4], 6
je 0x4065e3
or dword [ebp - 0x10], 0x10
cmp dword [ebp - 0x1c], 0
jne 0x4065f5
mov dword [ebp - 0x1c], 4
jmp case.0x40606d.1
cmp dword [ebp - 0x1c], 4
je case.0x40606d.1
or dword [ebp - 0x10], 0x20
jmp case.0x40606d.1
cmp dword [edi], 0xf
je 0x406611
or dword [ebp - 0x10], 4
cmp dword [edi + 4], 0
je 0x406621
cmp dword [edi + 4], 6
je 0x406621
or dword [ebp - 0x10], 0x10
test byte [ebp - 0x44], 7
je 0x40662b
or dword [ebp - 0x10], 1
and dword [ebp - 0x44], 0x7f
jmp case.0x40606d.1
cmp dword [edi], 0xf
je 0x40663d
or dword [ebp - 0x10], 4
cmp dword [edi + 4], 0
je case.0x40606d.1
cmp dword [edi + 4], 6
je case.0x40606d.1
or dword [ebp - 0x10], 0x10
jmp case.0x40606d.1
cmp dword [edi], 0xf
je 0x406663
or dword [ebp - 0x10], 4
mov edi, dword [edi + 4]
cmp dword [0x4d916c], 0
jne 0x406680
cmp edi, 1
jle 0x406680
mov ecx, 2
mov eax, edi
cdq
idiv ecx
mov edi, eax
test edi, edi
je case.0x40606d.1
cmp edi, dword [ebp - 0x1c]
je case.0x40606d.1
or dword [ebp - 0x10], 0x20
jmp case.0x40606d.1
cmp dword [edi], 0xf
je 0x4066a3
or dword [ebp - 0x10], 4
cmp dword [edi + 4], 0
je case.0x40606d.1
cmp dword [edi + 4], 2
je case.0x40606d.1
or dword [ebp - 0x10], 0x10
jmp case.0x40606d.1
cmp dword [edi], 0xf
je 0x4066c9
or dword [ebp - 0x10], 4
cmp dword [edi + 4], 0
je case.0x40606d.1
cmp dword [edi + 4], 4
je case.0x40606d.1
or dword [ebp - 0x10], 0x10
jmp case.0x40606d.1
cmp dword [edi], 0xf
je 0x4066ef
or dword [ebp - 0x10], 4
cmp dword [edi + 4], 0
je case.0x40606d.1
cmp dword [edi + 4], 8
je case.0x40606d.1
or dword [ebp - 0x10], 0x10
jmp case.0x40606d.1
cmp dword [edi], 0xf
je 0x406715
or dword [ebp - 0x10], 4
cmp dword [edi + 4], 0
je case.0x40606d.1
cmp dword [edi + 4], 0xa
je case.0x40606d.1
or dword [ebp - 0x10], 0x10
jmp case.0x40606d.1
cmp dword [edi], 0xf
je 0x40673b
or dword [ebp - 0x10], 4
cmp dword [edi + 4], 0
je case.0x40606d.1
or dword [ebp - 0x10], 0x10
jmp case.0x40606d.1
cmp dword [edi], 0xf
jne 0x40676b
cmp dword [edi + 0x10], 6
jne 0x40676b
cmp dword [edi + 8], 0xffffffff
jne 0x40676b
cmp dword [edi + 0x14], 0
jne 0x40676b
cmp dword [edi + 0x18], 0
je 0x40676f
or dword [ebp - 0x10], 4
cmp dword [edi + 4], 1
je 0x406785
cmp dword [edi + 4], 2
je 0x406785
cmp dword [edi + 4], 4
je 0x406785
or dword [ebp - 0x10], 0x10
cmp dword [ebp - 0x1c], 0
jne 0x406791
mov eax, dword [edi + 4]
mov dword [ebp - 0x1c], eax
cmp dword [edi + 4], 0
je case.0x40606d.1
mov edx, dword [edi + 4]
cmp edx, dword [ebp - 0x1c]
je case.0x40606d.1
or dword [ebp - 0x10], 0x20
jmp case.0x40606d.1
cmp dword [edi], 0xf
jne 0x4067cd
cmp dword [edi + 0x10], 7
jne 0x4067cd
cmp dword [edi + 8], 0xffffffff
jne 0x4067cd
cmp dword [edi + 0x14], 0
jne 0x4067cd
cmp dword [edi + 0x18], 0
je 0x4067d1
or dword [ebp - 0x10], 4
cmp dword [edi + 0x1c], 0xffffffff
je 0x4067e1
cmp dword [edi + 0x1c], 0
je 0x4067e1
or dword [ebp - 0x10], 0x40
cmp dword [edi + 4], 1
je 0x4067f7
cmp dword [edi + 4], 2
je 0x4067f7
cmp dword [edi + 4], 4
je 0x4067f7
or dword [ebp - 0x10], 0x10
cmp dword [ebp - 0x1c], 0
jne 0x406803
mov ecx, dword [edi + 4]
mov dword [ebp - 0x1c], ecx
cmp dword [edi + 4], 0
je case.0x40606d.1
mov eax, dword [edi + 4]
cmp eax, dword [ebp - 0x1c]
je case.0x40606d.1
or dword [ebp - 0x10], 0x20
jmp case.0x40606d.1
cmp dword [edi], 0x2f
je case.0x40606d.1
or dword [ebp - 0x10], 4
jmp case.0x40606d.1
cmp dword [edi], 0x30
je 0x40683d
or dword [ebp - 0x10], 4
cmp dword [ebp - 0x1c], 4
jle case.0x40606d.1
or dword [ebp - 0x10], 0x10
jmp case.0x40606d.1
cmp dword [edi], 0x30
je 0x406859
or dword [ebp - 0x10], 4
cmp dword [ebp - 0x1c], 0
jne 0x406866
mov dword [ebp - 0x1c], 4
cmp dword [ebp - 0x1c], 4
je case.0x40606d.1
or dword [ebp - 0x10], 0x10
jmp case.0x40606d.1
cmp dword [edi], 0x3b
je 0x406882
or dword [ebp - 0x10], 4
test byte [ebp - 0x44], 5
je 0x40688c
or dword [ebp - 0x10], 1
and dword [ebp - 0x44], 0x7f
jmp case.0x40606d.1
cmp dword [edi], 0x30
jne 0x4068a0
cmp dword [ebp - 0x48], 0
je 0x4068a4
or dword [ebp - 0x10], 4
test byte [ebp - 0x44], 0xa
je 0x4068ae
or dword [ebp - 0x10], 1
and dword [ebp - 0x44], 0x7f
jmp case.0x40606d.1
cmp dword [edi], 0x30
je 0x4068c0
or dword [ebp - 0x10], 4
test byte [ebp - 0x44], 9
je 0x4068ca
or dword [ebp - 0x10], 1
and dword [ebp - 0x44], 0x7f
jmp case.0x40606d.1
cmp dword [edi], 0xf
jne 0x4068e8
cmp dword [edi + 0x10], 0
jge 0x4068e8
cmp dword [edi + 8], 0
jl case.0x40606d.1
or dword [ebp - 0x10], 4
jmp case.0x40606d.1
cmp dword [edi], 0x30
je 0x4068fa
or dword [ebp - 0x10], 4
cmp dword [edi + 0x14], 0xffffff80
jl 0x40690a
cmp dword [edi + 0x14], 0x7f
jle case.0x40606d.1
or dword [ebp - 0x10], 0x80
jmp case.0x40606d.1
cmp dword [edi], 0x30
jne 0x40692f
cmp dword [edi + 0x14], 1
je case.0x40606d.1
cmp dword [edi + 0x18], 0
jne case.0x40606d.1
or dword [ebp - 0x10], 4
jmp case.0x40606d.1
cmp dword [edi], 0x30
je 0x406941
or dword [ebp - 0x10], 4
cmp dword [edi + 0x14], 0xffffff80
jl 0x406954
cmp dword [edi + 0x14], 0xff
jle case.0x40606d.1
or dword [ebp - 0x10], 0x80
jmp case.0x40606d.1
cmp dword [edi], 0x30
je 0x406969
or dword [ebp - 0x10], 4
cmp dword [edi + 0x14], 0
jl 0x40697c
cmp dword [edi + 0x14], 0xffff
jle case.0x40606d.1
or dword [ebp - 0x10], 0x80
jmp case.0x40606d.1
cmp dword [edi], 0x3c
je 0x406991
or dword [ebp - 0x10], 4
cmp dword [ebp - 0x1c], 0
jne 0x40699e
mov dword [ebp - 0x1c], 2
cmp dword [ebp - 0x1c], 2
je case.0x40606d.1
or dword [ebp - 0x10], 0x20
jmp case.0x40606d.1
cmp dword [edi], 0x3c
je 0x4069b3
or dword [ebp - 0x10], 4
cmp dword [edi + 8], 1
jne 0x4069bd
or dword [ebp - 0x10], 0x40
cmp dword [ebp - 0x1c], 0
jne 0x4069ca
mov dword [ebp - 0x1c], 2
cmp dword [ebp - 0x1c], 2
je case.0x40606d.1
or dword [ebp - 0x10], 0x20
jmp case.0x40606d.1
cmp dword [edi], 0x3c
je case.0x40606d.1
or dword [ebp - 0x10], 4
jmp case.0x40606d.1
cmp eax, dword [edi]
je 0x4069e9
or dword [ebp - 0x10], 4
cmp dword [ebp - 0x1c], 0
jne 0x4069f6
mov dword [ebp - 0x1c], 4
cmp dword [ebp - 0x1c], 4
je case.0x40606d.1
or dword [ebp - 0x10], 0x20
jmp case.0x40606d.1
mov edx, dword [ebp + 0x1c]
mov esi, str.Internal_Assembler_error
mov edi, edx
mov eax, edi
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
jmp 0x407bed
test byte [ebp - 0x44], 0x80
je 0x406a25
or dword [ebp - 0x10], 1
cmp dword [ebp - 0x10], 0
jne 0x406a35
inc ebx
cmp ebx, 3
jl 0x405fc8
cmp dword [ebp - 0x10], 0
jne 0x406a49
cmp dword [ebp + 0x14], 0
jle 0x406a55
dec dword [ebp + 0x14]
xor edx, edx
mov dword [ebp - 0xc], edx
add esi, 0x17
cmp dword [esi], 0
jne 0x405c85
cmp dword [ebp - 0xc], 0
jne 0x406a80
mov ecx, dword [ebp + 0x1c]
mov esi, str.Unrecognized_command
mov edi, ecx
mov eax, edi
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov edx, dword [ebp - 0x88]
mov dword [0x4cd170], edx
jmp 0x407bed
cmp dword [ebp - 0x10], 0
je 0x406c3e
cmp dword [ebp - 0x28], 0
jle 0x406ab9
mov ecx, dword [ebp - 0x28]
lea ecx, [ecx + ecx*8]
cmp dword [ebp + ecx*4 - 0x178], 0
jne 0x406ab9
mov eax, dword [ebp + 0x1c]
mov esi, str.Too_few_operands
mov edi, eax
mov eax, edi
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
jmp 0x407bed
cmp dword [ebp - 0x2c], 3
jge 0x406ae9
mov edx, dword [ebp - 0x2c]
lea edx, [edx + edx*8]
cmp dword [ebp + edx*4 - 0x154], 0
je 0x406ae9
mov ecx, dword [ebp + 0x1c]
mov esi, str.Too_many_operands
mov edi, ecx
mov eax, edi
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x407bed
test byte [ebp - 0xf], 1
je 0x406b0a
mov edx, dword [ebp + 0x1c]
mov esi, str.Please_use_2_register_form_of_this_command
mov edi, edx
mov eax, edi
mov ecx, 0xa
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jmp 0x407bed
cmp dword [ebp - 0xc], 1
jle 0x406b28
mov edx, dword [ebp + 0x1c]
mov esi, str.Command_does_not_support_given_operands
mov edi, edx
mov eax, edi
mov ecx, 0xa
rep movsd dword es:[edi], dword [esi]
jmp 0x407bed
test byte [ebp - 0x10], 1
je 0x406b49
mov edx, dword [ebp + 0x1c]
mov esi, str.Invalid_jump_size_modifier
mov edi, edx
mov eax, edi
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jmp 0x407bed
test byte [ebp - 0x10], 2
je 0x406b68
mov edx, dword [ebp + 0x1c]
mov esi, str.Wrong_number_of_operands
mov edi, edx
mov eax, edi
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
jmp 0x407bed
test byte [ebp - 0x10], 4
je 0x406b86
mov edx, dword [ebp + 0x1c]
mov esi, str.Command_does_not_support_given_operands
mov edi, edx
mov eax, edi
mov ecx, 0xa
rep movsd dword es:[edi], dword [esi]
jmp 0x407bed
test byte [ebp - 0x10], 8
je 0x406ba4
mov edx, dword [ebp + 0x1c]
mov esi, str.Please_specify_operand_size
mov edi, edx
mov eax, edi
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
jmp 0x407bed
test byte [ebp - 0x10], 0x10
je 0x406bc3
mov edx, dword [ebp + 0x1c]
mov esi, str.Bad_operand_size
mov edi, edx
mov eax, edi
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
jmp 0x407bed
test byte [ebp - 0x10], 0x20
je 0x406be4
mov edx, dword [ebp + 0x1c]
mov esi, str.Different_size_of_operands
mov edi, edx
mov eax, edi
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jmp 0x407bed
test byte [ebp - 0x10], 0x40
je 0x406c03
mov edx, dword [ebp + 0x1c]
mov esi, str.Invalid_segment_register
mov edi, edx
mov eax, edi
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
jmp 0x407bed
test byte [ebp - 0x10], 0x80
je 0x406c24
mov edx, dword [ebp + 0x1c]
mov esi, str.Constant_out_of_expected_range
mov edi, edx
mov eax, edi
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jmp 0x407bed
mov edx, dword [ebp + 0x1c]
mov esi, str.Erroneous_command
mov edi, edx
mov eax, edi
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x407bed
xor edx, edx
xor ecx, ecx
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x50], ecx
xor eax, eax
xor edx, edx
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x3c], 0xffffffff
xor ecx, ecx
lea eax, [ebp - 0xb8]
mov dword [ebp - 0x40], ecx
push 0x10
push 0
push eax
call fcn.004a35a0
add esp, 0xc
mov edx, dword [esi + 4]
and edx, dword [esi]
mov dword [ebp - 0xb8], edx
push 0x10
push 0
lea ecx, [ebp - 0xc8]
push ecx
call fcn.004a35a0
add esp, 0xc
mov eax, dword [esi]
mov dword [ebp - 0xc8], eax
lea edx, [ebp - 0xd8]
push 0x10
push 0
push edx
call fcn.004a35a0
add esp, 0xc
lea ecx, [ebp - 0xe8]
push 0x10
push 0
push ecx
call fcn.004a35a0
add esp, 0xc
xor eax, eax
mov al, byte [esi + 8]
dec eax
mov dword [ebp - 4], eax
cmp dword [ebp - 0x34], 0
je 0x406cd1
inc dword [ebp - 4]
jmp 0x406cf8
xor edx, edx
mov dl, byte [esi + 0xe]
and edx, 0xf0
cmp edx, 0xd0
jne 0x406cf8
mov ecx, dword [esi + 4]
and ecx, 0xff
cmp ecx, 0xf3
jne 0x406cf8
inc dword [ebp - 4]
xor eax, eax
mov al, byte [esi + 9]
dec eax
je 0x406d17
xor edx, edx
mov dl, byte [esi + 9]
cmp edx, 3
je 0x406d17
xor ecx, ecx
mov cl, byte [esi + 9]
cmp ecx, 0x81
jne 0x406d53
cmp dword [ebp - 0x1c], 0
jne 0x406d35
mov eax, dword [ebp + 0x1c]
mov esi, str.Please_specify_operand_size
mov edi, eax
mov eax, edi
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
jmp 0x407bed
cmp dword [ebp - 0x1c], 1
jle 0x406d46
mov edx, dword [ebp - 4]
or byte [ebp + edx - 0xb8], 1
mov ecx, dword [ebp - 4]
or byte [ebp + ecx - 0xc8], 1
jmp 0x406d97
xor eax, eax
mov al, byte [esi + 9]
cmp eax, 8
jne 0x406d97
cmp dword [ebp - 0x1c], 0
jne 0x406d7b
mov edx, dword [ebp + 0x1c]
mov esi, str.Please_specify_operand_size
mov edi, edx
mov eax, edi
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
jmp 0x407bed
cmp dword [ebp - 0x1c], 1
jle 0x406d8c
mov edx, dword [ebp - 4]
or byte [ebp + edx - 0xb8], 8
mov ecx, dword [ebp - 4]
or byte [ebp + ecx - 0xc8], 8
xor eax, eax
mov al, byte [esi + 0xe]
and eax, 0xf0
cmp eax, 0xe0
jne 0x406dc0
mov dword [ebp - 0x58], 1
mov edx, dword [esi + 4]
shr edx, 0x10
and edx, 0xff
mov dword [ebp - 0x74], edx
jmp 0x406dd8
test byte [esi + 0xa], 4
je 0x406dd8
mov dword [ebp - 0x58], 1
xor ecx, ecx
mov cl, byte [esi + 0xe]
and ecx, 7
mov dword [ebp - 0x74], ecx
xor eax, eax
xor ebx, ebx
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x18], 0
je 0x406e1f
test byte [esi + 0xa], 0x10
jne 0x406e1f
cmp ebx, dword [ebp - 0x30]
jl 0x406e08
mov edi, ebx
shl edi, 2
lea edi, [edi + edi*8]
lea eax, [ebp - 0x154]
add edi, eax
jmp 0x406e2f
mov edx, dword [ebp - 0x30]
sub edx, ebx
mov edi, edx
shl edi, 2
lea edi, [edi + edi*8]
lea eax, [ebp - 0x178]
add edi, eax
jmp 0x406e2f
mov edi, ebx
shl edi, 2
lea edi, [edi + edi*8]
lea eax, [ebp - 0x154]
add edi, eax
test ebx, ebx
jne 0x406e3a
xor eax, eax
mov al, byte [esi + 0xb]
jmp 0x406e4b
cmp ebx, 1
jne 0x406e46
xor eax, eax
mov al, byte [esi + 0xc]
jmp 0x406e4b
xor eax, eax
mov al, byte [esi + 0xd]
test eax, eax
je 0x40780b
cmp eax, 0x33
jg 0x406f3e
je case.0x406f55.53
cmp eax, 0x32
ja case.default.0x406f55
jmp dword [eax*4 + 0x406e72]
cmp eax, 0x3b
jg 0x406f78
je 0x407670
add eax, 0xffffffcc
cmp eax, 6
ja case.default.0x406f55
jmp dword [eax*4 + 0x406f5c]
cmp eax, 0x3f
jge 0x406f94
add eax, 0xffffffc4
sub eax, 2
jb 0x40769b
je 0x4076cc
jmp case.default.0x406f55
add eax, 0xffffffc1
sub eax, 2
jb case.0x406e6b.1
add eax, 0xffffffc1
sub eax, 0x11
jb case.0x406f55.52
je 0x4077d4
jmp case.default.0x406f55
mov dword [ebp - 0x4c], 1
cmp dword [edi + 8], 8
jge 0x406fe0
mov dl, byte [edi + 8]
mov ecx, dword [ebp - 4]
shl edx, 3
or byte [ebp + ecx - 0xb7], dl
mov eax, dword [ebp - 4]
or byte [ebp + eax - 0xc7], 0x38
jmp case.0x406f55.52
cmp dword [edi + 8], 9
jne 0x406ff6
mov edx, dword [ebp - 4]
or byte [ebp + edx - 0xd7], 0x38
jmp case.0x406f55.52
cmp dword [edi + 8], 0xa
jne case.0x406f55.52
mov ecx, dword [ebp - 4]
or byte [ebp + ecx - 0xe7], 0x38
jmp case.0x406f55.52
mov dword [ebp - 0x4c], 1
cmp dword [edi + 8], 8
jge 0x407040
mov al, byte [edi + 8]
mov edx, dword [ebp - 4]
shl eax, 3
or al, byte [edi + 8]
or byte [ebp + edx - 0xb7], al
mov ecx, dword [ebp - 4]
or byte [ebp + ecx - 0xc7], 0x3f
jmp case.0x406f55.52
cmp dword [edi + 8], 9
jne 0x407056
mov eax, dword [ebp - 4]
or byte [ebp + eax - 0xd7], 0x3f
jmp case.0x406f55.52
cmp dword [edi + 8], 0xa
jne case.0x406f55.52
mov edx, dword [ebp - 4]
or byte [ebp + edx - 0xe7], 0x3f
jmp case.0x406f55.52
cmp dword [edi + 8], 8
jge 0x407093
mov cl, byte [edi + 8]
mov eax, dword [ebp - 4]
or byte [ebp + eax - 0xb8], cl
mov edx, dword [ebp - 4]
or byte [ebp + edx - 0xc8], 7
jmp case.0x406f55.52
cmp dword [edi + 8], 9
jne 0x4070a9
mov ecx, dword [ebp - 4]
or byte [ebp + ecx - 0xd8], 7
jmp case.0x406f55.52
cmp dword [edi + 8], 0xa
jne case.0x406f55.52
mov eax, dword [ebp - 4]
or byte [ebp + eax - 0xe8], 7
jmp case.0x406f55.52
cmp dword [edi + 8], 8
jge case.0x406f55.52
mov dl, byte [edi + 8]
mov ecx, dword [ebp - 4]
or byte [ebp + ecx - 0xb8], dl
mov eax, dword [ebp - 4]
or byte [ebp + eax - 0xc8], 7
jmp case.0x406f55.52
cmp dword [edi + 0x1c], 0xffffffff
je case.0x406f55.52
cmp dword [edi + 0x1c], 3
je case.0x406f55.52
mov edx, dword [edi + 0x1c]
mov dword [ebp - 0x3c], edx
jmp case.0x406f55.52
mov dword [ebp - 0x4c], 1
cmp dword [edi], 0xf
je case.0x406e6b.29
mov ecx, dword [ebp - 4]
or byte [ebp + ecx - 0xb7], 0xc0
mov eax, dword [ebp - 4]
or byte [ebp + eax - 0xc7], 0xc0
cmp dword [edi + 8], 8
jge 0x40714e
mov dl, byte [edi + 8]
mov ecx, dword [ebp - 4]
or byte [ebp + ecx - 0xb7], dl
mov eax, dword [ebp - 4]
or byte [ebp + eax - 0xc7], 7
jmp case.0x406f55.52
cmp dword [edi + 8], 9
jne 0x407164
mov edx, dword [ebp - 4]
or byte [ebp + edx - 0xd7], 7
jmp case.0x406f55.52
cmp dword [edi + 8], 0xa
jne case.0x406f55.52
mov ecx, dword [ebp - 4]
or byte [ebp + ecx - 0xe7], 7
jmp case.0x406f55.52
mov dword [ebp - 0x4c], 1
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x70], eax
mov edx, dword [edi + 0x18]
mov dword [ebp - 0x5c], edx
cmp dword [edi + 0x10], 0
jge 0x4071d1
cmp dword [edi + 8], 0
jge 0x4071d1
mov dword [ebp - 0x54], 4
cmp dword [edi + 0x1c], 0xffffffff
je 0x4071b6
cmp dword [edi + 0x1c], 3
je 0x4071b6
mov ecx, dword [edi + 0x1c]
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp - 4]
or byte [ebp + eax - 0xb7], 5
mov edx, dword [ebp - 4]
or byte [ebp + edx - 0xc7], 0xc7
jmp case.0x406f55.52
cmp dword [edi + 8], 0
jge 0x4072b8
cmp dword [edi + 0x10], 4
je 0x4072b8
mov ecx, dword [ebp - 4]
or byte [ebp + ecx - 0xc7], 0xc0
cmp dword [edi + 0x14], 0
jne 0x407202
cmp dword [edi + 0x18], 0
jne 0x407202
cmp dword [edi + 0x10], 5
jne 0x407243
test byte [ebp + 0x18], 1
je 0x407231
cmp dword [edi + 0x14], 0xffffff80
jl 0x407217
cmp dword [edi + 0x14], 0x80
jl 0x40721d
cmp dword [edi + 0x18], 0
je 0x407231
mov eax, dword [ebp - 4]
or byte [ebp + eax - 0xb7], 0x40
mov dword [ebp - 0x54], 1
jmp 0x407243
mov edx, dword [ebp - 4]
or byte [ebp + edx - 0xb7], 0x80
mov dword [ebp - 0x54], 4
cmp dword [edi + 0x10], 8
jge 0x407281
cmp dword [edi + 0x1c], 0xffffffff
je 0x407264
mov ecx, dword [edi + 0x1c]
mov eax, dword [edi + 0x10]
cmp ecx, dword [eax*8 + 0x4c2718]
je 0x407264
mov edx, dword [edi + 0x1c]
mov dword [ebp - 0x3c], edx
mov cl, byte [edi + 0x10]
mov eax, dword [ebp - 4]
or byte [ebp + eax - 0xb7], cl
mov edx, dword [ebp - 4]
or byte [ebp + edx - 0xc7], 7
jmp case.0x406f55.52
cmp dword [edi + 0x10], 9
jne 0x407297
mov ecx, dword [ebp - 4]
or byte [ebp + ecx - 0xd7], 7
jmp case.0x406f55.52
cmp dword [edi + 0x10], 0xa
jne 0x4072ad
mov eax, dword [ebp - 4]
or byte [ebp + eax - 0xe7], 7
jmp case.0x406f55.52
mov edx, dword [edi + 0x1c]
mov dword [ebp - 0x3c], edx
jmp case.0x406f55.52
mov dword [ebp - 0x50], 1
cmp dword [edi + 0x10], 5
jne 0x4072ea
cmp dword [edi + 8], 0
jl 0x4072ea
cmp dword [edi + 0xc], 1
jne 0x4072ea
cmp dword [edi + 0x14], 0
jne 0x4072ea
cmp dword [edi + 0x18], 0
jne 0x4072ea
mov ecx, dword [edi + 8]
mov dword [edi + 0x10], ecx
mov dword [edi + 8], 5
cmp dword [edi + 8], 4
jne 0x40730a
cmp dword [edi + 0xc], 1
jg 0x40730a
mov eax, dword [edi + 0x10]
mov dword [edi + 8], eax
mov dword [edi + 0x10], 4
mov dword [edi + 0xc], 1
cmp dword [edi + 0x10], 0
jge 0x40733e
cmp dword [edi + 8], 0
jl 0x40733e
cmp dword [edi + 0xc], 2
jne 0x40733e
cmp dword [edi + 0x14], 0xffffff80
jl 0x40733e
cmp dword [edi + 0x14], 0x80
jge 0x40733e
cmp dword [edi + 0x18], 0
jne 0x40733e
mov edx, dword [edi + 8]
mov dword [edi + 0x10], edx
mov dword [edi + 0xc], 1
cmp dword [edi + 8], 4
jne 0x40735e
mov ecx, dword [ebp + 0x1c]
mov esi, str.Invalid_indexing_mode
mov edi, ecx
mov eax, edi
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x407bed
cmp dword [edi + 0x10], 0
jge 0x407378
mov edx, dword [ebp - 4]
or byte [ebp + edx - 0xb7], 4
mov dword [ebp - 0x54], 4
jmp 0x4073d8
cmp dword [edi + 0x14], 0
jne 0x407397
cmp dword [edi + 0x18], 0
jne 0x407397
cmp dword [edi + 0x10], 5
je 0x407397
mov ecx, dword [ebp - 4]
or byte [ebp + ecx - 0xb7], 4
jmp 0x4073d8
test byte [ebp + 0x18], 1
je 0x4073c6
cmp dword [edi + 0x14], 0xffffff80
jl 0x4073ac
cmp dword [edi + 0x14], 0x80
jl 0x4073b2
cmp dword [edi + 0x18], 0
je 0x4073c6
mov eax, dword [ebp - 4]
or byte [ebp + eax - 0xb7], 0x44
mov dword [ebp - 0x54], 1
jmp 0x4073d8
mov edx, dword [ebp - 4]
or byte [ebp + edx - 0xb7], 0x84
mov dword [ebp - 0x54], 4
mov ecx, dword [ebp - 4]
or byte [ebp + ecx - 0xc7], 0xc7
cmp dword [edi + 0xc], 2
jne 0x4073f6
mov eax, dword [ebp - 4]
or byte [ebp + eax - 0xb6], 0x40
jmp 0x40741a
cmp dword [edi + 0xc], 4
jne 0x407409
mov edx, dword [ebp - 4]
or byte [ebp + edx - 0xb6], 0x80
jmp 0x40741a
cmp dword [edi + 0xc], 8
jne 0x40741a
mov ecx, dword [ebp - 4]
or byte [ebp + ecx - 0xb6], 0xc0
mov eax, dword [ebp - 4]
or byte [ebp + eax - 0xc6], 0xc0
cmp dword [edi + 8], 8
jge 0x407455
cmp dword [edi + 8], 0
jge 0x407438
mov dword [edi + 8], 4
mov dl, byte [edi + 8]
mov ecx, dword [ebp - 4]
shl edx, 3
or byte [ebp + ecx - 0xb6], dl
mov eax, dword [ebp - 4]
or byte [ebp + eax - 0xc6], 0x38
jmp 0x407479
cmp dword [edi + 8], 9
jne 0x407468
mov edx, dword [ebp - 4]
or byte [ebp + edx - 0xd6], 0x38
jmp 0x407479
cmp dword [edi + 8], 0xa
jne 0x407479
mov ecx, dword [ebp - 4]
or byte [ebp + ecx - 0xe6], 0x38
cmp dword [edi + 0x10], 8
jge 0x4074c4
cmp dword [edi + 0x10], 0
jge 0x40748c
mov dword [edi + 0x10], 5
cmp dword [edi + 0x1c], 0xffffffff
je 0x4074a7
mov eax, dword [edi + 0x1c]
mov edx, dword [edi + 0x10]
cmp eax, dword [edx*8 + 0x4c2718]
je 0x4074a7
mov ecx, dword [edi + 0x1c]
mov dword [ebp - 0x3c], ecx
mov al, byte [edi + 0x10]
mov edx, dword [ebp - 4]
or byte [ebp + edx - 0xb6], al
mov ecx, dword [ebp - 4]
or byte [ebp + ecx - 0xc6], 7
jmp case.0x406f55.52
cmp dword [edi + 0x10], 9
jne 0x4074e0
mov eax, dword [ebp - 4]
or byte [ebp + eax - 0xd6], 7
mov edx, dword [edi + 0x1c]
mov dword [ebp - 0x3c], edx
jmp case.0x406f55.52
cmp dword [edi + 0x10], 0xa
jne 0x4074fc
mov ecx, dword [ebp - 4]
or byte [ebp + ecx - 0xe6], 7
mov eax, dword [edi + 0x1c]
mov dword [ebp - 0x3c], eax
jmp case.0x406f55.52
mov edx, dword [edi + 0x1c]
mov dword [ebp - 0x3c], edx
jmp case.0x406f55.52
cmp dword [ebp - 0x1c], 0
jne 0x40753b
cmp byte [esi + 0xc], 0
je 0x407520
xor ecx, ecx
mov cl, byte [esi + 0xc]
cmp ecx, 0x80
jl 0x40753b
xor eax, eax
mov al, byte [esi + 9]
cmp eax, 2
je 0x407534
xor edx, edx
mov dl, byte [esi + 9]
cmp edx, 3
jne 0x40753b
mov dword [ebp - 0x1c], 4
cmp dword [ebp - 0x1c], 0
jne 0x407559
mov ecx, dword [ebp + 0x1c]
mov esi, str.Please_specify_operand_size
mov edi, ecx
mov eax, edi
mov ecx, 7
rep movsd dword es:[edi], dword [esi]
jmp 0x407bed
mov edx, dword [edi + 0x14]
mov dword [ebp - 0x74], edx
mov ecx, dword [edi + 0x18]
mov dword [ebp - 0x60], ecx
xor eax, eax
mov al, byte [esi + 9]
cmp eax, 2
je 0x407579
xor edx, edx
mov dl, byte [esi + 9]
cmp edx, 3
jne 0x4075c4
cmp dword [ebp - 0x1c], 1
jle 0x4075ae
test byte [ebp + 0x18], 2
je 0x4075ae
cmp dword [ebp - 0x74], 0xffffff80
jl 0x407594
cmp dword [ebp - 0x74], 0x80
jl 0x40759a
cmp dword [edi + 0x18], 0
je 0x4075ae
mov dword [ebp - 0x58], 1
mov ecx, dword [ebp - 4]
or byte [ebp + ecx - 0xb8], 2
jmp 0x4075b4
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x58], eax
mov edx, dword [ebp - 4]
or byte [ebp + edx - 0xc8], 2
jmp case.0x406f55.52
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x58], ecx
jmp case.0x406f55.52
cmp dword [ebp - 0x58], 2
jne 0x4075ea
mov edx, dword [edi + 0x14]
mov eax, dword [ebp - 0x74]
shl edx, 0x10
and eax, 0xffff
or eax, edx
mov dword [ebp - 0x74], eax
jmp 0x4075f0
mov ecx, dword [edi + 0x14]
mov dword [ebp - 0x74], ecx
mov eax, dword [edi + 0x18]
or dword [ebp - 0x60], eax
inc dword [ebp - 0x58]
jmp case.0x406f55.52
mov edx, dword [edi + 0x14]
mov dword [ebp - 0x74], edx
mov ecx, dword [edi + 0x18]
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x58], 2
jmp case.0x406f55.52
cmp dword [edi + 0x1c], 0xffffffff
je 0x407628
cmp dword [edi + 0x1c], 3
je 0x407628
mov eax, dword [edi + 0x1c]
mov dword [ebp - 0x3c], eax
mov edx, dword [edi + 0x14]
mov dword [ebp - 0x70], edx
mov ecx, dword [edi + 0x18]
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x54], 4
jmp case.0x406f55.52
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x78], eax
mov edx, dword [edi + 0x18]
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x40], 1
jmp case.0x406f55.52
mov ecx, dword [edi + 0x14]
mov dword [ebp - 0x78], ecx
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x40], 4
jmp case.0x406f55.52
mov edx, dword [edi + 0x14]
mov dword [ebp - 0x70], edx
mov ecx, dword [edi + 0x18]
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x54], 4
mov eax, dword [edi + 0x1c]
mov dword [ebp - 0x74], eax
mov edx, dword [edi + 0x18]
mov dword [ebp - 0x60], edx
mov dword [ebp - 0x58], 2
jmp case.0x406f55.52
mov dword [ebp - 0x4c], 1
cmp dword [edi + 8], 6
jge case.0x406f55.52
mov cl, byte [edi + 8]
mov eax, dword [ebp - 4]
shl ecx, 3
or byte [ebp + eax - 0xb7], cl
mov edx, dword [ebp - 4]
or byte [ebp + edx - 0xc7], 0x38
jmp case.0x406f55.52
cmp dword [edi + 8], 4
je 0x4076d8
cmp dword [edi + 8], 5
jne 0x40774d
mov byte [ebp - 0xb8], 0xf
mov byte [ebp - 0xc8], 0xff
mov dword [ebp - 4], 1
lea eax, [ebp - 0xa8]
mov edx, 0x4b0939
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x40772a
test cl, cl
je 0x407714
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x40772a
add eax, 2
add edx, 2
test cl, cl
jne 0x4076f8
jne 0x40772a
mov al, byte [edi + 8]
mov edx, dword [ebp - 4]
shl eax, 3
or al, 0x80
mov byte [ebp + edx - 0xb8], al
jmp 0x40773d
mov cl, byte [edi + 8]
mov eax, dword [ebp - 4]
shl ecx, 3
or cl, 0x81
mov byte [ebp + eax - 0xb8], cl
mov edx, dword [ebp - 4]
mov byte [ebp + edx - 0xc8], 0xff
jmp case.0x406f55.52
cmp dword [edi + 8], 6
jge 0x4077bc
cmp dword [edi + 8], 1
jne 0x40779b
lea eax, [ebp - 0xa8]
mov edx, 0x4b093e
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x40779b
test cl, cl
je 0x407780
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x40779b
add eax, 2
add edx, 2
test cl, cl
jne 0x407764
jne 0x40779b
mov eax, dword [ebp + 0x1c]
mov esi, str.Unable_to_POP_CS
mov edi, eax
mov eax, edi
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
jmp 0x407bed
mov edx, dword [ebp - 4]
mov al, byte [edi + 8]
shl eax, 3
mov cl, byte [ebp + edx - 0xb8]
mov edx, dword [ebp - 4]
and cl, 0xc7
or cl, al
mov byte [ebp + edx - 0xb8], cl
jmp case.0x406f55.52
mov ecx, dword [ebp - 4]
and byte [ebp + ecx - 0xb8], 0xc7
mov eax, dword [ebp - 4]
and byte [ebp + eax - 0xc8], 0xc7
jmp case.0x406f55.52
mov dword [ebp - 0x4c], 1
mov edx, dword [ebp - 4]
or byte [ebp + edx - 0xc7], 0x38
jmp case.0x406f55.52
mov ecx, dword [ebp + 0x1c]
mov esi, str.Internal_Assembler_error
mov edi, ecx
mov eax, edi
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
jmp 0x407bed
inc ebx
cmp ebx, 3
jl 0x406de5
xor ebx, ebx
cmp dword [ebp - 0x38], 0
je 0x407841
test byte [esi + 0xa], 1
jne 0x407831
mov eax, dword [ebp + 0x1c]
mov esi, str.LOCK_prefix_not_allowed
mov edi, eax
mov eax, edi
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
jmp 0x407bed
mov edx, dword [ebp + 0x10]
mov byte [edx + ebx], 0xf0
mov ecx, dword [ebp + 0x10]
mov byte [ecx + ebx + 0x10], 0xff
inc ebx
cmp dword [ebp - 0x1c], 2
jne 0x407861
xor eax, eax
mov al, byte [esi + 9]
cmp eax, 0x20
je 0x407861
mov edx, dword [ebp + 0x10]
mov byte [edx + ebx], 0x66
mov ecx, dword [ebp + 0x10]
mov byte [ecx + ebx + 0x10], 0xff
inc ebx
cmp dword [ebp - 0x20], 2
jne 0x407877
mov eax, dword [ebp + 0x10]
mov byte [eax + ebx], 0x67
mov edx, dword [ebp + 0x10]
mov byte [edx + ebx + 0x10], 0xff
inc ebx
cmp dword [ebp - 0x3c], 0xffffffff
je 0x4078f9
cmp dword [ebp - 0x3c], 0
jne 0x40788c
mov ecx, dword [ebp + 0x10]
mov byte [ecx + ebx], 0x26
jmp 0x4078f0
cmp dword [ebp - 0x3c], 1
jne 0x40789b
mov eax, dword [ebp + 0x10]
mov byte [eax + ebx], 0x2e
jmp 0x4078f0
cmp dword [ebp - 0x3c], 2
jne 0x4078aa
mov edx, dword [ebp + 0x10]
mov byte [edx + ebx], 0x36
jmp 0x4078f0
cmp dword [ebp - 0x3c], 3
jne 0x4078b9
mov ecx, dword [ebp + 0x10]
mov byte [ecx + ebx], 0x3e
jmp 0x4078f0
cmp dword [ebp - 0x3c], 4
jne 0x4078c8
mov eax, dword [ebp + 0x10]
mov byte [eax + ebx], 0x64
jmp 0x4078f0
cmp dword [ebp - 0x3c], 5
jne 0x4078d7
mov edx, dword [ebp + 0x10]
mov byte [edx + ebx], 0x65
jmp 0x4078f0
mov ecx, dword [ebp + 0x1c]
mov esi, str.Internal_Assembler_error
mov edi, ecx
mov eax, edi
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
jmp 0x407bed
mov edx, dword [ebp + 0x10]
mov byte [edx + ebx + 0x10], 0xff
inc ebx
cmp dword [ebp - 0x54], 0
jle 0x40794a
mov ecx, dword [ebp - 0x54]
lea eax, [ebp - 0x70]
push ecx
push eax
mov edx, dword [ebp - 4]
lea ecx, [ebp - 0xb7]
add edx, dword [ebp - 0x4c]
add edx, dword [ebp - 0x50]
add edx, ecx
push edx
call fcn.004a3530
add esp, 0xc
cmp dword [ebp - 0x5c], 0
jne 0x40794a
mov eax, dword [ebp - 0x54]
push eax
push 0xff
mov edx, dword [ebp - 4]
add edx, dword [ebp - 0x4c]
add edx, dword [ebp - 0x50]
lea ecx, [ebp - 0xc7]
add edx, ecx
push edx
call fcn.004a35a0
add esp, 0xc
cmp dword [ebp - 0x58], 0
jle 0x4079f8
cmp dword [ebp - 0x58], 1
jne 0x407963
mov dword [ebp - 0x6c], 0xffffff00
jmp 0x407977
cmp dword [ebp - 0x58], 2
jne 0x407972
mov dword [ebp - 0x6c], 0xffff0000
jmp 0x407977
xor eax, eax
mov dword [ebp - 0x6c], eax
mov edx, dword [ebp - 0x74]
and edx, dword [ebp - 0x6c]
test edx, edx
je 0x4079a7
mov ecx, dword [ebp - 0x74]
and ecx, dword [ebp - 0x6c]
cmp ecx, dword [ebp - 0x6c]
je 0x4079a7
mov eax, dword [ebp + 0x1c]
mov esi, str.Constant_does_not_fit_into_operand
mov edi, eax
mov eax, edi
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jmp 0x407bed
mov edx, dword [ebp - 0x58]
lea ecx, [ebp - 0x74]
push edx
push ecx
mov eax, dword [ebp - 4]
lea edx, [ebp - 0xb7]
add eax, dword [ebp - 0x4c]
add eax, dword [ebp - 0x50]
add eax, dword [ebp - 0x54]
add eax, edx
push eax
call fcn.004a3530
add esp, 0xc
cmp dword [ebp - 0x60], 0
jne 0x4079f8
mov ecx, dword [ebp - 0x58]
push ecx
push 0xff
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x4c]
add eax, dword [ebp - 0x50]
add eax, dword [ebp - 0x54]
lea edx, [ebp - 0xc7]
add eax, edx
push eax
call fcn.004a35a0
add esp, 0xc
mov ecx, dword [ebp - 4]
add ecx, dword [ebp - 0x4c]
add ecx, dword [ebp - 0x50]
add ecx, dword [ebp - 0x54]
add ecx, dword [ebp - 0x58]
inc ecx
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 4]
add eax, ebx
add eax, dword [ebp - 0x40]
sub dword [ebp - 0x78], eax
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x40]
mov dword [edx + 0x24], ecx
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp - 0x78]
mov dword [eax + 0x28], edx
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 4]
add ecx, ebx
mov dword [eax + 0x2c], ecx
cmp dword [ebp - 0x40], 0
je 0x407add
cmp dword [ebp + 0xc], 0
je 0x407ab6
mov edx, dword [ebp - 0x78]
sub edx, dword [ebp + 0xc]
mov dword [ebp - 0x78], edx
cmp dword [ebp - 0x40], 1
jne 0x407a9c
cmp dword [ebp - 0x64], 0
jne 0x407a9c
cmp dword [ebp - 0x78], 0xffffff80
jl 0x407a67
cmp dword [ebp - 0x78], 0x80
jl 0x407a9c
cmp dword [ebp - 0x48], 0
jne 0x407a7f
test byte [ebp - 0x44], 3
jne 0x407a7f
mov dword [ebp - 0x48], 1
jmp 0x405c5a
lea ecx, [ebp - 0xa8]
push ecx
push str.Relative_jump_out_of_range__use__s_LONG_form
mov eax, dword [ebp + 0x1c]
push eax
call fcn.004a6c2c
add esp, 0xc
jmp 0x407bed
mov edx, dword [ebp - 0x40]
push edx
lea ecx, [ebp - 0x78]
push ecx
lea eax, [ebp - 0xb8]
add eax, dword [ebp - 4]
push eax
call fcn.004a3530
add esp, 0xc
cmp dword [ebp - 0x64], 0
jne 0x407ad7
mov edx, dword [ebp - 0x40]
lea ecx, [ebp - 0xc8]
push edx
push 0xff
add ecx, dword [ebp - 4]
push ecx
call fcn.004a35a0
add esp, 0xc
mov eax, dword [ebp - 0x40]
add dword [ebp - 4], eax
mov edx, dword [ebp - 4]
lea ecx, [ebp - 0xb8]
push edx
push ecx
mov eax, dword [ebp + 0x10]
add eax, ebx
push eax
call fcn.004a3530
add esp, 0xc
mov edx, dword [ebp - 4]
push edx
lea ecx, [ebp - 0xc8]
push ecx
mov eax, dword [ebp + 0x10]
add eax, ebx
add eax, 0x10
push eax
call fcn.004a3530
add esp, 0xc
cmp dword [ebp - 0x14], 0
je 0x407b78
test ebx, ebx
jle 0x407b40
push ebx
push 0
mov edx, dword [ebp + 0x10]
add edx, 0x38
push edx
call fcn.004a35a0
add esp, 0xc
push ebx
push 0
mov ecx, dword [ebp + 0x10]
add ecx, 0x48
push ecx
call fcn.004a35a0
add esp, 0xc
mov eax, dword [ebp - 4]
lea edx, [ebp - 0xd8]
push eax
push edx
mov ecx, dword [ebp + 0x10]
add ecx, ebx
add ecx, 0x38
push ecx
call fcn.004a3530
add esp, 0xc
mov eax, dword [ebp - 4]
push eax
lea edx, [ebp - 0xe8]
push edx
mov ecx, dword [ebp + 0x10]
add ecx, ebx
add ecx, 0x48
push ecx
call fcn.004a3530
add esp, 0xc
mov eax, dword [0x4cd170]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x3b
jne 0x407bdc
inc dword [0x4cd170]
jmp 0x407b94
inc dword [0x4cd170]
mov ecx, dword [0x4cd170]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x20
je 0x407b8e
mov edx, dword [0x4cd170]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 9
je 0x407b8e
mov eax, dword [ebp + 0x1c]
mov edx, dword [0x4cd170]
mov esi, eax
xor eax, eax
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
add dword [ebp - 4], ebx
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp - 4]
mov dword [eax + 0x20], edx
mov eax, dword [ebp - 4]
jmp 0x407bfe
mov edx, dword [ebp + 0x10]
xor ecx, ecx
mov dword [edx + 0x20], ecx
mov eax, dword [ebp + 8]
sub eax, dword [0x4cd170]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret