Function at 0xa03768
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
push ebx
push esi
push edi
mov edi, dword [0xd7c46c]
lea eax, [ebp - 0x30]
mov esi, ecx
push eax
mov ecx, edi
call fcn.0042abbb
xor ebx, ebx
xor ecx, ecx
cmp dword [eax + 4], ecx
sete bl
cmp dword [ebp - 0x2c], ecx
je 0xa0379c
push ecx
lea ecx, [ebp - 0x30]
call fcn.0042daaf
test ebx, ebx
je 0xa037d4
lea eax, [esi + 0x1568]
xor edx, edx
mov ecx, eax
cmp byte [ecx], 0
jne 0xa037c0
inc edx
add ecx, 0xc
cmp edx, 8
jl 0xa037aa
push 1
pop eax
jmp 0xa03a3d
push 0x60
push 0
push eax
call fcn.00be1770
add esp, 0xc
xor eax, eax
jmp 0xa03a3d
lea eax, [ebp - 0x28]
push eax
mov ecx, edi
call fcn.0042abbb
mov eax, dword [eax + 4]
xor edi, edi
cmp dword [ebp - 0x24], edi
mov dword [ebp - 0x10], eax
je 0xa037f8
push edi
lea ecx, [ebp - 0x28]
call fcn.0042daaf
mov dword [ebp - 0x24], edi
mov eax, dword [0xd82aa8]
mov dword [ebp - 0x1c], eax
mov eax, dword [0xd82bcc]
lea ebx, [esi + 0x1568]
add eax, 4
mov dword [ebp - 4], 1
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], 8
mov eax, dword [eax]
cmp eax, 0x36
jne 0xa0382c
push 0x2a
pop eax
mov ecx, dword [ebp - 0x1c]
lea ecx, [ecx + eax*4]
lea esi, [eax + ecx + 4]
mov al, byte [esi]
cmp al, 1
mov dword [ebp - 8], edi
je 0xa039ee
jbe 0xa039de
cmp al, 3
jbe 0xa03866
cmp al, 6
jbe 0xa03a09
cmp al, 7
je 0xa03866
cmp al, 8
jne 0xa039de
jmp 0xa03a09
mov ecx, dword [esi + 1]
mov eax, ecx
cdq
mov edi, 0xf4240
idiv edi
cmp eax, 2
mov dword [ebp - 0x20], eax
jne 0xa038ff
mov eax, ecx
cdq
mov edi, 0x2710
idiv edi
cmp eax, 0xc8
je 0xa03939
cmp eax, 0xc9
je 0xa03939
cmp eax, 0xca
je 0xa03939
cmp eax, 0xcd
je 0xa03939
cmp eax, 0xdd
je 0xa03939
cmp eax, 0xec
je 0xa03939
cmp eax, 0xee
je 0xa03939
cmp eax, 0xf5
je 0xa03939
cmp eax, 0xd4
je 0xa03939
cmp eax, 0xe2
je 0xa03939
cmp eax, 0xe3
je 0xa03939
cmp eax, 0xd2
je 0xa03939
cmp eax, 0xf0
je 0xa03939
cmp eax, 0xf1
jne 0xa039d8
cmp dword [ebp - 0x20], 5
jne 0xa03939
push ecx
call fcn.0048128b
cmp eax, 8
pop ecx
jl 0xa03920
cmp eax, 0xb
jle 0xa03922
cmp eax, 0x38
je 0xa03922
cmp eax, 0x48
je 0xa03927
xor eax, eax
cmp eax, 9
je 0xa03939
push dword [esi + 1]
call fcn.00481227
cmp eax, 6
pop ecx
jne 0xa039d8
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x375]
test eax, eax
je 0xa03949
mov eax, dword [eax - 4]
push 1
dec eax
pop ebx
cmp eax, ebx
mov dword [ebp - 0x20], eax
jl 0xa039aa
mov ecx, dword [ebp - 0x10]
push ebx
push 2
lea eax, [ebp - 0x30]
push eax
call fcn.0042c47a
cmp dword [ebp - 0x2c], 0
mov edi, dword [eax + 4]
je 0xa0397a
push 0
lea ecx, [ebp - 0x30]
call fcn.0042d8bb
and dword [ebp - 0x2c], 0
test edi, edi
je 0xa039a4
lea ecx, [edi + 0xc]
call fcn.0042d5a8
cmp eax, dword [esi + 1]
jne 0xa039a4
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
test eax, eax
jne 0xa039a4
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x20]
add dword [ebp - 8], eax
and dword [ebp - 4], 0
inc ebx
cmp ebx, dword [ebp - 0x20]
jle 0xa03954
mov edi, dword [ebp - 0xc]
push 5
push esi
push edi
call fcn.00be2090
add esp, 0xc
test eax, eax
jne 0xa039c5
mov eax, dword [ebp - 8]
cmp dword [edi + 8], eax
je 0xa039c9
and dword [ebp - 4], 0
mov ebx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov edi, ebx
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov dword [ebx + 8], eax
jmp 0xa03a20
and dword [ebp - 4], 0
jmp 0xa039cc
cmp byte [ebx], 0
je 0xa039e6
mov dword [ebp - 4], edi
and byte [ebx], 0
and byte [esi], 0
jmp 0xa03a22
mov ecx, dword [0xd7c424]
push edi
push dword [esi + 1]
push dword [ebp - 0x10]
call fcn.0082a0da
test eax, eax
jle 0xa039de
cmp dword [esi + 1], edi
je 0xa039de
push 5
push esi
push ebx
call fcn.00be2090
add esp, 0xc
test eax, eax
je 0xa03a1c
mov dword [ebp - 4], edi
mov edi, ebx
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
xor edi, edi
mov eax, dword [ebp - 0x14]
add eax, 4
add ebx, 0xc
dec dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0xc], ebx
jne 0xa03822
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
leave
ret