Function at 0x10003620
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1f8
mov eax, dword [0x1001c0c0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
push ebx
push esi
mov esi, edx
xor edx, edx
push edi
mov edi, 4
mov dword [ebp - 0x1f8], esi
mov dword [0x100200f4], edi
mov dword [0x100200f8], edi
or ebx, 0xffffffff
xor edi, edi
mov dword [0x100200cc], esi
mov esi, eax
mov dword [ebp - 0x1ec], edx
mov dword [0x100200f0], ebx
mov dword [0x100200e8], edx
mov dword [0x100200ec], edx
mov dword [0x100200e0], edx
mov dword [0x100200e4], edx
mov dword [ebp - 0x1e8], edx
mov dword [ebp - 0x1e4], edx
mov dword [0x100200d8], edi
mov dword [0x100200d4], edx
mov dword [0x100200c4], ecx
mov dword [0x100200c8], edx
mov dword [0x100200dc], edx
mov dword [ebp - 0x1f0], edx
mov dword [0x100200c0], esi
mov dword [eax], edx
mov byte [eax + 0x204], dl
mov dword [eax + 0x304], 0xf0
mov dword [eax + 0x30c], edx
mov dword [eax + 0x308], edx
mov dword [eax + 0x310], edx
mov dword [eax + 0x314], edx
mov dword [eax + 0x318], edx
mov dword [eax + 0x31c], edx
mov dword [eax + 0x320], edx
mov dword [eax + 0x324], edx
mov dword [eax + 0x328], edx
mov dword [eax + 0x32c], edx
mov dword [eax + 0x334], edx
mov dword [eax + 0x330], edx
mov dword [0x100200bc], edx
mov dword [ebp - 0x1e0], edx
cmp ecx, edx
jbe 0x10003926
lea esp, [esp]
mov eax, dword [0x100200cc]
mov cl, byte [eax]
movsx eax, cl
add eax, 0xffffffda
cmp eax, 0xcd
ja case.0x1000374f.39
movzx eax, byte [eax + 0x10004e1c]
jmp dword [eax*4 + 0x10004dec]
cmp ebx, 0xffffffff
jne 0x100039a5
xor ebx, ebx
mov dword [0x100200f0], ebx
jmp 0x1000385e
cmp ebx, 0xffffffff
jne 0x100039a5
mov ebx, 1
mov dword [0x100200f0], ebx
jmp 0x1000385e
cmp ebx, 0xffffffff
jne 0x100039a5
mov ebx, 2
mov dword [0x100200f0], ebx
jmp 0x1000385e
cmp ebx, 0xffffffff
jne 0x100039a5
mov ebx, 3
mov dword [0x100200f0], ebx
jmp 0x1000385e
cmp ebx, 0xffffffff
jne 0x100039a5
mov ebx, 4
mov dword [0x100200f0], ebx
jmp 0x1000385e
cmp ebx, 0xffffffff
jne 0x100039a5
mov ebx, 5
mov dword [0x100200f0], ebx
jmp 0x1000385e
cmp dword [0x100200f8], 4
jne 0x100039a5
mov dword [0x100200f8], 2
jmp 0x1000385e
cmp dword [0x100200f4], 4
jne 0x100039a5
mov dword [0x100200f4], 2
jmp 0x1000385e
cmp dword [ebp - 0x1e8], edx
jne 0x100039a5
mov dword [ebp - 0x1e8], 0xf0
jmp 0x1000385e
cmp dword [ebp - 0x1e4], edx
jne 0x100039a5
mov dword [ebp - 0x1e4], 0xf2
jmp 0x1000385e
cmp dword [ebp - 0x1e4], edx
jne 0x100039a5
mov dword [ebp - 0x1e4], 0xf3
cmp dword [0x100200bc], 3
jl 0x100038a1
movzx ecx, cl
push ecx
mov edx, 0x100
push str._02X:
sub edx, edi
push edx
lea eax, [esi + edi + 4]
push eax
call fcn.10009d77
mov edi, dword [0x100200d8]
mov ebx, dword [0x100200f0]
mov esi, dword [0x100200c0]
add edi, eax
add esp, 0x10
mov dword [0x100200d8], edi
xor edx, edx
mov eax, dword [0x100200c4]
inc dword [ebp - 0x1e0]
mov ecx, 1
add dword [esi + 0x30c], ecx
add dword [0x100200cc], ecx
add dword [ebp - 0x1ec], ecx
sub eax, ecx
mov dword [0x100200c4], eax
cmp eax, edx
ja 0x10003730
cmp dword [ebp - 0x1e8], edx
je 0x10003926
cmp dword [0x100200bc], 3
jl 0x1000391f
mov eax, dword [0x100200d4]
mov ecx, 0x100
push str.LOCK
sub ecx, eax
push ecx
lea edx, [esi + eax + 0x104]
push edx
call fcn.10009d77
add dword [0x100200d4], eax
mov ebx, dword [0x100200f0]
mov edi, dword [0x100200d8]
mov esi, dword [0x100200c0]
add esp, 0xc
xor edx, edx
or dword [esi + 0x334], 0x40
mov eax, dword [0x100200cc]
mov dword [ebp - 0x1e0], edx
cmp dword [0x100200c4], edx
jbe 0x10003941
mov cl, byte [eax]
mov byte [ebp - 0x1e0], cl
cmp dword [0x100200c4], 1
jbe 0x10003953
mov cl, byte [eax + 1]
mov byte [ebp - 0x1df], cl
cmp dword [0x100200c4], 2
jbe 0x10003965
mov al, byte [eax + 2]
mov byte [ebp - 0x1de], al
mov eax, dword [ebp - 0x1e4]
cmp eax, edx
je 0x10003980
mov ecx, dword [ebp - 0x1e0]
shl ecx, 8
or ecx, eax
mov dword [ebp - 0x1e0], ecx
cmp dword [0x10020118], edx
je 0x10003af1
cmp word [ebp - 0x1e0], 0x20cd
jne 0x10003af1
mov ecx, 0x10019850
jmp 0x10003b3f
cmp dword [0x100200bc], 3
jl 0x10003ab2
mov eax, dword [0x100200cc]
sub eax, dword [ebp - 0x1e0]
mov byte [esi + 7], 0
mov dword [esi + 0x30c], 1
movsx eax, byte [eax]
add eax, 0xffffffda
cmp eax, 0xcd
ja case.0x100039df.39
movzx ecx, byte [eax + 0x10004f1c]
jmp dword [ecx*4 + 0x10004eec]
mov eax, dword [0x1001f20c]
jmp 0x10003a38
mov eax, dword [0x1001f210]
jmp 0x10003a38
mov eax, dword [0x1001f214]
jmp 0x10003a38
mov eax, dword [0x1001f218]
jmp 0x10003a38
mov eax, dword [0x1001f21c]
jmp 0x10003a38
mov eax, dword [0x1001f220]
jmp 0x10003a38
mov eax, str.DATASIZE
jmp 0x10003a38
mov eax, str.ADDRSIZE
jmp 0x10003a38
mov eax, 0x100198f4
jmp 0x10003a38
mov eax, str.REPNE
jmp 0x10003a38
mov eax, str.REPE
jmp 0x10003a38
mov eax, 0x10019af8
push eax
mov eax, dword [0x100200d4]
mov edx, 0x100
sub edx, eax
push str.PREFIX__s:
push edx
lea eax, [esi + eax + 0x104]
push eax
call fcn.10009d77
add dword [0x100200d4], eax
add esp, 0x10
cmp dword [0x10020140], 0
je 0x10003a84
mov ecx, dword [0x100200c0]
add ecx, 0x104
push 0x100
push ecx
call fcn.1000a35c
add esp, 8
cmp dword [0x10020108], 0
jne 0x10003aac
mov edx, dword [0x100200c0]
push str.Superfluous_prefix
add edx, 0x204
push 0x100
push edx
call fcn.10009e1c
add esp, 0xc
mov esi, dword [0x100200c0]
or dword [esi + 0x334], 0x20
cmp dword [ebp - 0x1e8], 0
mov eax, dword [esi + 0x334]
je 0x10003ad1
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.10009d68
mov esp, ebp
pop ebp
ret
mov ecx, 0x10016a88
mov eax, 0xff
jmp 0x10003b00
mov edx, dword [ecx + 4]
xor edx, dword [ebp - 0x1e0]
test eax, edx
jne 0x10003b35
cmp dword [0x100200bc], 3
jl 0x10003b3f
cmp dword [0x10020128], 0
je 0x10003b3f
mov al, byte [ecx + 0xa]
cmp al, 0x26
je 0x10003b35
cmp al, 0x27
je 0x10003b35
mov al, byte [ecx + 0xb]
cmp al, 0x26
je 0x10003b35
cmp al, 0x27
jne 0x10003b3f
mov eax, dword [ecx + 0x14]
add ecx, 0x14
test eax, eax
jne 0x10003b00
mov al, byte [ecx + 0xd]
and al, 0xf0
mov dword [ebp - 0x1dc], ecx
cmp al, 0xe0
jne 0x10003bad
mov dword [ebp - 0x1f0], 1
call fcn.10003540
mov edx, dword [ebp - 0x1dc]
test eax, eax
jns 0x10003b73
mov dword [esi + 0x330], 2
jmp 0x10003bb3
mov ecx, dword [edx]
test ecx, ecx
je 0x10003bb8
lea esp, [esp]
mov edx, dword [edx + 4]
xor edx, dword [ebp - 0x1e0]
test ecx, edx
mov edx, dword [ebp - 0x1dc]
jne 0x10003b9b
movzx ecx, byte [edx + 6]
cmp ecx, eax
je 0x10003bb3
mov ecx, dword [edx + 0x14]
add edx, 0x14
mov dword [ebp - 0x1dc], edx
test ecx, ecx
jne 0x10003b80
jmp 0x10003bb8
mov edx, dword [ebp - 0x1dc]
cmp dword [edx], 0
jne 0x10003bd9
cmp dword [0x100200c4], 2
mov dword [esi + 0x304], 0xf0
sbb edx, edx
neg edx
inc edx
mov dword [esi + 0x330], edx
jmp 0x1000412b
movzx eax, byte [edx + 0xd]
mov ecx, dword [0x100200f8]
mov dword [esi + 0x304], eax
mov dword [ebp - 0x1f4], ecx
cmp ebx, 4
je 0x10003c02
cmp ebx, 5
je 0x10003c02
cmp dword [ebp - 0x1e8], 0
je 0x10003c0b
or eax, 8
mov dword [esi + 0x304], eax
mov al, byte [edx + 9]
cmp al, 0x80
jne 0x10003c1b
or dword [esi + 0x334], 4
jmp 0x10003c26
cmp al, 0x81
jne 0x10003c26
or dword [esi + 0x334], 8
mov ecx, dword [0x100200cc]
mov al, byte [ecx]
cmp al, 0x44
je 0x10003c68
cmp al, 0x4c
je 0x10003c68
cmp dword [0x100200c4], 3
jb 0x10003c79
movsx eax, al
cmp eax, 0x81
je 0x10003c50
cmp eax, 0x83
jne 0x10003c79
movsx eax, byte [ecx + 1]
cmp eax, 0xc4
je 0x10003c62
cmp eax, 0xec
jne 0x10003c79
test byte [ecx + 2], 3
je 0x10003c79
or dword [esi + 0x334], 0x80
or dword [esi + 0x304], 8
movsx eax, byte [ecx]
mov ebx, 2
cmp eax, 0x8e
jne 0x10003c8e
or dword [esi + 0x334], ebx
cmp byte [edx + 8], 2
jne 0x10003d08
cmp dword [0x100200c4], 0
jne 0x10003ca5
mov dword [esi + 0x330], ebx
jmp 0x10003d11
cmp dword [0x100200bc], 3
jl 0x10003cef
mov ecx, dword [0x100200cc]
movzx edx, byte [ecx]
push edx
mov eax, 0x100
push str._02X
sub eax, edi
push eax
lea ecx, [esi + edi + 4]
push ecx
call fcn.10009d77
mov esi, dword [0x100200c0]
mov ecx, dword [0x100200cc]
mov edx, dword [ebp - 0x1dc]
add esp, 0x10
add dword [0x100200d8], eax
mov ebx, 2
mov eax, 1
add dword [ebp - 0x1ec], eax
add ecx, eax
sub dword [0x100200c4], eax
mov dword [0x100200cc], ecx
cmp dword [0x100200c4], 0
jne 0x10003d17
mov dword [esi + 0x330], ebx
mov al, byte [edx + 9]
test al, 1
je 0x10003d2f
test byte [ecx], 1
jne 0x10003d2f
mov dword [0x100200f8], 1
jmp 0x10003d4e
test al, 8
je 0x10003d44
test byte [ecx], 8
jne 0x10003d44
mov dword [0x100200f8], 1
jmp 0x10003d4e
test al, 0x20
je 0x10003d4e
mov dword [0x100200f8], ebx
cmp dword [0x100200bc], 3
jl 0x10003f3b
mov ecx, dword [edx + 0x10]
mov al, byte [ecx]
cmp al, 0x26
jne 0x10003d6c
mov edi, dword [0x100200f8]
jmp 0x10003d76
cmp al, 0x24
jne 0x10003ddf
mov edi, dword [0x100200f4]
test edi, edi
je 0x10003ddf
xor eax, eax
inc ecx
cmp byte [ecx], al
je 0x10003dd5
mov ebx, dword [0x10020124]
mov edx, ecx
lea esp, [esp]
mov cl, byte [edx]
cmp cl, 0x3a
jne 0x10003da0
cmp edi, 4
jne 0x10003dd5
xor eax, eax
jmp 0x10003dcf
cmp cl, 0x2a
jne 0x10003dc7
cmp edi, 4
jne 0x10003db9
cmp ebx, 2
je 0x10003dcf
mov byte [ebp + eax - 0x198], 0x44
jmp 0x10003dce
test ebx, ebx
je 0x10003dcf
mov byte [ebp + eax - 0x198], 0x57
jmp 0x10003dce
mov byte [ebp + eax - 0x198], cl
inc eax
inc edx
cmp byte [edx], 0
jne 0x10003d90
mov byte [ebp + eax - 0x198], 0
jmp 0x10003e25
push ecx
lea edx, [ebp - 0x198]
push 0x100
push edx
call fcn.10009e1c
xor eax, eax
add esp, 0xc
cmp byte [ebp - 0x198], al
je 0x10003e1f
mov edi, edi
cmp byte [ebp + eax - 0x198], 0x2c
je 0x10003e17
inc eax
cmp byte [ebp + eax - 0x198], 0
jne 0x10003e00
jmp 0x10003e1f
mov byte [ebp + eax - 0x198], 0
mov esi, dword [0x100200c0]
cmp dword [ebp - 0x1e4], 0
mov ecx, dword [0x100200d4]
je 0x10003ee8
cmp dword [0x1002013c], 0
je 0x10003ee8
xor edi, edi
cmp byte [ebp - 0x198], 0
je 0x10003e74
mov al, byte [ebp + edi - 0x198]
cmp al, 0x20
je 0x10003e6e
mov byte [esi + ecx + 0x104], al
inc edi
inc ecx
cmp byte [ebp + edi - 0x198], 0
jne 0x10003e50
mov dword [0x100200d4], ecx
cmp byte [ebp + edi - 0x198], 0x20
jne 0x10003e8e
mov byte [esi + ecx + 0x104], 0x20
inc ecx
mov dword [0x100200d4], ecx
inc edi
cmp ecx, 8
jge 0x10003ebe
mov eax, dword [0x100200d4]
mov ebx, 8
sub ebx, eax
push ebx
lea ecx, [esi + eax + 0x104]
push 0x20
push ecx
call fcn.1000c7a0
add esp, 0xc
add dword [0x100200d4], ebx
mov ecx, dword [0x100200d4]
cmp byte [ebp + edi - 0x198], 0
lea eax, [ebp + edi - 0x198]
je 0x10003f18
nop
mov dl, byte [eax]
mov byte [esi + ecx + 0x104], dl
inc eax
inc ecx
cmp byte [eax], 0
jne 0x10003ed0
mov dword [0x100200d4], ecx
jmp 0x10003f18
lea eax, [ebp - 0x198]
push eax
mov edx, 0x100
push 0x10019a24
sub edx, ecx
push edx
lea eax, [esi + ecx + 0x104]
push eax
call fcn.10009d77
mov esi, dword [0x100200c0]
add esp, 0x10
add dword [0x100200d4], eax
cmp dword [0x10020140], 0
je 0x10003f3b
push 0x100
add esi, 0x104
push esi
call fcn.1000a35c
mov esi, dword [0x100200c0]
add esp, 8
xor ebx, ebx
mov dword [ebp - 0x1e4], ebx
cmp dword [esi + 0x330], 0
mov ecx, dword [ebp - 0x1dc]
jne 0x100040c6
test ebx, ebx
jne 0x10003f71
mov al, byte [ecx + 0xb]
test al, al
je 0x10003f71
cmp al, 0x80
jae 0x10003f71
movzx edi, byte [ecx + 0xa]
mov dword [0x100200d0], ebx
jmp 0x10003f94
mov dword [0x100200d0], 1
test ebx, ebx
jne 0x10003f85
movzx edi, byte [ecx + 0xa]
jmp 0x10003f94
cmp ebx, 1
jne 0x10003f90
movzx edi, byte [ecx + 0xb]
jmp 0x10003f94
movzx edi, byte [ecx + 0xc]
test edi, edi
je 0x100040c6
cmp dword [0x100200bc], 3
jl 0x10004026
cmp edi, 0x80
jge 0x10004026
mov eax, dword [0x100200d4]
test ebx, ebx
jne 0x10004001
mov byte [esi + eax + 0x104], 0x20
inc eax
mov dword [0x100200d4], eax
cmp dword [0x1002013c], ebx
je 0x10004026
cmp eax, 8
jge 0x10004026
mov ebx, 8
sub ebx, eax
push ebx
lea ecx, [esi + eax + 0x104]
push 0x20
push ecx
call fcn.1000c7a0
add esp, 0xc
add dword [0x100200d4], ebx
mov ebx, dword [ebp - 0x1e4]
jmp 0x10004026
mov byte [esi + eax + 0x104], 0x2c
inc eax
cmp dword [0x10020138], 0
mov dword [0x100200d4], eax
je 0x10004026
mov byte [esi + eax + 0x104], 0x20
inc eax
mov dword [0x100200d4], eax
lea eax, [edi - 1]
cmp eax, 0x87
ja case.0x1000403b.57
movzx ecx, byte [eax + 0x10005084]
jmp dword [ecx*4 + 0x10004fec]
mov eax, 2
cmp dword [0x100200c4], eax
jae 0x10004061
mov dword [esi + 0x330], eax
mov dword [0x100200ec], 1
jmp case.0x1000403b.128
mov eax, dword [0x100200cc]
movsx ecx, byte [eax + 1]
mov edx, dword [0x100200f8]
push 1
push edx
sar ecx, 3
call fcn.10001f80
add esp, 8
mov esi, dword [0x100200c0]
mov dword [0x100200ec], 1
jmp case.0x1000403b.128
mov ecx, dword [0x100200f8]
mov edx, dword [0x100200cc]
push 2
push ecx
movsx ecx, byte [edx]
call fcn.10001f80
add esp, 8
mov esi, dword [0x100200c0]
inc ebx
mov dword [ebp - 0x1e4], ebx
cmp ebx, 3
jl 0x10003f43
mov ecx, dword [ebp - 0x1dc]
mov eax, dword [0x100200c8]
test eax, eax
je 0x100040e4
cmp dword [esi + 0x32c], 0
jle 0x100040e4
sub eax, dword [ebp - 0x1f8]
mov dword [esi + 0x328], eax
cmp dword [esi + 0x308], 0
jne 0x10004115
cmp dword [0x100200f0], 0xffffffff
jne 0x10004107
cmp dword [0x100200f4], 4
je 0x10004125
mov edx, dword [ecx + 0x10]
cmp byte [edx], 0x24
je 0x10004115
or dword [esi + 0x334], 0x20
or dword [esi + 0x304], 8
cmp dword [0x100200f4], 4
je 0x10004125
or dword [esi + 0x304], 8
mov edi, dword [0x100200d8]
cmp dword [ebp - 0x1f0], 0
je 0x10004901
cmp dword [0x100200e0], 0
je 0x100048f7
mov dword [esi + 0x330], 1
jmp 0x10004901
mov eax, 2
cmp dword [0x100200c4], eax
jae 0x10004176
mov dword [esi + 0x330], eax
mov dword [0x100200ec], 1
jmp case.0x1000403b.128
mov eax, dword [0x100200bc]
cmp eax, 1
jl 0x10004084
cmp eax, 3
jl 0x10004084
mov eax, dword [0x100200cc]
movsx ecx, byte [eax + 1]
sar ecx, 3
and ecx, 7
mov edx, dword [ecx*4 + 0x1001f1e8]
push edx
lea eax, [ebp - 0x34]
push 9
push eax
call fcn.10009e1c
add esp, 0xc
cmp dword [0x10020140], 0
je 0x100041c9
lea ecx, [ebp - 0x34]
push 9
push ecx
call fcn.1000a35c
add esp, 8
mov eax, dword [0x100200d4]
lea edx, [ebp - 0x34]
push edx
mov edx, dword [0x100200c0]
mov ecx, 0x100
sub ecx, eax
push 0x10019a24
push ecx
lea eax, [edx + eax + 0x104]
push eax
call fcn.10009d77
add esp, 0x10
add dword [0x100200d4], eax
jmp 0x1000407e
mov ecx, dword [0x100200f8]
push 4
push ecx
xor ecx, ecx
jmp 0x100040a2
cmp dword [0x100200bc], 1
jl case.0x1000403b.128
cmp dword [0x100200bc], 3
jl case.0x1000403b.128
mov edx, dword [0x1001f1c4]
push edx
lea eax, [ebp - 0x10]
push 9
push eax
call fcn.10009e1c
add esp, 0xc
cmp dword [0x10020140], 0
je 0x10004256
lea ecx, [ebp - 0x10]
push 9
push ecx
call fcn.1000a35c
add esp, 8
lea edx, [ebp - 0x10]
push edx
mov eax, dword [0x100200d4]
mov edx, dword [0x100200c0]
mov ecx, 0x100
sub ecx, eax
push 0x10019a24
push ecx
lea eax, [edx + eax + 0x104]
push eax
call fcn.10009d77
add esp, 0x10
add dword [0x100200d4], eax
jmp 0x100040aa
cmp dword [0x100200bc], 1
jl case.0x1000403b.128
cmp dword [0x100200bc], 3
jl case.0x1000403b.128
mov ecx, dword [0x1001f1cc]
push ecx
lea edx, [ebp - 0x1c]
push 9
push edx
call fcn.10009e1c
add esp, 0xc
cmp dword [0x10020140], 0
je 0x100042d3
lea eax, [ebp - 0x1c]
push 9
push eax
call fcn.1000a35c
add esp, 8
mov eax, dword [0x100200d4]
lea ecx, [ebp - 0x1c]
push ecx
mov ecx, dword [0x100200c0]
mov edx, 0x100
sub edx, eax
push 0x10019a24
push edx
lea edx, [ecx + eax + 0x104]
push edx
call fcn.10009d77
add esp, 0x10
add dword [0x100200d4], eax
jmp 0x100040aa
cmp dword [0x100200bc], 1
jl case.0x1000403b.128
cmp dword [0x100200bc], 3
jl case.0x1000403b.128
mov eax, dword [0x1001f1a4]
push eax
lea ecx, [ebp - 0x28]
push 9
push ecx
call fcn.10009e1c
add esp, 0xc
cmp dword [0x10020140], 0
je 0x1000434f
lea edx, [ebp - 0x28]
push 9
push edx
call fcn.1000a35c
add esp, 8
lea eax, [ebp - 0x28]
push eax
jmp 0x1000425a
cmp dword [0x100200bc], 3
jl case.0x1000403b.128
cmp dword [0x10020140], 0
mov eax, 0x10019a28
jne 0x10004378
mov eax, 0x100198cc
push 0
push eax
push str._s__i_
lea ecx, [ebp - 0x78]
push 0x20
push ecx
call fcn.10009d77
lea edx, [ebp - 0x78]
mov esi, eax
push edx
mov eax, dword [0x100200d4]
mov edx, dword [0x100200c0]
mov ecx, 0x100
sub ecx, eax
push ecx
lea eax, [edx + eax + 0x104]
push eax
call fcn.10009e1c
add esp, 0x20
add dword [0x100200d4], esi
jmp 0x100040aa
cmp dword [0x100200bc], 3
mov ecx, dword [0x100200cc]
movsx eax, byte [ecx]
jl case.0x1000403b.128
and eax, 7
cmp dword [0x10020140], 0
mov ecx, 0x10019a28
jne 0x100043eb
mov ecx, 0x100198cc
push eax
push ecx
push str._s__i_
lea edx, [ebp - 0x98]
push 0x20
push edx
call fcn.10009d77
mov esi, eax
lea eax, [ebp - 0x98]
push eax
jmp 0x10004391
mov eax, 2
cmp dword [0x100200c4], eax
jae 0x1000442d
mov dword [esi + 0x330], eax
mov dword [0x100200ec], 1
jmp case.0x1000403b.128
cmp dword [0x100200bc], 3
jl 0x10004084
mov ecx, dword [0x100200cc]
movsx eax, byte [ecx + 1]
mov edx, dword [0x100200d4]
sar eax, 3
and eax, 7
cmp dword [0x10020140], 0
mov ecx, 0x10019a34
lea esi, [esi + edx + 0x104]
jne 0x1000446a
mov ecx, 0x10019a38
push eax
push ecx
mov eax, 0x100
sub eax, dword [0x100200d4]
push str._s_i
push eax
push esi
call fcn.10009d77
add esp, 0x14
add dword [0x100200d4], eax
jmp 0x1000407e
push edi
call fcn.100022e0
mov esi, dword [0x100200c0]
add esp, 4
or dword [esi + 0x334], 1
jmp case.0x1000403b.128
mov ecx, dword [0x100200cc]
mov dl, byte [ecx + 1]
and dl, 0xc0
cmp dl, 0xc0
je case.0x1000403b.12
mov dword [0x100200dc], 5
push edi
call fcn.100022e0
add esp, 4
jmp 0x100040aa
call fcn.10002cb0
jmp 0x100040aa
call fcn.10002d20
jmp 0x100040aa
cmp dword [0x100200bc], 3
jl case.0x1000403b.128
cmp dword [0x100200f4], 2
mov eax, 1
mov dword [esi + 0x308], eax
mov dword [esi + 0x310], eax
mov eax, str.BXAL
je 0x1000451a
mov eax, str.EBXAL
push 0
push eax
push 3
mov ecx, 1
call fcn.100020d0
add esp, 0xc
jmp 0x100040aa
mov eax, dword [ebp - 0x1dc]
test byte [eax + 9], 2
je 0x10004561
mov ecx, dword [0x100200cc]
test byte [ecx], 2
je 0x10004561
push edi
mov edi, dword [0x100200f8]
mov esi, 1
call fcn.10002db0
add esp, 4
jmp 0x100040aa
mov esi, dword [0x100200f8]
push edi
xor edi, edi
call fcn.10002db0
add esp, 4
jmp 0x100040aa
call fcn.10002fd0
jmp 0x100040aa
cmp dword [0x100200bc], 1
jl case.0x1000403b.128
cmp dword [0x100200bc], 3
mov dword [esi + 0x320], 1
jl case.0x1000403b.128
mov eax, dword [0x100200d4]
mov edx, 0x100
sub edx, eax
push 0x10019ab4
push edx
lea eax, [esi + eax + 0x104]
push eax
call fcn.10009d77
add esp, 0xc
add dword [0x100200d4], eax
jmp 0x100040aa
push edi
xor edi, edi
lea esi, [edi + 1]
call fcn.10002db0
add esp, 4
jmp 0x100040aa
push edi
xor edi, edi
lea esi, [edi + 2]
call fcn.10002db0
mov esi, dword [0x100200c0]
add esp, 4
test byte [esi + 0x320], 3
je case.0x1000403b.128
or dword [esi + 0x334], 0x80
jmp case.0x1000403b.128
call fcn.100030f0
jmp 0x100040aa
mov ecx, dword [ebp - 0x1ec]
add ecx, 2
push ecx
mov ecx, 1
call fcn.100031c0
add esp, 4
jmp 0x100040aa
mov ecx, dword [0x100200f8]
mov edx, dword [ebp - 0x1ec]
lea eax, [ecx + edx + 1]
push eax
call fcn.100031c0
add esp, 4
jmp 0x100040aa
call fcn.100032e0
mov esi, dword [0x100200c0]
or dword [esi + 0x334], 1
jmp case.0x1000403b.128
mov eax, 2
cmp dword [0x100200c4], eax
jae 0x10004683
mov dword [esi + 0x330], eax
mov ecx, dword [0x100200cc]
movsx eax, byte [ecx + 1]
sar eax, 3
call fcn.100033b0
mov dword [0x100200ec], 1
jmp 0x100040aa
mov edx, dword [0x100200cc]
movsx eax, byte [edx]
sar eax, 3
call fcn.100033b0
mov esi, dword [0x100200c0]
mov eax, dword [esi + 0x304]
and al, 0xf0
cmp al, 0x20
jne case.0x1000403b.128
or dword [esi + 0x334], 2
jmp case.0x1000403b.128
mov ecx, dword [0x100200cc]
mov dl, byte [ecx + 1]
and dl, 0xc0
cmp dl, 0xc0
je 0x100046f2
mov dword [esi + 0x330], 5
mov eax, dword [0x100200cc]
movsx eax, byte [eax + 1]
call fcn.10003440
jmp 0x100040aa
mov ecx, dword [0x100200cc]
mov dl, byte [ecx + 1]
and dl, 0xc0
cmp dl, 0xc0
je 0x10004720
mov dword [esi + 0x330], 5
mov eax, dword [0x100200cc]
movsx eax, byte [eax + 1]
call fcn.100034c0
jmp 0x100040aa
cmp dword [0x100200bc], 1
jl case.0x1000403b.128
mov eax, dword [0x100200f8]
cmp eax, 1
jne 0x1000474e
xor eax, eax
jmp 0x10004764
cmp eax, 2
jne 0x1000475a
mov eax, 1
jmp 0x10004764
cmp eax, 4
jne case.0x1000403b.57
mov eax, 2
cmp dword [0x100200bc], 3
jl case.0x1000403b.128
lea ecx, [eax + eax*8]
mov edx, dword [ecx*4 + 0x1001f1a0]
push edx
lea eax, [ebp - 0x58]
push 9
push eax
call fcn.10009e1c
add esp, 0xc
cmp dword [0x10020140], 0
je 0x100040aa
lea ecx, [ebp - 0x58]
push 9
push ecx
call fcn.1000a35c
jmp 0x100040a7
mov dword [esi + 0x330], 6
jmp case.0x1000403b.128
cmp dword [0x100200bc], 3
jl case.0x1000403b.128
cmp dword [0x10020140], 0
mov eax, 0x10019a28
jne 0x100047d6
mov eax, 0x100198cc
push 0
push eax
push str._s__i_
lea edx, [ebp - 0x1d8]
push 0x20
push edx
call fcn.10009d77
add esp, 0x14
jmp 0x100040aa
cmp dword [0x100200bc], 3
jl case.0x1000403b.128
cmp dword [0x10020140], 0
mov eax, 0x10019a28
jne 0x10004814
mov eax, 0x100198cc
push 1
push eax
push str._s__i_
lea eax, [ebp - 0x1b8]
push 0x20
push eax
call fcn.10009d77
add esp, 0x14
jmp 0x100040aa
cmp dword [0x100200bc], 1
jl case.0x1000403b.128
mov eax, dword [ebp - 0x1f4]
cmp eax, 1
jne 0x1000484e
xor eax, eax
jmp 0x10004868
cmp eax, 2
jne 0x1000485a
mov eax, 1
jmp 0x10004868
cmp eax, 4
jne case.0x1000403b.57
mov eax, 2
cmp dword [0x100200bc], 3
jl case.0x1000403b.128
lea ecx, [eax + eax*8]
mov edx, dword [ecx*4 + 0x1001f1a4]
push edx
lea eax, [ebp - 0x40]
push 9
push eax
call fcn.10009e1c
add esp, 0xc
cmp dword [0x10020140], 0
je 0x100040aa
lea ecx, [ebp - 0x40]
push 9
push ecx
call fcn.1000a35c
jmp 0x100040a7
cmp dword [0x100200bc], 1
jl case.0x1000403b.128
cmp dword [0x100200bc], 3
jl case.0x1000403b.128
mov edx, dword [0x1001f204]
push edx
lea eax, [ebp - 0x4c]
push 9
push eax
call fcn.10009e1c
add esp, 0xc
cmp dword [0x10020140], 0
je 0x100040aa
lea ecx, [ebp - 0x4c]
push 9
push ecx
call fcn.1000a35c
jmp 0x100040a7
mov dword [0x100200e0], 1
cmp dword [esi + 0x330], 0
je 0x10004a15
cmp dword [0x100200bc], 3
jl 0x10004941
push 0x10019b2c
push 0x100
add esi, 0x104
push esi
call fcn.10009d77
mov edi, dword [0x100200d8]
mov esi, dword [0x100200c0]
add esp, 0xc
mov dword [0x100200d4], eax
cmp dword [esi + 0x330], 1
jne 0x100049b9
mov eax, dword [0x100200cc]
mov al, byte [eax]
cmp al, 0xf
je 0x10004960
movsx ecx, al
cmp ecx, 0xff
jne 0x100049b9
cmp dword [0x100200c4], 0
jbe 0x10004c00
cmp dword [0x100200bc], 3
jl 0x100049a8
movzx edx, al
push edx
mov eax, 0x100
push str._02X
sub eax, edi
push eax
lea ecx, [esi + edi + 4]
push ecx
call fcn.10009d77
mov edi, dword [0x100200d8]
mov esi, dword [0x100200c0]
add esp, 0x10
add edi, eax
mov dword [0x100200d8], edi
mov eax, 1
add dword [0x100200cc], eax
sub dword [0x100200c4], eax
cmp dword [0x100200c4], 0
jbe 0x10004c00
cmp dword [0x100200bc], 3
jl 0x100049ff
mov edx, dword [0x100200cc]
movzx eax, byte [edx]
push eax
mov ecx, 0x100
push str._02X
sub ecx, edi
push ecx
lea edx, [esi + edi + 4]
push edx
call fcn.10009d77
mov esi, dword [0x100200c0]
add esp, 0x10
add dword [0x100200d8], eax
mov eax, 1
add dword [0x100200cc], eax
sub dword [0x100200c4], eax
jmp 0x10004c00
cmp dword [0x100200bc], 3
jl 0x10004bb8
mov ecx, dword [0x100200cc]
movzx eax, byte [ecx]
push eax
inc ecx
mov eax, 0x100
push str._02X
sub eax, edi
mov dword [0x100200cc], ecx
push eax
lea ecx, [esi + edi + 4]
push ecx
call fcn.10009d77
mov ecx, dword [0x100200d8]
add ecx, eax
add esp, 0x10
cmp dword [0x100200ec], 0
mov dword [0x100200d8], ecx
je 0x10004aa0
mov eax, dword [0x100200cc]
movzx edx, byte [eax]
push edx
inc eax
mov dword [0x100200cc], eax
mov eax, dword [0x100200c0]
mov edx, 0x100
sub edx, ecx
push str._02X
push edx
lea ecx, [eax + ecx + 4]
push ecx
call fcn.10009d77
mov ecx, dword [0x100200d8]
add esp, 0x10
add ecx, eax
mov dword [0x100200d8], ecx
cmp dword [0x100200e8], 0
je 0x10004ae5
mov eax, dword [0x100200cc]
movzx edx, byte [eax]
push edx
inc eax
mov dword [0x100200cc], eax
mov eax, dword [0x100200c0]
mov edx, 0x100
sub edx, ecx
push str._02X
push edx
lea ecx, [eax + ecx + 4]
push ecx
call fcn.10009d77
mov ecx, dword [0x100200d8]
add esp, 0x10
add ecx, eax
mov dword [0x100200d8], ecx
mov eax, dword [0x100200e4]
mov esi, dword [0x100200c0]
test eax, eax
je 0x10004b4c
mov byte [esi + ecx + 4], 0x20
inc ecx
xor edi, edi
mov dword [0x100200d8], ecx
test eax, eax
jle 0x10004b4c
mov eax, dword [0x100200cc]
movzx edx, byte [eax]
push edx
inc eax
mov edx, 0x100
push str._02X
sub edx, ecx
mov dword [0x100200cc], eax
push edx
lea eax, [esi + ecx + 4]
push eax
call fcn.10009d77
mov ecx, dword [0x100200d8]
mov esi, dword [0x100200c0]
add ecx, eax
inc edi
add esp, 0x10
mov dword [0x100200d8], ecx
cmp edi, dword [0x100200e4]
jl 0x10004b06
mov eax, dword [0x100200e0]
test eax, eax
je 0x10004bdf
mov byte [esi + ecx + 4], 0x20
inc ecx
xor edi, edi
mov dword [0x100200d8], ecx
test eax, eax
jle 0x10004bdf
nop
mov eax, dword [0x100200cc]
movzx edx, byte [eax]
push edx
inc eax
mov edx, 0x100
push str._02X
sub edx, ecx
mov dword [0x100200cc], eax
push edx
lea eax, [esi + ecx + 4]
push eax
call fcn.10009d77
mov ecx, dword [0x100200d8]
mov esi, dword [0x100200c0]
add ecx, eax
inc edi
add esp, 0x10
mov dword [0x100200d8], ecx
cmp edi, dword [0x100200e0]
jl 0x10004b70
jmp 0x10004bdf
mov edx, dword [0x100200e0]
add edx, dword [0x100200e4]
mov eax, dword [0x100200cc]
add edx, dword [0x100200e8]
add edx, dword [0x100200ec]
lea ecx, [eax + edx + 1]
mov dword [0x100200cc], ecx
or edx, 0xffffffff
sub edx, dword [0x100200e0]
sub edx, dword [0x100200e4]
sub edx, dword [0x100200e8]
sub edx, dword [0x100200ec]
add dword [0x100200c4], edx
mov edx, dword [0x100200bc]
cmp edx, 1
jl 0x10004c65
mov eax, 0x10019868
mov ecx, 0xffff
mov edi, dword [eax + 4]
xor edi, dword [ebp - 0x1e0]
test ecx, edi
je 0x10004c2e
mov ecx, dword [eax + 0x14]
add eax, 0x14
test ecx, ecx
jne 0x10004c15
jmp 0x10004c65
mov al, byte [eax + 0xd]
cmp al, 7
jne 0x10004c3e
cmp dword [ebp - 0x1e8], 0
je 0x10004c65
cmp dword [0x100200fc], 0
je 0x10004c4b
cmp al, 1
je 0x10004c65
cmp al, 1
jne 0x10004c5b
or dword [esi + 0x334], 0x1000
jmp 0x10004c65
or dword [esi + 0x334], 0x3000
cmp dword [esi + 0x330], 0
jne 0x10004c7d
mov eax, dword [0x100200dc]
test eax, eax
je 0x10004c7d
mov dword [esi + 0x330], eax
cmp edx, 3
jl 0x10004dd1
mov eax, dword [esi + 0x330]
test eax, eax
je 0x10004ce3
dec eax
cmp eax, 5
ja case.default.0x10004c96
jmp dword [eax*4 + 0x1000510c]
push str.Command_crosses_end_of_memory_block
jmp 0x10004dbd
push str.Unknown_command
jmp 0x10004dbd
push str.Undefined_segment_register
jmp 0x10004dbd
push str.Illegal_use_of_register
jmp 0x10004dbd
push str.Memory_address_not_allowed
jmp 0x10004dbd
push str.Internal_HBCC_error
jmp 0x10004dbd
push str.Unknown_error
jmp 0x10004dbd
mov eax, dword [esi + 0x334]
test al, 4
je 0x10004d00
cmp dword [0x10020114], 0
jne 0x10004d00
push str.Privileged_command
jmp 0x10004dbd
test al, 8
je 0x10004d17
cmp dword [0x10020110], 0
jne 0x10004d17
push str.I_O_command
jmp 0x10004dbd
mov ecx, dword [0x1002011c]
test al, 1
je 0x10004d60
test ecx, ecx
jne 0x10004d60
mov eax, dword [esi + 0x304]
and eax, 0xf0
cmp eax, 0x50
jne 0x10004d3f
push str.Far_jump
jmp 0x10004dbd
cmp eax, 0x70
jne 0x10004d4e
push str.Far_call
jmp 0x10004dbd
cmp eax, 0x80
jne 0x10004dd1
push str.Far_return
jmp 0x10004dbd
test al, 2
je 0x10004d6f
test ecx, ecx
jne 0x10004d6f
push str.Modification_of_segment_register
jmp 0x10004dbd
test al, 0x10
je 0x10004d83
cmp dword [0x1002010c], 0
jne 0x10004d83
push str.Shift_constant_out_of_range_1..31
jmp 0x10004dbd
test al, 0x20
je 0x10004d97
cmp dword [0x10020108], 0
jne 0x10004d97
push str.Superfluous_prefix
jmp 0x10004dbd
test al, 0x40
je 0x10004dab
cmp dword [0x10020104], 0
jne 0x10004dab
push str.LOCK_prefix
jmp 0x10004dbd
test al, al
jns 0x10004dd1
cmp dword [0x10020100], 0
jne 0x10004dd1
push str.Unaligned_stack_operation
push 0x100
add esi, 0x204
push esi
call fcn.10009e1c
add esp, 0xc
mov ecx, dword [ebp - 4]
mov eax, dword [ebp + 8]
sub eax, dword [0x100200c4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10009d68
mov esp, ebp
pop ebp
ret