Function at 0x100651c4
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov eax, dword [ebp + 0xc]
push ebx
push esi
lea ecx, [eax + 0x1683]
mov esi, eax
push edi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x20], ecx
cmp eax, ecx
ja 0x10064e41
mov ebx, dword [ebp + 0x18]
mov edi, dword [ebp + 0xc]
jmp 0x10064df0
mov ecx, dword [ebp + 0x14]
mov edx, 1
cmp esi, 0x493f
ja 0x1006513e
je 0x10065124
cmp esi, 0x480d
ja 0x10064f27
je 0x10064f15
cmp esi, 0xb83
ja 0x10064ead
je 0x10064e7e
mov eax, esi
sub eax, 0xad0
je 0x10064e54
sub eax, 0x33
je 0x10064e4b
sub eax, 0x33
jne case.0x10065168.18803
mov eax, dword [ebp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov byte [ebp + 0xc], 0
jmp case.0x10065168.18803
mov ecx, dword [0x1007c3f4]
test ecx, ecx
je case.0x10065168.18803
mov eax, 0x48db
cmp eax, eax
je 0x10065288
add eax, 0x50
cmp eax, 0x48db
jbe 0x10064e69
jmp case.0x10065168.18803
imul ebp
cld
push ds
xor eax, 0xc8838b
add byte [eax], al
mov edx, dword [ebx + 0x70]
push 0xc06
lea ecx, [ebp - 0x18]
push ecx
mov dword [ebp - 0x18], eax
mov eax, dword [ebx + 0xbc]
push edx
push eax
call fcn.1000d620
add esp, 0x10
jmp case.0x10065168.18803
cmp esi, 0xbb6
je 0x10064eef
cmp esi, 0x47da
jne case.0x10065168.18803
xlatb
lea esi, [esi + 0x63]
xchg byte [ebx + 0x418b144d], cl
or byte [eax + 0x78], ch
jle 0x10064ed0
add byte [edx], ch
lea edx, [ebp - 0x18]
push edx
push 0
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x18], eax
call fcn.100033e0
add esp, 0x10
mov dword [ebp - 0x10], eax
jmp case.0x10065168.18803
mov ecx, dword [ebx + 0x70]
push 0xc06
lea eax, [ebp - 0x18]
push eax
push ecx
push 0x10076411
mov dword [ebp - 0x18], 2
call fcn.1000d620
add esp, 0x10
jmp case.0x10065168.18803
mov edx, dword [ebp - 0x10]
mov eax, dword [ebx + edx*4 + 0xd4]
mov dword [ebp - 4], eax
jmp case.0x10065168.18803
lea eax, [esi - 0x4840]
cmp eax, 0xcc
ja case.0x10065168.18803
movzx ecx, byte [eax + 0x100652f4]
jmp dword [ecx*4 + 0x100652dc]
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x1c], edx
jmp case.0x10065168.18803
cmp dword [ebp - 8], 0
jl 0x100652b0
mov eax, dword [ebx + 0x64]
mov ecx, dword [ebp - 8]
mov edi, dword [eax + ecx*4]
mov edx, dword [ebp + 0x14]
movsx eax, word [edx + 4]
push 0
push 0x1d91
lea ecx, [ebp - 0x18]
push ecx
push edi
mov dword [ebp - 0x18], eax
call fcn.10059630
add esp, 0x10
jmp case.0x10065168.18803
lahf
cmp al, 0xa4
lea ecx, [esi - 0x741bb275]
add dword [ecx - 0x3ec407bb], ecx
je 0x1006502f
lea esp, [esp]
mov edx, dword [eax - 0x28]
lea edi, [eax - 0x30]
cmp edx, dword [ebp - 0xc]
jne 0x1006501b
mov eax, dword [ebp + 0x14]
push edi
push eax
push 0x79d2
call fcn.10005970
add esp, 0xc
test eax, eax
jne 0x1006501b
mov esi, 0x2c65
mov eax, esi
sub eax, 0x2c65
je 0x10064ffa
sub eax, 0x36
je 0x10064fe3
sub eax, 0x36
jne 0x10065010
mov eax, dword [edi + 0x38]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 8]
push ecx
lea edx, [edi + 0x18]
push edx
push 0xb19
call fcn.1006b0c0
add esp, 0xc
jmp 0x10065010
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + 0x10]
mov dword [ebx + eax*4 + 0xd4], edi
cmp dword [ecx], 0
je 0x100652bc
add esi, 0x36
cmp esi, 0x2cd1
jbe 0x10064fc6
mov edx, dword [ebp - 8]
mov eax, dword [edx]
mov dword [ebp - 8], eax
cmp eax, dword [ebp - 0x1c]
jne 0x10064fa0
mov esi, dword [ebp - 0x18]
lea eax, [ebx + 4]
push eax
push 0x7c9b
push 0
call fcn.10064970
add esp, 0xc
mov dword [ebp - 8], eax
jmp case.0x10065168.18803
cmp dword [ebp - 4], 0
je 0x100650d3
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
cmp dword [edx + 8], ecx
jne 0x100650d3
mov ecx, dword [ebp + 0x14]
mov eax, edx
push eax
push ecx
push 0x79d2
call fcn.10005970
add esp, 0xc
test eax, eax
jne 0x100650d3
mov esi, 0x20f6
lea esp, [esp]
mov eax, esi
sub eax, 0x20f6
je 0x100650a4
sub eax, 0x12
je 0x10065099
sub eax, 0x12
je 0x10064e41
jmp 0x100650c8
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x38]
mov dword [ebp + 0xc], eax
jmp 0x100650c8
mov ecx, dword [ebp + 0x10]
cmp dword [ecx], 0
je 0x100652c8
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 4]
push edx
add eax, 0x18
push eax
push 0xb19
call fcn.1006b0c0
add esp, 0xc
add esi, 0x12
cmp esi, 0x211a
jbe 0x10065080
mov eax, dword [ebx + 0xc4]
and eax, dword [ebp - 0xc]
mov edx, dword [ebx]
mov esi, dword [ebp - 0x18]
lea ecx, [eax + eax*2]
lea eax, [edx + ecx*4]
mov dword [ebp - 0x14], eax
jmp case.0x10065168.18803
mov ecx, dword [ebp + 8]
movsx edx, word [ecx + 4]
push 0
push 0x1d91
lea eax, [ebp - 0x18]
push eax
lea ecx, [edi + 0x18]
push ecx
mov dword [ebp - 0x18], edx
call fcn.10059630
mov edx, dword [ebp + 0x14]
push edx
push edi
push 0xb19
call fcn.1006b0c0
add esp, 0x1c
jmp case.0x10065168.18803
mov eax, dword [ebp + 8]
push eax
lea ecx, [edi + 0x18]
push ecx
push 0xb19
call fcn.1006b0c0
add esp, 0xc
jmp case.0x10065168.18803
cmp esi, 0x4a71
ja 0x100651e3
je 0x100651d8
lea eax, [esi - 0x4972]
cmp eax, 0xcc
ja case.0x10065168.18803
movzx eax, byte [eax + 0x100653dc]
jmp dword [eax*4 + 0x100653c4]
std
mov bh, 2
or byte [ebx - 0x7413b275], dh
push ecx
add al, 0x8d
inc edi
xor byte [ecx + 0x34578908], cl
mov edx, dword [ecx + 4]
mov dword [edx], eax
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x10]
mov dword [ebx + eax*4 + 0xd4], edi
jmp case.0x10065168.18803
mov ecx, dword [ebp - 8]
mov dword [edi + 0x38], ecx
jmp case.0x10065168.18803
stc
mov eax, dword [0x8b7f8e09]
push ecx
or byte [ecx - 0x4416f7a9], cl
add byte [eax], al
add byte [ebx + 0x36946e41], bl
wait
inc ecx
outsb dx, byte [esi]
xchg esp, eax
mov eax, dword ss:[ebp - 0x14]
wait
inc ecx
outsb dx, byte [esi]
xchg esp, eax
mov eax, dword ss:[ebp - 0x14]
add dword [eax + 8], edx
jmp case.0x10065168.18803
add dword [ebx + 0xcc], edx
mov eax, dword [ebx + 0xcc]
mov dword [edi + 0x3c], eax
jmp case.0x10065168.18803
add dword [ebx + 0xc8], edx
jmp case.0x10065168.18803
cmp esi, 0x4b0a
ja 0x1006523a
je 0x10064e41
mov eax, esi
sub eax, 0x4aa4
je 0x10065207
sub eax, 0x33
jne case.0x10065168.18803
mov eax, dword [ebp - 8]
mov dword [ebp + 0xc], eax
jmp case.0x10065168.18803
rcl word [ecx - 0x7474415e], 0xd0
add byte [eax], al
add byte [ebx], al
leave
cmp dword [ebx + 0xc8], ecx
jl case.0x10065168.18803
mov edx, dword [ebx + 0xc0]
push 0x79c9
lea eax, [ebp - 0x18]
push eax
inc edx
push ebx
mov dword [ebp - 0x18], edx
call fcn.100668a0
add esp, 0xc
jmp case.0x10065168.18803
mov eax, esi
sub eax, 0x6140
je 0x1006525a
sub eax, 0x33
jne case.0x10065168.18803
mov edx, dword [ebx + 4]
mov eax, dword [ecx]
mov ecx, dword [edx + 4]
mov eax, dword [ecx + eax*4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test ebx, ebx
je 0x100652d2
mov eax, dword [ecx]
test eax, eax
js 0x100652d2
cmp eax, dword [ebx + 0x28]
jge 0x100652d2
cmp dword [ebx + 4], 0
je 0x100652d2
add esi, 0x33
mov dword [ebp - 0x18], esi
cmp esi, dword [ebp - 0x20]
jbe 0x10064df0
mov eax, dword [ebp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x1007c3bc]
mov edx, dword [ebp + 8]
lea eax, [eax + ecx]
mov ecx, dword [ebp + 0x10]
push ecx
mov ecx, dword [ebp + 0x14]
push edx
mov edx, dword [ecx]
mov ecx, dword [ebx]
push edx
push ecx
call eax
pop edi
mov byte [ebp + 0xc], al
mov eax, dword [ebp + 0xc]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffffd
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffffe
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret