Function at 0x10005140
Capabilities:
Check for software breakpoints

Disassembly:
sub esp, 0x118
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0x120]
mov edx, dword [esp + 0x124]
push ebx
push ebp
push esi
push edi
mov dword [0x10017e7c], eax
mov eax, dword [esp + 0x138]
mov ebx, 4
xor edi, edi
mov dword [0x10017e9c], ebx
mov dword [0x10017e84], ebx
mov dword [0x10017ea8], 0xffffffff
mov dword [0x10017eac], edi
mov dword [0x10017e88], edi
mov dword [0x10017ea0], edi
mov dword [0x10017eb0], edi
mov dword [0x10017e80], edi
mov dword [0x10017eb4], edi
mov dword [0x10017ea4], ecx
mov dword [0x10017e90], edi
mov dword [0x10017e78], edi
mov dword [0x10017e98], eax
mov dword [eax], edx
mov eax, dword [0x10017e98]
mov ebp, dword [esp + 0x13c]
mov dword [esp + 0x1c], edi
mov byte [eax + 0x204], 0
mov ecx, dword [0x10017e98]
mov dword [esp + 0x14], edi
mov dword [esp + 0x20], edi
mov dword [ecx + 0x304], 0xf0
mov edx, dword [0x10017e98]
mov dword [edx + 0x30c], edi
mov eax, dword [0x10017e98]
mov dword [eax + 0x308], edi
mov ecx, dword [0x10017e98]
mov dword [ecx + 0x310], edi
mov edx, dword [0x10017e98]
mov dword [edx + 0x314], edi
mov eax, dword [0x10017e98]
mov dword [eax + 0x318], edi
mov ecx, dword [0x10017e98]
mov dword [ecx + 0x31c], edi
mov edx, dword [0x10017e98]
mov dword [edx + 0x320], edi
mov eax, dword [0x10017e98]
mov dword [eax + 0x324], edi
mov ecx, dword [0x10017e98]
mov dword [ecx + 0x328], edi
mov edx, dword [0x10017e98]
mov dword [edx + 0x32c], edi
mov eax, dword [0x10017e98]
mov dword [eax + 0x334], edi
mov ecx, dword [0x10017e98]
mov dword [ecx + 0x330], edi
mov eax, dword [0x10017ea4]
mov esi, dword [0x10017e7c]
cmp eax, edi
mov dword [0x10017e8c], ebp
jbe 0x10005628
xor ecx, ecx
mov cl, byte [esi]
add ecx, 0xffffffda
cmp ecx, 0xcd
ja case.0x100052b4.49
xor edx, edx
mov dl, byte [ecx + 0x1000687c]
jmp dword [edx*4 + 0x1000684c]
cmp dword [0x10017ea8], 0xffffffff
jne 0x1000544f
mov dword [0x10017ea8], 0
jmp 0x100053cc
cmp dword [0x10017ea8], 0xffffffff
jne 0x1000544f
mov dword [0x10017ea8], 1
jmp 0x100053cc
cmp dword [0x10017ea8], 0xffffffff
jne 0x1000544f
mov dword [0x10017ea8], 2
jmp 0x100053cc
cmp dword [0x10017ea8], 0xffffffff
jne 0x1000544f
mov dword [0x10017ea8], 3
jmp 0x100053cc
cmp dword [0x10017ea8], 0xffffffff
jne 0x1000544f
mov dword [0x10017ea8], ebx
jmp 0x100053cc
cmp dword [0x10017ea8], 0xffffffff
jne 0x1000544f
mov dword [0x10017ea8], 5
jmp 0x100053cc
cmp dword [0x10017e84], ebx
jne 0x1000544f
mov dword [0x10017e84], 2
jmp 0x100053cc
cmp dword [0x10017e9c], ebx
jne 0x1000544f
mov dword [0x10017e9c], 2
jmp 0x100053cc
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x1000544f
mov dword [esp + 0x1c], 0xf0
jmp 0x100053cc
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x1000544f
mov dword [esp + 0x14], 0xf2
jmp 0x100053cc
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x1000544f
mov dword [esp + 0x14], 0xf3
cmp ebp, 3
jl 0x10005402
mov ecx, dword [0x10017e80]
mov edx, dword [0x10017e98]
xor eax, eax
mov al, byte [esi]
push eax
lea eax, [edx + ecx + 4]
push str._02X:
push eax
call fcn.10008810
mov ecx, dword [0x10017e80]
add esp, 0xc
add ecx, eax
mov dword [0x10017e80], ecx
mov eax, dword [0x10017e98]
mov edx, dword [eax + 0x30c]
inc edx
mov dword [eax + 0x30c], edx
mov esi, dword [0x10017e7c]
mov eax, dword [esp + 0x134]
inc esi
inc eax
mov ebp, dword [0x10017e8c]
mov dword [esp + 0x134], eax
mov eax, dword [0x10017ea4]
dec eax
inc edi
test eax, eax
mov dword [0x10017e7c], esi
mov dword [0x10017ea4], eax
jbe case.0x100052b4.49
jmp 0x10005299
cmp ebp, 3
jl 0x1000557e
mov ecx, dword [0x10017e98]
mov byte [ecx + 7], 0
mov edx, dword [0x10017e98]
xor ecx, ecx
mov dword [edx + 0x30c], 1
mov eax, dword [0x10017e7c]
sub eax, edi
mov cl, byte [eax]
mov eax, ecx
add eax, 0xffffffda
cmp eax, 0xcd
ja case.0x10005491.49
xor edx, edx
mov dl, byte [eax + 0x1000697c]
jmp dword [edx*4 + 0x1000694c]
mov eax, dword [0x10015f0c]
jmp 0x100054ea
mov eax, dword [0x10015f10]
jmp 0x100054ea
mov eax, dword [0x10015f14]
jmp 0x100054ea
mov eax, dword [0x10015f18]
jmp 0x100054ea
mov eax, dword [0x10015f1c]
jmp 0x100054ea
mov eax, dword [0x10015f20]
jmp 0x100054ea
mov eax, str.DATASIZE
jmp 0x100054ea
mov eax, str.ADDRSIZE
jmp 0x100054ea
mov eax, 0x10016474
jmp 0x100054ea
mov eax, str.REPNE
jmp 0x100054ea
mov eax, str.REPE
jmp 0x100054ea
mov eax, 0x100169e0
mov ecx, dword [0x10017e98]
push eax
mov eax, dword [0x10017eb4]
push str.PREFIX__s:
lea edx, [ecx + eax + 0x104]
push edx
call fcn.10008810
mov ecx, dword [0x10017eb4]
add esp, 0xc
add ecx, eax
mov eax, dword [0x10018260]
test eax, eax
mov dword [0x10017eb4], ecx
je 0x10005535
mov eax, dword [0x10017e98]
add eax, 0x104
push eax
call fcn.100107aa
add esp, 4
mov eax, dword [0x10018230]
test eax, eax
jne 0x1000557e
mov ecx, dword [0x10017e98]
mov edx, dword [str.Superfluous_prefix]
add ecx, 0x204
mov dword [ecx], edx
mov eax, dword [0x100169c4]
mov dword [ecx + 4], eax
mov edx, dword [0x100169c8]
mov dword [ecx + 8], edx
mov eax, dword [0x100169cc]
mov dword [ecx + 0xc], eax
mov dx, word [0x100169d0]
mov word [ecx + 0x10], dx
mov al, byte [0x100169d2]
mov byte [ecx + 0x12], al
mov eax, dword [0x10017e98]
mov ecx, dword [eax + 0x334]
or ecx, 0x20
mov dword [eax + 0x334], ecx
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x100055a6
mov eax, dword [0x10017e98]
or dword [eax + 0x334], 0x40
mov ecx, dword [0x10017e98]
pop edi
pop esi
pop ebp
mov dword [ecx + 0x304], 8
mov eax, 1
pop ebx
add esp, 0x118
ret 0x14
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x10005628
cmp ebp, 3
jl 0x10005603
mov edx, dword [0x10017eb4]
mov eax, dword [0x10017e98]
push str.LOCK
lea ecx, [eax + edx + 0x104]
push ecx
call fcn.10008810
mov ecx, dword [0x10017eb4]
add esp, 8
add ecx, eax
mov dword [0x10017eb4], ecx
mov eax, dword [0x10017e98]
mov ecx, dword [eax + 0x334]
or ecx, 0x40
mov dword [eax + 0x334], ecx
mov esi, dword [0x10017e7c]
mov eax, dword [0x10017ea4]
mov ebp, dword [0x10017e8c]
xor edi, edi
test eax, eax
mov dword [esp + 0x18], edi
jbe 0x1000563c
mov dl, byte [esi]
mov byte [esp + 0x18], dl
mov edi, dword [esp + 0x18]
cmp eax, 1
jbe 0x1000564c
mov cl, byte [esi + 1]
mov byte [esp + 0x19], cl
mov edi, dword [esp + 0x18]
cmp eax, 2
jbe 0x1000565c
mov dl, byte [esi + 2]
mov byte [esp + 0x1a], dl
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x1000566d
shl edi, 8
or edi, eax
mov dword [esp + 0x18], edi
mov eax, dword [0x10018264]
test eax, eax
je 0x1000568b
mov eax, edi
and eax, 0xffff
cmp eax, 0x20cd
jne 0x1000568b
mov esi, 0x10013f28
jmp 0x100056d5
mov eax, dword [0x10011160]
mov esi, 0x10011160
test eax, eax
mov dword [esp + 0x10], esi
je 0x100056d9
mov ecx, dword [0x10018234]
mov edx, dword [esi + 4]
xor edx, edi
test eax, edx
jne 0x100056cb
cmp ebp, 3
jl 0x100056d5
test ecx, ecx
je 0x100056d5
mov al, byte [esi + 0xa]
cmp al, 0x26
je 0x100056cb
cmp al, 0x27
je 0x100056cb
mov al, byte [esi + 0xb]
cmp al, 0x26
je 0x100056cb
cmp al, 0x27
jne 0x100056d5
mov eax, dword [esi + 0x14]
add esi, 0x14
test eax, eax
jne 0x100056a3
mov dword [esp + 0x10], esi
mov al, byte [esi + 0xd]
mov ebp, 1
and al, 0xf0
cmp al, 0xe0
jne 0x1000572d
mov dword [esp + 0x20], ebp
call fcn.10008720
test eax, eax
jge 0x10005707
mov ecx, dword [0x10017e98]
mov edi, 2
mov dword [ecx + 0x330], edi
jmp 0x10005732
mov ecx, dword [esi]
test ecx, ecx
je 0x1000572d
mov edx, dword [esi + 4]
xor edx, edi
test ecx, edx
jne 0x1000571f
xor ecx, ecx
mov cl, byte [esi + 6]
cmp ecx, eax
je 0x10005729
mov ecx, dword [esi + 0x14]
add esi, 0x14
test ecx, ecx
jne 0x1000570d
mov dword [esp + 0x10], esi
mov edi, 2
mov eax, dword [esi]
mov edx, 8
test eax, eax
jne 0x10005781
mov edx, dword [0x10017e98]
mov dword [edx + 0x304], 0xf0
mov eax, dword [0x10017ea4]
cmp eax, edi
jae 0x1000576b
mov eax, dword [0x10017e98]
mov dword [eax + 0x330], edi
mov edi, 1
jmp 0x10006125
mov ecx, dword [0x10017e98]
mov edi, 1
mov dword [ecx + 0x330], ebp
jmp 0x10006125
mov ecx, dword [0x10017e98]
xor eax, eax
mov al, byte [esi + 0xd]
mov dword [ecx + 0x304], eax
mov eax, dword [0x10017e84]
mov dword [esp + 0x24], eax
mov eax, dword [0x10017ea8]
cmp eax, ebx
je 0x100057b1
cmp eax, 5
je 0x100057b1
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x100057bc
mov eax, dword [0x10017e98]
or dword [eax + 0x304], edx
mov al, byte [esi + 9]
cmp al, 0x80
jne 0x100057d2
mov eax, dword [0x10017e98]
mov ecx, dword [eax + 0x334]
or ecx, ebx
jmp 0x100057e3
cmp al, 0x81
jne 0x100057e9
mov eax, dword [0x10017e98]
mov ecx, dword [eax + 0x334]
or ecx, edx
mov dword [eax + 0x334], ecx
mov ecx, dword [0x10017e7c]
mov al, byte [ecx]
cmp al, 0x44
je 0x10005821
cmp al, 0x4c
je 0x10005821
mov ebx, 3
cmp dword [0x10017ea4], ebx
jb 0x10005853
cmp al, 0x81
je 0x1000580e
cmp al, 0x83
jne 0x10005853
mov al, byte [ecx + 1]
cmp al, 0xc4
je 0x10005819
cmp al, 0xec
jne 0x10005853
test byte [ecx + 2], 3
je 0x10005853
jmp 0x10005826
mov ebx, 3
mov eax, dword [0x10017e98]
mov ecx, dword [eax + 0x334]
or cl, 0x80
mov dword [eax + 0x334], ecx
mov eax, dword [0x10017e98]
mov ecx, dword [eax + 0x304]
or ecx, edx
mov dword [eax + 0x304], ecx
mov ecx, dword [0x10017e7c]
cmp byte [ecx], 0x8e
jne 0x10005871
mov eax, dword [0x10017e98]
mov ecx, dword [eax + 0x334]
or ecx, edi
mov dword [eax + 0x334], ecx
mov ecx, dword [0x10017e7c]
cmp byte [esi + 8], 2
jne 0x100058f3
mov eax, dword [0x10017ea4]
test eax, eax
jne 0x10005894
mov ecx, dword [0x10017e98]
mov dword [ecx + 0x330], edi
mov ecx, dword [0x10017e7c]
jmp 0x100058f3
cmp dword [0x10017e8c], ebx
jl 0x100058d2
mov eax, dword [0x10017e80]
xor edx, edx
mov dl, byte [ecx]
mov ecx, dword [0x10017e98]
push edx
push str._02X
lea edx, [ecx + eax + 4]
push edx
call fcn.10008810
mov ecx, dword [0x10017e80]
add esp, 0xc
add ecx, eax
mov dword [0x10017e80], ecx
mov ecx, dword [0x10017e7c]
mov edx, dword [esp + 0x134]
mov eax, dword [0x10017ea4]
inc ecx
inc edx
dec eax
mov dword [0x10017e7c], ecx
mov dword [esp + 0x134], edx
mov dword [0x10017ea4], eax
mov eax, dword [0x10017ea4]
test eax, eax
jne 0x1000590d
mov eax, dword [0x10017e98]
mov dword [eax + 0x330], edi
mov ecx, dword [0x10017e7c]
mov al, byte [esi + 9]
test al, 1
je 0x10005921
test byte [ecx], 1
jne 0x10005921
mov dword [0x10017e84], ebp
jmp 0x1000593c
test al, 8
je 0x10005932
test byte [ecx], 8
jne 0x10005932
mov dword [0x10017e84], ebp
jmp 0x1000593c
test al, 0x20
je 0x1000593c
mov dword [0x10017e84], edi
cmp dword [0x10017e8c], ebx
jl 0x10005b28
mov edi, dword [esi + 0x10]
mov al, byte [edi]
cmp al, 0x26
jne 0x10005959
mov esi, dword [0x10017e84]
jmp 0x10005967
cmp al, 0x24
jne 0x10005a90
mov esi, dword [0x10017e9c]
test esi, esi
je 0x10005a90
mov dl, byte [edi + 1]
lea eax, [edi + 1]
xor ecx, ecx
test dl, dl
je 0x100059c0
mov edi, dword [0x10018244]
mov edx, eax
mov bl, 0x57
mov al, byte [edx]
cmp al, 0x3a
jne 0x10005994
cmp esi, 4
jne 0x100059c0
xor ecx, ecx
jmp 0x100059b8
cmp al, 0x2a
jne 0x100059b3
cmp esi, 4
jne 0x100059a9
cmp edi, 2
je 0x100059b8
mov byte [esp + ecx + 0x28], 0x44
jmp 0x100059b7
test edi, edi
je 0x100059b8
mov byte [esp + ecx + 0x28], bl
jmp 0x100059b7
mov byte [esp + ecx + 0x28], al
inc ecx
mov al, byte [edx + 1]
inc edx
test al, al
jne 0x10005985
mov byte [esp + ecx + 0x28], 0
mov al, byte [esp + 0x28]
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x10005ad7
mov ecx, dword [0x10018228]
test ecx, ecx
je 0x10005ad7
mov edx, dword [0x10017eb4]
xor ecx, ecx
test al, al
je 0x10005a16
cmp al, 0x20
je 0x10005a16
mov esi, dword [0x10017e98]
mov byte [esi + edx + 0x104], al
mov edx, dword [0x10017eb4]
mov al, byte [esp + ecx + 0x29]
inc edx
inc ecx
mov dword [0x10017eb4], edx
test al, al
jne 0x100059ef
cmp byte [esp + ecx + 0x28], 0x20
jne 0x10005a38
mov eax, dword [0x10017e98]
mov byte [eax + edx + 0x104], 0x20
mov edx, dword [0x10017eb4]
inc edx
inc ecx
mov dword [0x10017eb4], edx
cmp edx, 8
jge 0x10005a5c
mov eax, dword [0x10017e98]
mov byte [eax + edx + 0x104], 0x20
mov edx, dword [0x10017eb4]
inc edx
cmp edx, 8
mov dword [0x10017eb4], edx
jl 0x10005a3d
mov al, byte [esp + ecx + 0x28]
lea ecx, [esp + ecx + 0x28]
test al, al
je 0x10005b0a
mov esi, dword [0x10017e98]
mov byte [esi + edx + 0x104], al
mov edx, dword [0x10017eb4]
mov al, byte [ecx + 1]
inc edx
inc ecx
mov dword [0x10017eb4], edx
test al, al
jne 0x10005a6c
jmp 0x10005b0a
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x28]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, ebx
rep movsb byte es:[edi], byte [esi]
mov al, byte [esp + 0x28]
xor ecx, ecx
test al, al
je 0x100059c9
mov dl, al
cmp dl, 0x2c
je 0x100059c0
mov dl, byte [esp + ecx + 0x29]
inc ecx
test dl, dl
jne 0x10005ac0
jmp 0x100059c9
mov edx, dword [0x10017eb4]
mov eax, dword [0x10017e98]
lea ecx, [esp + 0x28]
push ecx
lea ecx, [eax + edx + 0x104]
push 0x100169ac
push ecx
call fcn.10008810
mov ecx, dword [0x10017eb4]
add esp, 0xc
add ecx, eax
mov dword [0x10017eb4], ecx
mov eax, dword [0x10018260]
test eax, eax
je 0x10005b28
mov edx, dword [0x10017e98]
add edx, 0x104
push edx
call fcn.100107aa
add esp, 4
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x134]
mov ebx, dword [esp + 0x24]
xor edx, edx
mov dword [esp + 0x14], edx
mov esi, 2
mov edi, 1
jmp 0x10005b51
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov eax, dword [0x10017e98]
cmp dword [eax + 0x330], 0
jne 0x10006095
test edx, edx
jne 0x10005b7f
mov al, byte [ecx + 0xb]
test al, al
je 0x10005b7f
cmp al, 0x80
jae 0x10005b7f
xor eax, eax
mov dword [0x10017e94], edx
mov al, byte [ecx + 0xa]
jmp 0x10005ba0
test edx, edx
mov dword [0x10017e94], edi
jne 0x10005b90
xor eax, eax
mov al, byte [ecx + 0xa]
jmp 0x10005ba0
cmp edx, edi
jne 0x10005b9b
xor eax, eax
mov al, byte [ecx + 0xb]
jmp 0x10005ba0
xor eax, eax
mov al, byte [ecx + 0xc]
test eax, eax
je 0x10006095
cmp dword [0x10017e8c], 3
jl 0x10005c50
cmp eax, 0x80
jge 0x10005c50
mov ecx, dword [0x10017e98]
test edx, edx
mov edx, dword [0x10017eb4]
jne 0x10005c16
mov byte [ecx + edx + 0x104], 0x20
mov ecx, dword [0x10017eb4]
mov edx, dword [0x10018228]
inc ecx
test edx, edx
mov dword [0x10017eb4], ecx
je 0x10005c50
cmp ecx, 8
jge 0x10005c50
mov edx, dword [0x10017e98]
mov byte [edx + ecx + 0x104], 0x20
mov ecx, dword [0x10017eb4]
inc ecx
cmp ecx, 8
mov dword [0x10017eb4], ecx
jl 0x10005bf4
jmp 0x10005c50
mov byte [ecx + edx + 0x104], 0x2c
mov edx, dword [0x10017eb4]
mov ecx, dword [0x10018250]
inc edx
test ecx, ecx
mov dword [0x10017eb4], edx
je 0x10005c50
mov ecx, dword [0x10017e98]
mov byte [ecx + edx + 0x104], 0x20
mov ecx, dword [0x10017eb4]
inc ecx
mov dword [0x10017eb4], ecx
lea ecx, [eax - 1]
cmp ecx, 0x87
ja case.0x10005c67.39
xor edx, edx
mov dl, byte [ecx + 0x10006ae8]
jmp dword [edx*4 + 0x10006a4c]
cmp dword [0x10017ea4], esi
jae 0x10005c8c
mov eax, dword [0x10017e98]
mov dword [eax + 0x330], esi
mov dword [0x10017e88], edi
jmp case.0x10005c67.32
mov ecx, dword [0x10017e84]
push edi
push ecx
jmp 0x10005cd8
mov eax, dword [0x10017e7c]
mov ecx, dword [0x10017e84]
xor edx, edx
push esi
mov dl, byte [eax]
push ecx
push edx
call fcn.10006b90
add esp, 0xc
jmp case.0x10005c67.32
cmp dword [0x10017ea4], esi
jae 0x10005cd4
mov ecx, dword [0x10017e98]
mov dword [ecx + 0x330], esi
mov dword [0x10017e88], edi
jmp case.0x10005c67.32
push 3
push 4
mov eax, dword [0x10017e7c]
xor edx, edx
mov dl, byte [eax + 1]
shr edx, 3
push edx
call fcn.10006b90
add esp, 0xc
mov dword [0x10017e88], edi
jmp case.0x10005c67.32
mov ecx, dword [0x10017e84]
push 4
push ecx
push 0
call fcn.10006b90
add esp, 0xc
jmp case.0x10005c67.32
push 5
push esi
push 0
call fcn.10006b90
add esp, 0xc
jmp case.0x10005c67.32
push 6
push esi
push esi
call fcn.10006b90
add esp, 0xc
jmp case.0x10005c67.32
push 7
push edi
push edi
call fcn.10006b90
add esp, 0xc
jmp case.0x10005c67.32
push 0
push 0
call fcn.10006c80
add esp, 8
jmp case.0x10005c67.32
mov eax, dword [0x10017e7c]
xor edx, edx
push 0
mov dl, byte [eax]
push edx
call fcn.10006c80
add esp, 8
jmp case.0x10005c67.32
cmp dword [0x10017ea4], esi
jae 0x10005d8e
mov ecx, dword [0x10017e98]
mov dword [ecx + 0x330], esi
mov dword [0x10017e88], edi
jmp case.0x10005c67.32
mov eax, dword [0x10017e7c]
xor edx, edx
mov dl, byte [eax + 1]
shr edx, 3
push edx
call fcn.10006d10
add esp, 4
mov dword [0x10017e88], edi
jmp case.0x10005c67.32
cmp dword [0x10017ea4], esi
jae 0x10005dce
mov ecx, dword [0x10017e98]
mov dword [ecx + 0x330], esi
mov dword [0x10017e88], edi
jmp case.0x10005c67.32
mov eax, dword [0x10017e7c]
xor edx, edx
mov dl, byte [eax + 1]
shr edx, 3
push edx
call fcn.10006d70
add esp, 4
mov dword [0x10017e88], edi
jmp case.0x10005c67.32
push eax
call fcn.10006dd0
add esp, 4
jmp case.0x10005c67.33
mov ecx, dword [0x10017e7c]
mov dl, byte [ecx + 1]
and dl, 0xc0
cmp dl, 0xc0
je case.0x10005c67.12
mov dword [0x10017e78], 5
push eax
call fcn.10006dd0
add esp, 4
jmp case.0x10005c67.32
call fcn.10007bf0
jmp case.0x10005c67.32
call fcn.10007c80
jmp case.0x10005c67.32
call fcn.10007d30
jmp case.0x10005c67.32
mov ecx, dword [esp + 0x10]
test byte [ecx + 9], 2
je 0x10005e6e
mov edx, dword [0x10017e7c]
test byte [edx], 2
je 0x10005e6e
push eax
mov eax, dword [0x10017e84]
push eax
push edi
call fcn.10007d80
add esp, 0xc
jmp case.0x10005c67.32
mov ecx, dword [0x10017e84]
push eax
push 0
push ecx
call fcn.10007d80
add esp, 0xc
jmp case.0x10005c67.32
call fcn.10008010
jmp case.0x10005c67.32
mov edx, dword [0x10017e84]
push eax
push edx
push edi
call fcn.10007d80
add esp, 0xc
jmp case.0x10005c67.32
call fcn.10008150
jmp case.0x10005c67.32
push eax
push 0
push edi
call fcn.10007d80
add esp, 0xc
jmp case.0x10005c67.32
push eax
push 0
push esi
call fcn.10007d80
mov eax, dword [0x10017e98]
add esp, 0xc
test byte [eax + 0x320], 3
je case.0x10005c67.32
mov ecx, dword [eax + 0x334]
or cl, 0x80
mov dword [eax + 0x334], ecx
jmp case.0x10005c67.32
call fcn.100081b0
jmp case.0x10005c67.32
lea ecx, [ebp + 2]
push ecx
push edi
call fcn.100082c0
add esp, 8
jmp case.0x10005c67.32
mov eax, dword [0x10017e84]
lea edx, [eax + ebp + 1]
push edx
push eax
call fcn.100082c0
add esp, 8
jmp case.0x10005c67.32
call fcn.100084a0
mov eax, dword [0x10017e98]
or dword [eax + 0x334], edi
jmp case.0x10005c67.32
cmp dword [0x10017ea4], esi
jae 0x10005f4e
mov eax, dword [0x10017e98]
mov dword [eax + 0x330], esi
mov edx, dword [0x10017e7c]
xor ecx, ecx
mov cl, byte [edx + 1]
shr ecx, 3
push ecx
call fcn.10008590
add esp, 4
mov dword [0x10017e88], edi
jmp case.0x10005c67.32
mov ecx, dword [0x10017e7c]
xor eax, eax
mov al, byte [ecx]
shr eax, 3
push eax
call fcn.10008590
mov edx, dword [0x10017e98]
add esp, 4
mov eax, dword [edx + 0x304]
and eax, 0xf0
cmp al, 0x20
jne case.0x10005c67.32
mov eax, edx
or dword [eax + 0x334], esi
jmp case.0x10005c67.32
mov ecx, dword [0x10017e7c]
mov dl, byte [ecx + 1]
and dl, 0xc0
cmp dl, 0xc0
je 0x10005fcc
mov eax, dword [0x10017e98]
mov dword [eax + 0x330], 5
mov edx, dword [0x10017e7c]
xor ecx, ecx
mov cl, byte [edx + 1]
push ecx
call fcn.10008620
add esp, 4
jmp case.0x10005c67.32
mov eax, dword [0x10017e7c]
mov cl, byte [eax + 1]
and cl, 0xc0
cmp cl, 0xc0
je 0x10006005
mov edx, dword [0x10017e98]
mov dword [edx + 0x330], 5
mov ecx, dword [0x10017e7c]
xor eax, eax
mov al, byte [ecx + 1]
push eax
call fcn.100086a0
add esp, 4
jmp case.0x10005c67.32
mov edx, dword [0x10017e84]
push 0x82
push edx
push 0
call fcn.10006b90
add esp, 0xc
jmp case.0x10005c67.32
push edi
push 0
call fcn.10006c80
add esp, 8
jmp case.0x10005c67.32
push edi
push edi
call fcn.10006c80
add esp, 8
jmp case.0x10005c67.32
push 0x87
push ebx
push edi
call fcn.10006b90
add esp, 0xc
jmp case.0x10005c67.32
push 0x88
push 4
push 7
call fcn.10006b90
add esp, 0xc
jmp case.0x10005c67.32
mov eax, dword [0x10017e98]
mov dword [eax + 0x330], 6
mov eax, dword [esp + 0x14]
inc eax
cmp eax, 3
mov dword [esp + 0x14], eax
jl 0x10005b49
mov ecx, dword [esp + 0x10]
mov eax, dword [0x10017e90]
mov edx, dword [0x10017e98]
test eax, eax
je 0x100060c1
mov esi, dword [edx + 0x32c]
test esi, esi
jle 0x100060c1
sub eax, dword [esp + 0x12c]
mov dword [edx + 0x328], eax
mov edx, dword [0x10017e98]
mov eax, dword [edx + 0x308]
test eax, eax
jne 0x1000610e
cmp dword [0x10017ea8], 0xffffffff
jne 0x100060e5
cmp dword [0x10017e9c], 4
je 0x1000612b
mov ecx, dword [ecx + 0x10]
cmp byte [ecx], 0x24
je 0x1000610e
mov esi, dword [edx + 0x334]
or esi, 0x20
mov dword [edx + 0x334], esi
mov eax, dword [0x10017e98]
mov ecx, dword [eax + 0x304]
or ecx, 8
mov dword [eax + 0x304], ecx
mov edx, dword [0x10017e98]
cmp dword [0x10017e9c], 4
je 0x1000612b
mov eax, dword [edx + 0x304]
or al, 8
mov dword [edx + 0x304], eax
mov edx, dword [0x10017e98]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x10006150
mov eax, dword [0x10017ea0]
test eax, eax
je 0x1000614a
mov dword [edx + 0x330], edi
mov edx, dword [0x10017e98]
jmp 0x10006150
mov dword [0x10017ea0], edi
mov eax, dword [edx + 0x330]
test eax, eax
mov eax, dword [0x10017e8c]
je 0x1000627a
cmp eax, 3
jl 0x1000618d
mov edx, dword [0x10017e98]
push 0x100169a8
add edx, 0x104
push edx
call fcn.10008810
mov edx, dword [0x10017e98]
add esp, 8
mov dword [0x10017eb4], eax
cmp dword [edx + 0x330], edi
jne 0x1000620b
mov eax, dword [0x10017e7c]
mov al, byte [eax]
cmp al, 0xf
je 0x100061a4
cmp al, 0xff
jne 0x1000620b
mov ecx, dword [0x10017ea4]
test ecx, ecx
jbe 0x10006498
cmp dword [0x10017e8c], 3
jl 0x100061f3
mov ecx, dword [0x10017e98]
mov edx, dword [0x10017e80]
and eax, 0xff
push eax
lea eax, [ecx + edx + 4]
push str._02X
push eax
call fcn.10008810
mov ecx, dword [0x10017e80]
mov edx, dword [0x10017e98]
add esp, 0xc
add ecx, eax
mov dword [0x10017e80], ecx
mov ecx, dword [0x10017e7c]
mov eax, dword [0x10017ea4]
inc ecx
dec eax
mov dword [0x10017e7c], ecx
mov dword [0x10017ea4], eax
mov eax, dword [0x10017ea4]
test eax, eax
jbe 0x10006498
cmp dword [0x10017e8c], 3
jl 0x1000625d
mov edx, dword [0x10017e7c]
mov eax, dword [0x10017e98]
xor ecx, ecx
mov cl, byte [edx]
push ecx
mov ecx, dword [0x10017e80]
push str._02X
lea edx, [eax + ecx + 4]
push edx
call fcn.10008810
mov ecx, dword [0x10017e80]
mov edx, dword [0x10017e98]
add esp, 0xc
add ecx, eax
mov dword [0x10017e80], ecx
mov ecx, dword [0x10017e7c]
mov eax, dword [0x10017ea4]
inc ecx
dec eax
mov dword [0x10017e7c], ecx
mov dword [0x10017ea4], eax
jmp 0x10006498
cmp eax, 3
jl 0x1000643b
mov ecx, dword [0x10017e7c]
xor eax, eax
mov al, byte [ecx]
inc ecx
mov dword [0x10017e7c], ecx
mov ecx, dword [0x10017e80]
push eax
mov eax, dword [0x10017e98]
push str._02X
lea edx, [eax + ecx + 4]
push edx
call fcn.10008810
mov ecx, dword [0x10017e80]
add esp, 0xc
add ecx, eax
mov eax, dword [0x10017e88]
test eax, eax
mov dword [0x10017e80], ecx
je 0x10006304
mov eax, dword [0x10017e7c]
xor ecx, ecx
mov cl, byte [eax]
inc eax
mov dword [0x10017e7c], eax
mov eax, dword [0x10017e98]
push ecx
mov ecx, dword [0x10017e80]
push str._02X
lea edx, [eax + ecx + 4]
push edx
call fcn.10008810
mov ecx, dword [0x10017e80]
add esp, 0xc
add ecx, eax
mov dword [0x10017e80], ecx
mov eax, dword [0x10017eac]
test eax, eax
je 0x10006348
mov eax, dword [0x10017e7c]
xor ecx, ecx
mov cl, byte [eax]
inc eax
mov dword [0x10017e7c], eax
mov eax, dword [0x10017e98]
push ecx
mov ecx, dword [0x10017e80]
push str._02X
lea edx, [eax + ecx + 4]
push edx
call fcn.10008810
mov ecx, dword [0x10017e80]
add esp, 0xc
add ecx, eax
mov dword [0x10017e80], ecx
mov eax, dword [0x10017eb0]
test eax, eax
je 0x100063be
mov eax, dword [0x10017e98]
mov ecx, dword [0x10017e80]
xor esi, esi
mov byte [eax + ecx + 4], 0x20
mov ecx, dword [0x10017e80]
mov eax, dword [0x10017eb0]
inc ecx
test eax, eax
mov dword [0x10017e80], ecx
jle 0x100063be
mov eax, dword [0x10017e7c]
mov edx, dword [0x10017e98]
xor ecx, ecx
mov cl, byte [eax]
inc eax
mov dword [0x10017e7c], eax
mov eax, dword [0x10017e80]
push ecx
push str._02X
lea ecx, [edx + eax + 4]
push ecx
call fcn.10008810
mov edx, dword [0x10017e80]
add esp, 0xc
add edx, eax
mov eax, dword [0x10017eb0]
inc esi
mov dword [0x10017e80], edx
cmp esi, eax
jl 0x10006379
mov eax, dword [0x10017ea0]
test eax, eax
je 0x10006469
mov edx, dword [0x10017e98]
mov eax, dword [0x10017e80]
xor esi, esi
mov byte [edx + eax + 4], 0x20
mov edx, dword [0x10017e80]
mov eax, dword [0x10017ea0]
inc edx
test eax, eax
mov dword [0x10017e80], edx
jle 0x10006469
mov eax, dword [0x10017e7c]
mov edx, dword [0x10017e80]
xor ecx, ecx
mov cl, byte [eax]
inc eax
push ecx
mov ecx, dword [0x10017e98]
mov dword [0x10017e7c], eax
push str._02X
lea eax, [ecx + edx + 4]
push eax
call fcn.10008810
mov ebx, dword [0x10017e80]
add esp, 0xc
add ebx, eax
mov eax, dword [0x10017ea0]
inc esi
mov dword [0x10017e80], ebx
cmp esi, eax
jl 0x100063f3
jmp 0x10006469
mov eax, dword [0x10017ea0]
mov ecx, dword [0x10017eb0]
mov esi, dword [0x10017eac]
lea edx, [eax + ecx]
mov ecx, dword [0x10017e88]
add edx, esi
add edx, ecx
mov ecx, dword [0x10017e7c]
lea edx, [ecx + edx + 1]
mov dword [0x10017e7c], edx
mov ebx, dword [0x10017eb0]
mov esi, dword [0x10017eac]
mov edx, dword [0x10017e88]
or ecx, 0xffffffff
sub ecx, eax
mov eax, dword [0x10017ea4]
sub ecx, ebx
sub ecx, esi
sub ecx, edx
mov edx, dword [0x10017e98]
add eax, ecx
mov dword [0x10017ea4], eax
cmp dword [0x10017e8c], edi
jl 0x10006503
mov ecx, dword [0x10013f40]
mov eax, 0x10013f40
test ecx, ecx
je 0x10006503
mov esi, dword [eax + 4]
mov ebx, dword [esp + 0x18]
xor esi, ebx
test ecx, esi
je 0x100064c8
mov ecx, dword [eax + 0x14]
add eax, 0x14
test ecx, ecx
jne 0x100064af
jmp 0x10006503
mov al, byte [eax + 0xd]
cmp al, 7
jne 0x100064d7
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x10006503
mov ecx, dword [0x1001826c]
test ecx, ecx
je 0x100064e5
cmp al, 1
je 0x10006503
cmp al, 1
mov eax, dword [edx + 0x334]
jne 0x100064f4
or ah, 0x10
jmp 0x100064f7
or ah, 0x30
mov dword [edx + 0x334], eax
mov edx, dword [0x10017e98]
mov eax, dword [edx + 0x330]
test eax, eax
jne 0x10006522
mov eax, dword [0x10017e78]
test eax, eax
je 0x10006522
mov dword [edx + 0x330], eax
mov edx, dword [0x10017e98]
cmp dword [0x10017e8c], 3
jl 0x10006830
mov eax, dword [edx + 0x330]
test eax, eax
je 0x10006624
dec eax
cmp eax, 5
ja case.default.0x10006547
jmp dword [eax*4 + 0x10006b70]
lea edi, [edx + 0x204]
mov ecx, 9
mov esi, str.Command_crosses_end_of_memory_block
rep movsd dword es:[edi], dword [esi]
jmp 0x10006830
mov eax, dword [str.Unknown_command]
add edx, 0x204
mov dword [edx], eax
mov ecx, dword [0x10016978]
mov dword [edx + 4], ecx
mov eax, dword [0x1001697c]
mov dword [edx + 8], eax
mov ecx, dword [0x10016980]
mov dword [edx + 0xc], ecx
jmp 0x10006830
lea edi, [edx + 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 0x10006830
lea edi, [edx + 0x204]
mov ecx, 6
mov esi, str.Illegal_use_of_register
rep movsd dword es:[edi], dword [esi]
jmp 0x10006830
lea edi, [edx + 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 0x10006830
lea edi, [edx + 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 0x10006830
mov eax, dword [str.Unknown_error]
add edx, 0x204
mov dword [edx], eax
mov ecx, dword [0x10016918]
mov dword [edx + 4], ecx
mov eax, dword [0x1001691c]
mov dword [edx + 8], eax
mov cx, word [0x10016920]
mov word [edx + 0xc], cx
jmp 0x10006830
mov eax, dword [edx + 0x334]
test al, 4
je 0x10006677
mov ecx, dword [0x10018270]
test ecx, ecx
jne 0x10006677
mov eax, dword [str.Privileged_command]
add edx, 0x204
mov dword [edx], eax
mov ecx, dword [0x10016904]
mov dword [edx + 4], ecx
mov eax, dword [0x10016908]
mov dword [edx + 8], eax
mov ecx, dword [0x1001690c]
mov dword [edx + 0xc], ecx
mov ax, word [0x10016910]
mov word [edx + 0x10], ax
mov cl, byte [0x10016912]
mov byte [edx + 0x12], cl
jmp 0x10006830
test al, 8
je 0x100066a8
mov ecx, dword [0x10018240]
test ecx, ecx
jne 0x100066a8
mov eax, dword [str.I_O_command]
add edx, 0x204
mov dword [edx], eax
mov ecx, dword [0x100168f8]
mov dword [edx + 4], ecx
mov eax, dword [0x100168fc]
mov dword [edx + 8], eax
jmp 0x10006830
mov ecx, dword [0x1001822c]
test al, 1
je 0x10006753
test ecx, ecx
jne 0x10006753
mov eax, dword [edx + 0x304]
and eax, 0xf0
cmp eax, 0x50
jne 0x100066f2
mov ecx, dword [str.Far_jump]
add edx, 0x204
mov dword [edx], ecx
mov eax, dword [0x100168ec]
mov dword [edx + 4], eax
mov cl, byte [0x100168f0]
mov byte [edx + 8], cl
jmp 0x10006830
cmp eax, 0x70
jne 0x1000671a
mov eax, dword [str.Far_call]
add edx, 0x204
mov dword [edx], eax
mov ecx, dword [0x100168e0]
mov dword [edx + 4], ecx
mov al, byte [0x100168e4]
mov byte [edx + 8], al
jmp 0x10006830
cmp eax, 0x80
jne 0x10006830
mov ecx, dword [str.Far_return]
add edx, 0x204
mov dword [edx], ecx
mov eax, dword [0x100168d4]
mov dword [edx + 4], eax
mov cx, word [0x100168d8]
mov word [edx + 8], cx
mov al, byte [0x100168da]
mov byte [edx + 0xa], al
jmp 0x10006830
test al, 2
je 0x10006773
test ecx, ecx
jne 0x10006773
lea edi, [edx + 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 0x10006830
test al, 0x10
je 0x10006796
mov ecx, dword [0x10018248]
test ecx, ecx
jne 0x10006796
lea edi, [edx + 0x204]
mov ecx, 8
mov esi, str.Shift_constant_out_of_range_1..31
jmp 0x1000682c
test al, 0x20
je 0x100067e0
mov ecx, dword [0x10018230]
test ecx, ecx
jne 0x100067e0
mov ecx, dword [str.Superfluous_prefix]
add edx, 0x204
mov dword [edx], ecx
mov eax, dword [0x100169c4]
mov dword [edx + 4], eax
mov ecx, dword [0x100169c8]
mov dword [edx + 8], ecx
mov eax, dword [0x100169cc]
mov dword [edx + 0xc], eax
mov cx, word [0x100169d0]
mov word [edx + 0x10], cx
mov al, byte [0x100169d2]
mov byte [edx + 0x12], al
jmp 0x10006830
test al, 0x40
je 0x1000680f
mov ecx, dword [0x10018254]
test ecx, ecx
jne 0x1000680f
mov ecx, dword [str.LOCK_prefix]
add edx, 0x204
mov dword [edx], ecx
mov eax, dword [0x10016880]
mov dword [edx + 4], eax
mov ecx, dword [0x10016884]
mov dword [edx + 8], ecx
jmp 0x10006830
test al, 0x80
je 0x10006830
mov eax, dword [0x1001825c]
test eax, eax
jne 0x10006830
lea edi, [edx + 0x204]
mov ecx, 6
mov esi, str.Unaligned_stack_operation
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov eax, dword [esp + 0x130]
mov ecx, dword [0x10017ea4]
pop edi
pop esi
pop ebp
sub eax, ecx
pop ebx
add esp, 0x118
ret 0x14