Function at 0x40c615
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1dc
mov eax, dword [0x4b8bd0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 0x10]
mov ecx, 4
push esi
mov esi, dword [ebp + 8]
mov dword [0x4ba6b4], ecx
mov dword [0x4ba6ec], ecx
xor ecx, ecx
mov dword [ebp - 0x1d8], esi
mov dword [0x4ba6cc], esi
mov esi, eax
mov dword [eax], ebx
push edi
or edi, 0xffffffff
mov byte [eax + 0x204], cl
mov dword [eax + 0x304], 0xf0
mov dword [eax + 0x30c], ecx
mov dword [eax + 0x308], ecx
mov dword [eax + 0x310], ecx
mov dword [eax + 0x314], ecx
mov dword [eax + 0x318], ecx
mov dword [eax + 0x31c], ecx
mov dword [eax + 0x320], ecx
mov dword [eax + 0x324], ecx
mov dword [eax + 0x328], ecx
mov dword [eax + 0x32c], ecx
mov dword [eax + 0x334], ecx
mov dword [eax + 0x330], ecx
mov eax, dword [ebp + 0x18]
xor ebx, ebx
mov dword [0x4ba704], edi
mov dword [0x4ba6d4], ecx
mov dword [0x4ba6a0], ecx
mov dword [0x4ba6d0], ecx
mov dword [0x4ba724], ecx
mov dword [ebp - 0x1d0], ecx
mov dword [ebp - 0x1c8], ecx
mov dword [0x4ba6a4], ecx
mov dword [0x4ba6e0], ecx
mov dword [0x4ba6e8], edx
mov dword [0x4ba6f0], ecx
mov dword [0x4ba6dc], ecx
mov dword [ebp - 0x1d4], ecx
mov dword [0x4ba6fc], esi
mov dword [0x4ba6f4], eax
cmp edx, ecx
jbe 0x40c7c4
jmp 0x40c5f0
mov edx, dword [0x4ba6cc]
movsx edx, byte [edx]
lea eax, [edx - 0x26]
cmp eax, 0xcd
ja case.0x40c60e.39
movzx eax, byte [eax + 0x40decc]
jmp dword [eax*4 + 0x40de9c]
cmp edi, 0xffffffff
jne 0x40c843
xor edi, edi
mov dword [0x4ba704], edi
jmp 0x40c71d
cmp edi, 0xffffffff
jne 0x40c843
mov edi, 1
mov dword [0x4ba704], edi
jmp 0x40c71d
cmp edi, 0xffffffff
jne 0x40c843
mov edi, 2
mov dword [0x4ba704], edi
jmp 0x40c71d
cmp edi, 0xffffffff
jne 0x40c843
mov edi, 3
mov dword [0x4ba704], edi
jmp 0x40c71d
cmp edi, 0xffffffff
jne 0x40c843
mov edi, 4
mov dword [0x4ba704], edi
jmp 0x40c71d
cmp edi, 0xffffffff
jne 0x40c843
mov edi, 5
mov dword [0x4ba704], edi
jmp 0x40c71d
cmp dword [0x4ba6ec], 4
jne 0x40c843
mov dword [0x4ba6ec], 2
jmp 0x40c71d
cmp dword [0x4ba6b4], 4
jne 0x40c843
mov dword [0x4ba6b4], 2
jmp 0x40c71d
cmp dword [ebp - 0x1d0], ecx
jne 0x40c843
mov dword [ebp - 0x1d0], 0xf0
jmp 0x40c71d
cmp dword [ebp - 0x1c8], ecx
jne 0x40c843
mov dword [ebp - 0x1c8], 0xf2
jmp 0x40c71d
cmp dword [ebp - 0x1c8], ecx
jne 0x40c843
mov dword [ebp - 0x1c8], 0xf3
cmp dword [0x4ba6f4], 3
jl 0x40c753
mov ecx, dword [0x4ba6a4]
push edx
lea edx, [esi + ecx + 4]
push str._02X:
push edx
call fcn.0044fcaa
add dword [0x4ba6a4], eax
mov edi, dword [0x4ba704]
mov esi, dword [0x4ba6fc]
add esp, 0xc
xor ecx, ecx
mov eax, dword [0x4ba6e8]
mov edx, 1
add dword [esi + 0x30c], edx
add dword [0x4ba6cc], edx
add dword [ebp + 0x10], edx
sub eax, edx
add ebx, edx
mov dword [0x4ba6e8], eax
cmp eax, ecx
ja 0x40c5f0
cmp dword [ebp - 0x1d0], ecx
je 0x40c7c4
cmp dword [0x4ba6f4], 3
jl 0x40c7bd
mov ecx, dword [0x4ba6e0]
lea edx, [esi + ecx + 0x104]
push str.LOCK
push edx
call fcn.0044fcaa
add dword [0x4ba6e0], eax
mov edi, dword [0x4ba704]
mov esi, dword [0x4ba6fc]
add esp, 8
xor ecx, ecx
or dword [esi + 0x334], 0x40
mov eax, dword [0x4ba6e8]
mov edx, dword [0x4ba6cc]
mov dword [ebp - 0x1cc], ecx
cmp eax, ecx
jbe 0x40c7e1
mov bl, byte [edx]
mov byte [ebp - 0x1cc], bl
cmp eax, 1
jbe 0x40c7ef
mov bl, byte [edx + 1]
mov byte [ebp - 0x1cb], bl
cmp eax, 2
jbe 0x40c7fd
mov al, byte [edx + 2]
mov byte [ebp - 0x1ca], al
mov eax, dword [ebp - 0x1c8]
cmp eax, ecx
je 0x40c818
mov edx, dword [ebp - 0x1cc]
shl edx, 8
or edx, eax
mov dword [ebp - 0x1cc], edx
cmp dword [0x4ba6b8], ecx
je 0x40c9a6
cmp word [ebp - 0x1cc], 0x20cd
jne 0x40c9a6
mov ebx, 0x48fd68
mov dword [ebp - 0x1c4], ebx
jmp 0x40ca1a
cmp dword [0x4ba6f4], 3
jl 0x40c967
mov eax, dword [0x4ba6cc]
sub eax, ebx
mov byte [esi + 7], 0
mov dword [esi + 0x30c], 1
movsx eax, byte [eax]
add eax, 0xffffffda
cmp eax, 0xcd
ja case.0x40c879.39
movzx eax, byte [eax + 0x40dfcc]
jmp dword [eax*4 + 0x40df9c]
mov eax, dword [0x4a506c]
jmp 0x40c8d2
mov eax, dword [0x4a5070]
jmp 0x40c8d2
mov eax, dword [0x4a5074]
jmp 0x40c8d2
mov eax, dword [0x4a5078]
jmp 0x40c8d2
mov eax, dword [0x4a507c]
jmp 0x40c8d2
mov eax, dword [0x4a5080]
jmp 0x40c8d2
mov eax, str.DATASIZE
jmp 0x40c8d2
mov eax, str.ADDRSIZE
jmp 0x40c8d2
mov eax, 0x4909b4
jmp 0x40c8d2
mov eax, str.REPNE
jmp 0x40c8d2
mov eax, str.REPE
jmp 0x40c8d2
mov eax, 0x4913a4
mov ecx, dword [0x4ba6e0]
push eax
lea edx, [esi + ecx + 0x104]
push str.PREFIX__s:
push edx
call fcn.0044fcaa
add dword [0x4ba6e0], eax
add esp, 0xc
cmp dword [0x4ba718], 0
je 0x40c910
mov eax, dword [0x4ba6fc]
add eax, 0x104
push eax
call fcn.00478c60
add esp, 4
cmp dword [0x4ba6ac], 0
mov esi, dword [0x4ba6fc]
jne 0x40c967
mov ecx, dword [str.Superfluous_prefix]
mov dword [esi + 0x204], ecx
mov edx, dword [0x491380]
mov dword [esi + 0x208], edx
mov eax, dword [0x491384]
mov dword [esi + 0x20c], eax
mov ecx, dword [0x491388]
mov dword [esi + 0x210], ecx
mov dx, word [0x49138c]
mov word [esi + 0x214], dx
mov al, byte [0x49138e]
mov byte [esi + 0x216], al
or dword [esi + 0x334], 0x20
cmp dword [ebp - 0x1d0], 0
mov eax, dword [esi + 0x334]
je 0x40c986
or eax, 0x40
mov dword [esi + 0x334], eax
pop edi
mov dword [esi + 0x304], 8
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0044fef1
mov esp, ebp
pop ebp
ret
mov eax, dword [0x48cfa0]
mov ebx, 0x48cfa0
mov dword [ebp - 0x1c4], ebx
cmp eax, ecx
je 0x40ca1a
mov edx, dword [0x4ba6c8]
mov ebx, dword [ebx + 4]
xor ebx, dword [ebp - 0x1cc]
test eax, ebx
jne 0x40c9fc
cmp dword [0x4ba6f4], 3
jl 0x40ca14
cmp edx, ecx
je 0x40ca14
mov eax, dword [ebp - 0x1c4]
mov al, byte [eax + 0xa]
cmp al, 0x26
je 0x40c9fc
cmp al, 0x27
je 0x40c9fc
mov eax, dword [ebp - 0x1c4]
mov al, byte [eax + 0xb]
cmp al, 0x26
je 0x40c9fc
cmp al, 0x27
jne 0x40ca14
mov ebx, dword [ebp - 0x1c4]
mov eax, dword [ebx + 0x14]
add ebx, 0x14
mov dword [ebp - 0x1c4], ebx
cmp eax, ecx
jne 0x40c9c0
jmp 0x40ca1a
mov ebx, dword [ebp - 0x1c4]
mov cl, byte [ebx + 0xd]
and cl, 0xf0
mov ebx, 1
cmp cl, 0xe0
jne 0x40ca80
mov dword [ebp - 0x1d4], ebx
call fcn.0040c2b0
test eax, eax
jns 0x40ca45
mov dword [esi + 0x330], 2
jmp 0x40ca80
mov edx, dword [ebp - 0x1c4]
mov ecx, dword [edx]
test ecx, ecx
je 0x40ca8b
mov ebx, dword [edx + 4]
xor ebx, dword [ebp - 0x1cc]
test ecx, ebx
jne 0x40ca66
movzx ecx, byte [edx + 6]
cmp ecx, eax
je 0x40ca75
mov ecx, dword [edx + 0x14]
add edx, 0x14
test ecx, ecx
jne 0x40ca51
lea ebx, [ecx + 1]
jmp 0x40ca8b
mov dword [ebp - 0x1c4], edx
mov ebx, 1
mov edx, dword [ebp - 0x1c4]
cmp dword [edx], 0
jne 0x40caad
cmp dword [0x4ba6e8], 2
mov dword [esi + 0x304], 0xf0
sbb eax, eax
neg eax
add eax, ebx
mov dword [esi + 0x330], eax
jmp 0x40d78f
mov edx, dword [ebp - 0x1c4]
movzx eax, byte [edx + 0xd]
mov ecx, dword [0x4ba6ec]
mov dword [esi + 0x304], eax
mov dword [ebp - 0x1dc], ecx
cmp edi, 4
je 0x40cadc
cmp edi, 5
je 0x40cadc
cmp dword [ebp - 0x1d0], 0
je 0x40cae5
or eax, 8
mov dword [esi + 0x304], eax
mov al, byte [edx + 9]
cmp al, 0x80
jne 0x40caf5
or dword [esi + 0x334], 4
jmp 0x40cb00
cmp al, 0x81
jne 0x40cb00
or dword [esi + 0x334], 8
mov ecx, dword [0x4ba6cc]
mov al, byte [ecx]
cmp al, 0x44
je 0x40cb42
cmp al, 0x4c
je 0x40cb42
cmp dword [0x4ba6e8], 3
jb 0x40cb53
movsx eax, al
cmp eax, 0x81
je 0x40cb2a
cmp eax, 0x83
jne 0x40cb53
movsx eax, byte [ecx + 1]
cmp eax, 0xc4
je 0x40cb3c
cmp eax, 0xec
jne 0x40cb53
test byte [ecx + 2], 3
je 0x40cb53
or dword [esi + 0x334], 0x80
or dword [esi + 0x304], 8
movsx eax, byte [ecx]
mov edi, 2
cmp eax, 0x8e
jne 0x40cb68
or dword [esi + 0x334], edi
cmp byte [edx + 8], 2
jne 0x40cbd7
cmp dword [0x4ba6e8], 0
jne 0x40cb7f
mov dword [esi + 0x330], edi
jmp 0x40cbe0
cmp dword [0x4ba6f4], 3
jl 0x40cbc6
mov ecx, dword [0x4ba6cc]
movsx edx, byte [ecx]
mov eax, dword [0x4ba6a4]
push edx
lea ecx, [esi + eax + 4]
push str._02X
push ecx
call fcn.0044fcaa
mov esi, dword [0x4ba6fc]
mov edx, dword [ebp - 0x1c4]
mov ecx, dword [0x4ba6cc]
add esp, 0xc
add dword [0x4ba6a4], eax
mov edi, 2
add dword [ebp + 0x10], ebx
add ecx, ebx
sub dword [0x4ba6e8], ebx
mov dword [0x4ba6cc], ecx
cmp dword [0x4ba6e8], 0
jne 0x40cbe6
mov dword [esi + 0x330], edi
mov al, byte [edx + 9]
test al, 1
je 0x40cbfa
test byte [ecx], 1
jne 0x40cbfa
mov dword [0x4ba6ec], ebx
jmp 0x40cc15
test al, 8
je 0x40cc0b
test byte [ecx], 8
jne 0x40cc0b
mov dword [0x4ba6ec], ebx
jmp 0x40cc15
test al, 0x20
je 0x40cc15
mov dword [0x4ba6ec], edi
cmp dword [0x4ba6f4], 3
jl 0x40ce0c
mov eax, dword [edx + 0x10]
mov cl, byte [eax]
cmp cl, 0x26
jne 0x40cc34
mov edi, dword [0x4ba6ec]
jmp 0x40cc3f
cmp cl, 0x24
jne 0x40cca4
mov edi, dword [0x4ba6b4]
test edi, edi
je 0x40cca4
xor ecx, ecx
inc eax
cmp byte [eax], cl
je 0x40cc95
mov ebx, dword [0x4ba6c0]
mov edx, eax
mov al, byte [edx]
cmp al, 0x3a
jne 0x40cc61
cmp edi, 4
jne 0x40cc95
xor ecx, ecx
jmp 0x40cc8f
cmp al, 0x2a
jne 0x40cc87
cmp edi, 4
jne 0x40cc79
cmp ebx, 2
je 0x40cc8f
mov byte [ebp + ecx - 0x180], 0x44
jmp 0x40cc8e
test ebx, ebx
je 0x40cc8f
mov byte [ebp + ecx - 0x180], 0x57
jmp 0x40cc8e
mov byte [ebp + ecx - 0x180], al
inc ecx
inc edx
cmp byte [edx], 0
jne 0x40cc52
mov byte [ebp + ecx - 0x180], 0
mov ebx, 1
jmp 0x40cce5
lea edx, [ebp - 0x180]
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, ebx
test cl, cl
jne 0x40ccb0
xor eax, eax
cmp byte [ebp - 0x180], al
je 0x40cce5
cmp byte [ebp + eax - 0x180], 0x2c
je 0x40ccdd
add eax, ebx
cmp byte [ebp + eax - 0x180], 0
jne 0x40ccc5
jmp 0x40cce5
mov byte [ebp + eax - 0x180], 0
cmp dword [ebp - 0x1c8], 0
je 0x40cdba
cmp dword [0x4ba700], 0
je 0x40cdba
mov ecx, dword [0x4ba6e0]
xor edi, edi
cmp byte [ebp - 0x180], 0
je 0x40cd36
mov al, byte [ebp + edi - 0x180]
cmp al, 0x20
je 0x40cd30
mov byte [esi + ecx + 0x104], al
add edi, ebx
add ecx, ebx
cmp byte [ebp + edi - 0x180], 0
jne 0x40cd10
mov dword [0x4ba6e0], ecx
cmp byte [ebp + edi - 0x180], 0x20
jne 0x40cd52
mov byte [esi + ecx + 0x104], 0x20
add ecx, ebx
mov dword [0x4ba6e0], ecx
add edi, ebx
cmp ecx, 8
jge 0x40cd87
mov eax, dword [0x4ba6e0]
mov ebx, 8
sub ebx, eax
push ebx
lea ecx, [esi + eax + 0x104]
push 0x20
push ecx
call fcn.00450730
add esp, 0xc
add dword [0x4ba6e0], ebx
mov ecx, dword [0x4ba6e0]
mov ebx, 1
cmp byte [ebp + edi - 0x180], 0
lea eax, [ebp + edi - 0x180]
je 0x40cde8
jmp 0x40cda0
mov dl, byte [eax]
mov byte [esi + ecx + 0x104], dl
add eax, ebx
add ecx, ebx
cmp byte [eax], 0
jne 0x40cda0
mov dword [0x4ba6e0], ecx
jmp 0x40cde8
mov ecx, dword [0x4ba6e0]
lea eax, [ebp - 0x180]
push eax
lea edx, [esi + ecx + 0x104]
push 0x491130
push edx
call fcn.0044fcaa
mov esi, dword [0x4ba6fc]
add esp, 0xc
add dword [0x4ba6e0], eax
cmp dword [0x4ba718], 0
je 0x40ce06
add esi, 0x104
push esi
call fcn.00478c60
mov esi, dword [0x4ba6fc]
add esp, 4
mov edx, dword [ebp - 0x1c4]
xor ecx, ecx
mov dword [ebp - 0x1c8], ecx
jmp 0x40ce26
mov ecx, dword [ebp - 0x1c8]
cmp dword [esi + 0x330], 0
jne 0x40d730
test ecx, ecx
jne 0x40ce4e
mov al, byte [edx + 0xb]
test al, al
je 0x40ce4e
cmp al, 0x80
jae 0x40ce4e
movzx edi, byte [edx + 0xa]
mov dword [0x4ba6f8], ecx
jmp 0x40ce6c
mov dword [0x4ba6f8], ebx
test ecx, ecx
jne 0x40ce5e
movzx edi, byte [edx + 0xa]
jmp 0x40ce6c
cmp ecx, ebx
jne 0x40ce68
movzx edi, byte [edx + 0xb]
jmp 0x40ce6c
movzx edi, byte [edx + 0xc]
test edi, edi
je 0x40d730
cmp dword [0x4ba6f4], 3
jl 0x40cefc
cmp edi, 0x80
jge 0x40cefc
mov eax, dword [0x4ba6e0]
test ecx, ecx
jne 0x40ced5
mov byte [esi + eax + 0x104], 0x20
add eax, ebx
mov dword [0x4ba6e0], eax
cmp dword [0x4ba700], ecx
je 0x40cefc
cmp eax, 8
jge 0x40cefc
mov ebx, 8
sub ebx, eax
push ebx
lea ecx, [esi + eax + 0x104]
push 0x20
push ecx
call fcn.00450730
add esp, 0xc
add dword [0x4ba6e0], ebx
mov ebx, 1
jmp 0x40cefc
mov byte [esi + eax + 0x104], 0x2c
add eax, ebx
cmp dword [0x4ba710], 0
mov dword [0x4ba6e0], eax
je 0x40cefc
mov byte [esi + eax + 0x104], 0x20
add eax, ebx
mov dword [0x4ba6e0], eax
lea eax, [edi - 1]
cmp eax, 0x87
ja case.0x40cf11.57
movzx eax, byte [eax + 0x40e138]
jmp dword [eax*4 + 0x40e09c]
mov eax, 2
cmp dword [0x4ba6e8], eax
jae 0x40cf36
mov dword [esi + 0x330], eax
mov dword [0x4ba6a0], ebx
jmp case.0x40cf11.128
mov ecx, dword [0x4ba6ec]
mov edx, dword [0x4ba6cc]
push ebx
push ecx
movsx ecx, byte [edx + 1]
sar ecx, 3
call fcn.0040a480
mov esi, dword [0x4ba6fc]
add esp, 8
mov dword [0x4ba6a0], ebx
jmp case.0x40cf11.128
mov ecx, dword [0x4ba6cc]
mov eax, dword [0x4ba6ec]
movsx ecx, byte [ecx]
push 2
push eax
call fcn.0040a480
mov esi, dword [0x4ba6fc]
add esp, 8
jmp case.0x40cf11.128
mov eax, 2
cmp dword [0x4ba6e8], eax
jae 0x40cfa6
mov dword [esi + 0x330], eax
mov dword [0x4ba6a0], ebx
jmp case.0x40cf11.128
mov eax, dword [0x4ba6f4]
cmp eax, ebx
jl 0x40d021
cmp eax, 3
jl 0x40d021
mov edx, dword [0x4ba6cc]
movsx eax, byte [edx + 1]
sar eax, 3
and eax, 7
mov ecx, dword [eax*4 + 0x4a5048]
lea edx, [ebp - 0x1c]
mov edi, edi
mov al, byte [ecx]
mov byte [edx], al
add ecx, ebx
add edx, ebx
test al, al
jne 0x40cfd0
cmp dword [0x4ba718], 0
je 0x40cff7
lea ecx, [ebp - 0x1c]
push ecx
call fcn.00478c60
mov esi, dword [0x4ba6fc]
add esp, 4
mov eax, dword [0x4ba6e0]
lea edx, [ebp - 0x1c]
push edx
lea ecx, [esi + eax + 0x104]
push 0x491130
push ecx
call fcn.0044fcaa
add esp, 0xc
add dword [0x4ba6e0], eax
mov esi, dword [0x4ba6fc]
mov dword [0x4ba6a0], ebx
jmp case.0x40cf11.128
mov edx, dword [0x4ba6ec]
push 4
push edx
xor ecx, ecx
call fcn.0040a480
mov esi, dword [0x4ba6fc]
add esp, 8
jmp case.0x40cf11.128
cmp dword [0x4ba6f4], ebx
jl case.0x40cf11.128
cmp dword [0x4ba6f4], 3
jl case.0x40cf11.128
mov eax, dword [0x4a5024]
lea edx, [ebp - 0x10]
sub edx, eax
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, ebx
test cl, cl
jne 0x40d070
cmp dword [0x4ba718], 0
je 0x40d096
lea eax, [ebp - 0x10]
push eax
call fcn.00478c60
mov esi, dword [0x4ba6fc]
add esp, 4
mov edx, dword [0x4ba6e0]
lea ecx, [ebp - 0x10]
push ecx
lea eax, [esi + edx + 0x104]
push 0x491130
push eax
call fcn.0044fcaa
mov esi, dword [0x4ba6fc]
add esp, 0xc
add dword [0x4ba6e0], eax
jmp case.0x40cf11.128
cmp dword [0x4ba6f4], ebx
jl case.0x40cf11.128
cmp dword [0x4ba6f4], 3
jl case.0x40cf11.128
mov eax, dword [0x4a502c]
lea edx, [ebp - 0x34]
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, ebx
test cl, cl
jne 0x40d0f0
cmp dword [0x4ba718], 0
je 0x40d116
lea ecx, [ebp - 0x34]
push ecx
call fcn.00478c60
mov esi, dword [0x4ba6fc]
add esp, 4
mov eax, dword [0x4ba6e0]
lea edx, [ebp - 0x34]
push edx
lea ecx, [esi + eax + 0x104]
push 0x491130
push ecx
call fcn.0044fcaa
mov esi, dword [0x4ba6fc]
add esp, 0xc
add dword [0x4ba6e0], eax
jmp case.0x40cf11.128
cmp dword [0x4ba6f4], ebx
jl case.0x40cf11.128
cmp dword [0x4ba6f4], 3
jl case.0x40cf11.128
mov eax, dword [0x4a5004]
lea edx, [ebp - 0x28]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, ebx
test cl, cl
jne 0x40d168
cmp dword [0x4ba718], 0
je 0x40d18e
lea edx, [ebp - 0x28]
push edx
call fcn.00478c60
mov esi, dword [0x4ba6fc]
add esp, 4
mov ecx, dword [0x4ba6e0]
lea eax, [ebp - 0x28]
push eax
lea edx, [esi + ecx + 0x104]
push 0x491130
push edx
call fcn.0044fcaa
mov esi, dword [0x4ba6fc]
add esp, 0xc
add dword [0x4ba6e0], eax
jmp case.0x40cf11.128
cmp dword [0x4ba6f4], 3
jl case.0x40cf11.128
cmp dword [0x4ba718], 0
mov eax, 0x49113c
jne 0x40d1de
mov eax, 0x490a74
push 0
push eax
lea eax, [ebp - 0x80]
push str._s__i_
push eax
call fcn.0044fcaa
mov esi, dword [0x4ba6fc]
lea ecx, [ebp - 0x80]
mov edi, ecx
mov edx, esi
add esp, 0x10
sub edx, edi
mov edi, dword [0x4ba6e0]
lea edi, [edx + edi + 0x104]
mov edi, edi
mov dl, byte [ecx]
mov byte [edi + ecx], dl
add ecx, ebx
test dl, dl
jne 0x40d210
add dword [0x4ba6e0], eax
jmp case.0x40cf11.128
cmp dword [0x4ba6f4], 3
mov eax, dword [0x4ba6cc]
movsx eax, byte [eax]
jl case.0x40cf11.128
and eax, 7
cmp dword [0x4ba718], 0
mov ecx, 0x49113c
jne 0x40d251
mov ecx, 0x490a74
push eax
push ecx
lea ecx, [ebp - 0x60]
push str._s__i_
push ecx
call fcn.0044fcaa
mov esi, dword [0x4ba6fc]
lea ecx, [ebp - 0x60]
mov edi, ecx
mov edx, esi
add esp, 0x10
sub edx, edi
mov edi, dword [0x4ba6e0]
lea edi, [edx + edi + 0x104]
mov dl, byte [ecx]
mov byte [edi + ecx], dl
add ecx, ebx
test dl, dl
jne 0x40d280
add dword [0x4ba6e0], eax
jmp case.0x40cf11.128
mov eax, 2
cmp dword [0x4ba6e8], eax
jae 0x40d2b4
mov dword [esi + 0x330], eax
mov dword [0x4ba6a0], ebx
jmp case.0x40cf11.128
cmp dword [0x4ba6f4], 3
jl 0x40d021
mov eax, dword [0x4ba6cc]
movsx eax, byte [eax + 1]
mov ecx, dword [0x4ba6e0]
sar eax, 3
and eax, 7
cmp dword [0x4ba718], 0
lea esi, [esi + ecx + 0x104]
mov ecx, 0x49114c
jne 0x40d2f0
mov ecx, 0x491148
push eax
push ecx
push str._s_i
push esi
call fcn.0044fcaa
add esp, 0x10
jmp 0x40d015
mov eax, 2
cmp dword [0x4ba6e8], eax
jae 0x40d323
mov dword [esi + 0x330], eax
mov dword [0x4ba6a0], ebx
jmp case.0x40cf11.128
cmp dword [0x4ba6f4], 3
jl 0x40d021
mov edx, dword [0x4ba6cc]
movsx eax, byte [edx + 1]
jmp 0x40d2ca
push edi
call fcn.0040a9c0
mov esi, dword [0x4ba6fc]
add esp, 4
or dword [esi + 0x334], ebx
jmp case.0x40cf11.128
mov edx, dword [0x4ba6cc]
mov al, byte [edx + 1]
and al, 0xc0
cmp al, 0xc0
je case.0x40cf11.12
mov dword [0x4ba6dc], 5
push edi
call fcn.0040a9c0
mov esi, dword [0x4ba6fc]
add esp, 4
jmp case.0x40cf11.128
call fcn.0040b6c0
mov esi, dword [0x4ba6fc]
jmp case.0x40cf11.128
call fcn.0040b750
mov esi, dword [0x4ba6fc]
jmp case.0x40cf11.128
cmp dword [0x4ba6f4], 3
jl case.0x40cf11.128
cmp dword [0x4ba6b4], 2
mov dword [esi + 0x308], ebx
mov dword [esi + 0x310], ebx
mov eax, str.BXAL
je 0x40d3cf
mov eax, str.EBXAL
push 0
push eax
push 3
mov edx, ebx
call fcn.0040a710
mov esi, dword [0x4ba6fc]
add esp, 0xc
jmp case.0x40cf11.128
mov ecx, dword [ebp - 0x1c4]
test byte [ecx + 9], 2
je 0x40d41b
mov edx, dword [0x4ba6cc]
test byte [edx], 2
je 0x40d41b
mov ecx, dword [0x4ba6ec]
push edi
push ebx
call fcn.0040b850
mov esi, dword [0x4ba6fc]
add esp, 8
jmp case.0x40cf11.128
mov eax, dword [0x4ba6ec]
push edi
push eax
xor ecx, ecx
call fcn.0040b850
mov esi, dword [0x4ba6fc]
add esp, 8
jmp case.0x40cf11.128
call fcn.0040bb10
mov esi, dword [0x4ba6fc]
jmp case.0x40cf11.128
mov ecx, dword [0x4ba6ec]
push edi
push ebx
call fcn.0040b850
mov esi, dword [0x4ba6fc]
add esp, 8
jmp case.0x40cf11.128
cmp dword [0x4ba6f4], ebx
jl case.0x40cf11.128
cmp dword [0x4ba6f4], 3
mov dword [esi + 0x320], ebx
jl case.0x40cf11.128
mov ecx, dword [0x4ba6e0]
lea edx, [esi + ecx + 0x104]
push 0x4911c8
push edx
call fcn.0044fcaa
mov esi, dword [0x4ba6fc]
add esp, 8
add dword [0x4ba6e0], eax
jmp case.0x40cf11.128
push edi
push ebx
jmp 0x40d422
push edi
push 2
xor ecx, ecx
call fcn.0040b850
mov esi, dword [0x4ba6fc]
add esp, 8
test byte [esi + 0x320], 3
je case.0x40cf11.128
or dword [esi + 0x334], 0x80
jmp case.0x40cf11.128
call fcn.0040bcd0
mov esi, dword [0x4ba6fc]
jmp case.0x40cf11.128
mov eax, dword [ebp + 0x10]
add eax, 2
push eax
mov ecx, ebx
call fcn.0040bdd0
mov esi, dword [0x4ba6fc]
add esp, 4
jmp case.0x40cf11.128
mov ecx, dword [0x4ba6ec]
mov edx, dword [ebp + 0x10]
lea eax, [ecx + edx + 1]
push eax
call fcn.0040bdd0
mov esi, dword [0x4ba6fc]
add esp, 4
jmp case.0x40cf11.128
call fcn.0040c000
mov esi, dword [0x4ba6fc]
or dword [esi + 0x334], ebx
jmp case.0x40cf11.128
mov eax, 2
cmp dword [0x4ba6e8], eax
jae 0x40d559
mov dword [esi + 0x330], eax
mov ecx, dword [0x4ba6cc]
movsx eax, byte [ecx + 1]
sar eax, 3
call fcn.0040c0f0
mov esi, dword [0x4ba6fc]
mov dword [0x4ba6a0], ebx
jmp case.0x40cf11.128
mov edx, dword [0x4ba6cc]
movsx eax, byte [edx]
sar eax, 3
call fcn.0040c0f0
mov esi, dword [0x4ba6fc]
mov eax, dword [esi + 0x304]
and al, 0xf0
cmp al, 0x20
jne case.0x40cf11.128
or dword [esi + 0x334], 2
jmp case.0x40cf11.128
mov ecx, dword [0x4ba6cc]
mov dl, byte [ecx + 1]
and dl, 0xc0
cmp dl, 0xc0
je 0x40d5ca
mov dword [esi + 0x330], 5
mov eax, dword [0x4ba6cc]
movsx eax, byte [eax + 1]
call fcn.0040c190
mov esi, dword [0x4ba6fc]
jmp case.0x40cf11.128
mov ecx, dword [0x4ba6cc]
mov dl, byte [ecx + 1]
and dl, 0xc0
cmp dl, 0xc0
je 0x40d5fe
mov dword [esi + 0x330], 5
mov eax, dword [0x4ba6cc]
movsx eax, byte [eax + 1]
call fcn.0040c220
mov esi, dword [0x4ba6fc]
jmp case.0x40cf11.128
mov ecx, dword [0x4ba6ec]
push 0x82
push ecx
jmp 0x40d035
cmp dword [0x4ba6f4], 3
jl case.0x40cf11.128
cmp dword [0x4ba718], 0
mov eax, 0x49113c
jne 0x40d648
mov eax, 0x490a74
push 0
push eax
lea edx, [ebp - 0x1a0]
push str._s__i_
push edx
call fcn.0044fcaa
mov esi, dword [0x4ba6fc]
add esp, 0x10
jmp case.0x40cf11.128
cmp dword [0x4ba6f4], 3
jl case.0x40cf11.128
cmp dword [0x4ba718], 0
mov eax, 0x49113c
jne 0x40d68a
mov eax, 0x490a74
push ebx
push eax
lea eax, [ebp - 0x1c0]
push str._s__i_
push eax
call fcn.0044fcaa
mov esi, dword [0x4ba6fc]
add esp, 0x10
jmp case.0x40cf11.128
mov ecx, dword [ebp - 0x1dc]
push 0x87
push ecx
mov ecx, ebx
call fcn.0040a480
mov esi, dword [0x4ba6fc]
add esp, 8
jmp case.0x40cf11.128
cmp dword [0x4ba6f4], ebx
jl case.0x40cf11.128
cmp dword [0x4ba6f4], 3
jl case.0x40cf11.128
mov eax, dword [0x4a5064]
lea edx, [ebp - 0x40]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, ebx
test cl, cl
jne 0x40d6e1
cmp dword [0x4ba718], 0
je case.0x40cf11.128
lea edx, [ebp - 0x40]
push edx
call fcn.00478c60
mov esi, dword [0x4ba6fc]
add esp, 4
jmp case.0x40cf11.128
mov dword [esi + 0x330], 6
mov eax, dword [ebp - 0x1c8]
mov edx, dword [ebp - 0x1c4]
add eax, ebx
mov dword [ebp - 0x1c8], eax
cmp eax, 3
jl 0x40ce20
mov eax, dword [0x4ba6f0]
test eax, eax
je 0x40d74e
cmp dword [esi + 0x32c], 0
jle 0x40d74e
sub eax, dword [ebp - 0x1d8]
mov dword [esi + 0x328], eax
cmp dword [esi + 0x308], 0
jne 0x40d77f
cmp dword [0x4ba704], 0xffffffff
jne 0x40d771
cmp dword [0x4ba6b4], 4
je 0x40d78f
mov eax, dword [edx + 0x10]
cmp byte [eax], 0x24
je 0x40d77f
or dword [esi + 0x334], 0x20
or dword [esi + 0x304], 8
cmp dword [0x4ba6b4], 4
je 0x40d78f
or dword [esi + 0x304], 8
cmp dword [ebp - 0x1d4], 0
je 0x40d7af
cmp dword [0x4ba6d0], 0
je 0x40d7a9
mov dword [esi + 0x330], ebx
jmp 0x40d7af
mov dword [0x4ba6d0], ebx
cmp dword [esi + 0x330], 0
je 0x40d8a1
cmp dword [0x4ba6f4], 3
jl 0x40d7e4
push 0x491370
add esi, 0x104
push esi
call fcn.0044fcaa
mov esi, dword [0x4ba6fc]
add esp, 8
mov dword [0x4ba6e0], eax
cmp dword [esi + 0x330], ebx
jne 0x40d84d
mov ecx, dword [0x4ba6cc]
mov al, byte [ecx]
cmp al, 0xf
je 0x40d803
movsx edx, al
cmp edx, 0xff
jne 0x40d84d
cmp dword [0x4ba6e8], 0
jbe 0x40da7d
cmp dword [0x4ba6f4], 3
jl 0x40d841
mov ecx, dword [0x4ba6a4]
movsx eax, al
push eax
lea edx, [esi + ecx + 4]
push str._02X
push edx
call fcn.0044fcaa
mov esi, dword [0x4ba6fc]
add esp, 0xc
add dword [0x4ba6a4], eax
add dword [0x4ba6cc], ebx
sub dword [0x4ba6e8], ebx
cmp dword [0x4ba6e8], 0
jbe 0x40da7d
cmp dword [0x4ba6f4], 3
jl 0x40d890
mov eax, dword [0x4ba6cc]
movsx ecx, byte [eax]
mov edx, dword [0x4ba6a4]
push ecx
lea eax, [esi + edx + 4]
push str._02X
push eax
call fcn.0044fcaa
mov esi, dword [0x4ba6fc]
add esp, 0xc
add dword [0x4ba6a4], eax
add dword [0x4ba6cc], ebx
sub dword [0x4ba6e8], ebx
jmp 0x40da7d
cmp dword [0x4ba6f4], 3
jl 0x40da35
mov ecx, dword [0x4ba6cc]
movsx eax, byte [ecx]
add ecx, ebx
mov dword [0x4ba6cc], ecx
mov ecx, dword [0x4ba6a4]
push eax
lea edx, [esi + ecx + 4]
push str._02X
push edx
call fcn.0044fcaa
mov ecx, dword [0x4ba6a4]
add ecx, eax
add esp, 0xc
cmp dword [0x4ba6a0], 0
mov dword [0x4ba6a4], ecx
je 0x40d924
mov eax, dword [0x4ba6cc]
movsx edx, byte [eax]
add eax, ebx
mov dword [0x4ba6cc], eax
mov eax, dword [0x4ba6fc]
push edx
lea ecx, [eax + ecx + 4]
push str._02X
push ecx
call fcn.0044fcaa
mov ecx, dword [0x4ba6a4]
add esp, 0xc
add ecx, eax
mov dword [0x4ba6a4], ecx
cmp dword [0x4ba6d4], 0
je 0x40d963
mov eax, dword [0x4ba6cc]
movsx edx, byte [eax]
push edx
mov edx, dword [0x4ba6fc]
add eax, ebx
mov dword [0x4ba6cc], eax
lea eax, [edx + ecx + 4]
push str._02X
push eax
call fcn.0044fcaa
mov ecx, dword [0x4ba6a4]
add esp, 0xc
add ecx, eax
mov dword [0x4ba6a4], ecx
mov eax, dword [0x4ba724]
mov esi, dword [0x4ba6fc]
test eax, eax
je 0x40d9c8
mov byte [esi + ecx + 4], 0x20
add ecx, ebx
xor edi, edi
mov dword [0x4ba6a4], ecx
test eax, eax
jle 0x40d9c8
mov eax, dword [0x4ba6cc]
movsx edx, byte [eax]
push edx
lea ecx, [esi + ecx + 4]
inc eax
push str._02X
push ecx
mov dword [0x4ba6cc], eax
call fcn.0044fcaa
mov ecx, dword [0x4ba6a4]
mov esi, dword [0x4ba6fc]
add ecx, eax
inc edi
add esp, 0xc
mov dword [0x4ba6a4], ecx
cmp edi, dword [0x4ba724]
jl 0x40d985
mov ebx, 1
mov eax, dword [0x4ba6d0]
test eax, eax
je 0x40da5c
mov byte [esi + ecx + 4], 0x20
add ecx, ebx
xor edi, edi
mov dword [0x4ba6a4], ecx
test eax, eax
jle 0x40da5c
jmp 0x40d9f0
mov eax, dword [0x4ba6cc]
movsx edx, byte [eax]
push edx
lea edx, [esi + ecx + 4]
inc eax
push str._02X
push edx
mov dword [0x4ba6cc], eax
call fcn.0044fcaa
mov ecx, dword [0x4ba6a4]
mov esi, dword [0x4ba6fc]
add ecx, eax
inc edi
add esp, 0xc
mov dword [0x4ba6a4], ecx
cmp edi, dword [0x4ba6d0]
jl 0x40d9f0
mov ebx, 1
jmp 0x40da5c
mov ecx, dword [0x4ba6d0]
add ecx, dword [0x4ba724]
mov edx, dword [0x4ba6cc]
add ecx, dword [0x4ba6d4]
add ecx, dword [0x4ba6a0]
lea eax, [edx + ecx + 1]
mov dword [0x4ba6cc], eax
or ecx, 0xffffffff
sub ecx, dword [0x4ba6d0]
sub ecx, dword [0x4ba724]
sub ecx, dword [0x4ba6d4]
sub ecx, dword [0x4ba6a0]
add dword [0x4ba6e8], ecx
mov edi, dword [0x4ba6f4]
cmp edi, ebx
jl 0x40daec
mov ecx, dword [0x48fd80]
mov eax, 0x48fd80
test ecx, ecx
je 0x40daec
mov edx, dword [ebp - 0x1cc]
lea esp, [esp]
mov ebx, dword [eax + 4]
xor ebx, edx
test ecx, ebx
je 0x40dab5
mov ecx, dword [eax + 0x14]
add eax, 0x14
test ecx, ecx
jne 0x40daa0
jmp 0x40daec
mov al, byte [eax + 0xd]
cmp al, 7
jne 0x40dac5
cmp dword [ebp - 0x1d0], 0
je 0x40daec
cmp dword [0x4ba71c], 0
je 0x40dad2
cmp al, 1
je 0x40daec
cmp al, 1
jne 0x40dae2
or dword [esi + 0x334], 0x1000
jmp 0x40daec
or dword [esi + 0x334], 0x3000
cmp dword [esi + 0x330], 0
jne 0x40db04
mov eax, dword [0x4ba6dc]
test eax, eax
je 0x40db04
mov dword [esi + 0x330], eax
cmp edi, 3
jl 0x40de82
mov eax, dword [esi + 0x330]
test eax, eax
je 0x40dc45
dec eax
cmp eax, 5
ja case.default.0x40db25
jmp dword [eax*4 + 0x40e1c0]
lea edi, [esi + 0x204]
mov ecx, 9
mov esi, str.Command_crosses_end_of_memory_block
rep movsd dword es:[edi], dword [esi]
jmp 0x40de82
mov edx, dword [str.Unknown_command]
mov dword [esi + 0x204], edx
mov eax, dword [0x491334]
mov dword [esi + 0x208], eax
mov ecx, dword [0x491338]
mov dword [esi + 0x20c], ecx
mov edx, dword [0x49133c]
mov dword [esi + 0x210], edx
jmp 0x40de82
lea edi, [esi + 0x204]
mov ecx, 6
mov esi, str.Undefined_segment_register
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jmp 0x40de82
mov eax, dword [str.Illegal_use_of_register]
mov dword [esi + 0x204], eax
mov ecx, dword [0x4912f8]
mov dword [esi + 0x208], ecx
mov edx, dword [0x4912fc]
mov dword [esi + 0x20c], edx
mov eax, dword [0x491300]
mov dword [esi + 0x210], eax
mov ecx, dword [0x491304]
mov dword [esi + 0x214], ecx
mov edx, dword [0x491308]
mov dword [esi + 0x218], edx
jmp 0x40de82
lea edi, [esi + 0x204]
mov ecx, 6
mov esi, str.Memory_address_not_allowed
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jmp 0x40de82
lea edi, [esi + 0x204]
mov ecx, 5
mov esi, str.Internal_OLLYDBG_error
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jmp 0x40de82
mov eax, dword [str.Unknown_error]
mov dword [esi + 0x204], eax
mov ecx, dword [0x4912c8]
mov dword [esi + 0x208], ecx
mov edx, dword [0x4912cc]
mov dword [esi + 0x20c], edx
mov ax, word [0x4912d0]
mov word [esi + 0x210], ax
jmp 0x40de82
mov eax, dword [esi + 0x334]
test al, 4
je 0x40dca5
cmp dword [0x4ba728], 0
jne 0x40dca5
mov ecx, dword [str.Privileged_command]
mov dword [esi + 0x204], ecx
mov edx, dword [0x4912b0]
mov dword [esi + 0x208], edx
mov eax, dword [0x4912b4]
mov dword [esi + 0x20c], eax
mov ecx, dword [0x4912b8]
mov dword [esi + 0x210], ecx
mov dx, word [0x4912bc]
mov word [esi + 0x214], dx
mov al, byte [0x4912be]
mov byte [esi + 0x216], al
jmp 0x40de82
test al, 8
je 0x40dcda
cmp dword [0x4ba6b0], 0
jne 0x40dcda
mov ecx, dword [str.I_O_command]
mov dword [esi + 0x204], ecx
mov edx, dword [0x4912a0]
mov dword [esi + 0x208], edx
mov eax, dword [0x4912a4]
mov dword [esi + 0x20c], eax
jmp 0x40de82
mov ecx, dword [0x4ba70c]
test al, 1
je 0x40dd96
test ecx, ecx
jne 0x40dd96
mov eax, dword [esi + 0x304]
and eax, 0xf0
cmp eax, 0x50
jne 0x40dd28
mov ecx, dword [str.Far_jump]
mov dword [esi + 0x204], ecx
mov edx, dword [0x491294]
mov dword [esi + 0x208], edx
mov al, byte [0x491298]
mov byte [esi + 0x20c], al
jmp 0x40de82
cmp eax, 0x70
jne 0x40dd55
mov ecx, dword [str.Far_call]
mov dword [esi + 0x204], ecx
mov edx, dword [0x491288]
mov dword [esi + 0x208], edx
mov al, byte [0x49128c]
mov byte [esi + 0x20c], al
jmp 0x40de82
cmp eax, 0x80
jne 0x40de82
mov ecx, dword [str.Far_return]
mov dword [esi + 0x204], ecx
mov edx, dword [0x491278]
mov dword [esi + 0x208], edx
mov ax, word [0x49127c]
mov word [esi + 0x20c], ax
mov cl, byte [0x49127e]
mov byte [esi + 0x20e], cl
jmp 0x40de82
test al, 2
je 0x40ddb6
test ecx, ecx
jne 0x40ddb6
lea edi, [esi + 0x204]
mov ecx, 8
mov esi, str.Modification_of_segment_register
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
jmp 0x40de82
test al, 0x10
je 0x40ddd8
cmp dword [0x4ba6c4], 0
jne 0x40ddd8
lea edi, [esi + 0x204]
mov ecx, 8
mov esi, str.Shift_constant_out_of_range_1..31
jmp 0x40de7e
test al, 0x20
je 0x40de2f
cmp dword [0x4ba6ac], 0
jne 0x40de2f
mov edx, dword [str.Superfluous_prefix]
mov dword [esi + 0x204], edx
mov eax, dword [0x491380]
mov dword [esi + 0x208], eax
mov ecx, dword [0x491384]
mov dword [esi + 0x20c], ecx
mov edx, dword [0x491388]
mov dword [esi + 0x210], edx
mov ax, word [0x49138c]
mov word [esi + 0x214], ax
mov cl, byte [0x49138e]
mov byte [esi + 0x216], cl
jmp 0x40de82
test al, 0x40
je 0x40de61
cmp dword [0x4ba714], 0
jne 0x40de61
mov edx, dword [str.LOCK_prefix]
mov dword [esi + 0x204], edx
mov eax, dword [0x491218]
mov dword [esi + 0x208], eax
mov ecx, dword [0x49121c]
mov dword [esi + 0x20c], ecx
jmp 0x40de82
test al, al
jns 0x40de82
cmp dword [0x4ba6bc], 0
jne 0x40de82
lea edi, [esi + 0x204]
mov ecx, 6
mov esi, str.Unaligned_stack_operation
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov ecx, dword [ebp - 4]
mov eax, dword [ebp + 0xc]
sub eax, dword [0x4ba6e8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0044fef1
mov esp, ebp
pop ebp
ret