Function at 0x583b70
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0xa
push 0
push 0
dec ecx
jne 0x583b79
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov ebx, ecx
mov edi, edx
mov esi, eax
mov eax, dword [ebp + 8]
call fcn.0040568c
xor eax, eax
push ebp
push 0x583fda
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
push eax
xor eax, eax
mov dword [ebp - 0x24], eax
xor eax, eax
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x24]
mov cx, 0xc
mov edx, 1
call fcn.0041b2cc
push 0
push 1
lea eax, [ebp - 0x34]
xor edx, edx
call fcn.00418e10
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0041b5c0
add esp, 0x10
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], eax
test byte [edi + 0x12], 8
jne 0x583fa1
mov al, byte [edi + 0x10]
cmp al, byte [esi + 0x3d]
jae 0x583fa1
cmp bl, 0xc8
jne 0x583c1c
cmp byte [esi + 0x3d], 1
jb 0x583c1c
mov eax, dword [0x5c1480]
mov edx, 0x583ff4
call fcn.00405220
mov eax, edi
call fcn.005a6acc
cmp bl, 0xc9
jne 0x583d29
cmp byte [esi + 0x3d], 2
jb 0x583d29
mov eax, dword [0x5c1480]
mov edx, 0x584004
call fcn.00405220
mov dl, 1
mov eax, dword [edi + 0x40]
call fcn.005adf1c
mov word [ebp - 0x16], ax
mov dl, 1
mov eax, dword [edi + 0x2784]
call fcn.005adf1c
mov word [ebp - 0x18], ax
mov eax, dword [0x5c1134]
cmp dword [eax], 0
jne 0x583c7d
mov dl, 1
mov eax, dword [0x4bff34]
call fcn.004c01c4
mov edx, dword [0x5c1134]
mov dword [edx], eax
jmp 0x583caa
mov eax, dword [edi + 0x38]
call fcn.0057ce2c
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jne 0x583ca0
mov edx, dword [edi + 0x2784]
mov ax, word [ebp - 0x18]
call fcn.0057cdbc
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jne 0x583fa1
mov eax, 0x1c
call fcn.0040c16c
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov edx, dword [edi + 0x40]
call fcn.00405220
mov eax, dword [ebp - 0x1c]
mov edx, dword [edi + 0x38]
mov dword [eax + 8], edx
mov eax, dword [ebp - 0x1c]
add eax, 0x14
mov edx, dword [0x5c1a78]
mov edx, dword [edx]
call fcn.00405220
mov eax, dword [ebp - 0x1c]
add eax, 0x18
mov edx, dword [esi + 4]
call fcn.00405220
mov eax, dword [ebp - 0x1c]
add eax, 0x10
mov edx, dword [edi + 0x2784]
call fcn.00405220
mov eax, dword [ebp - 0x1c]
mov dx, word [ebp - 0x16]
mov word [eax + 4], dx
mov eax, dword [ebp - 0x1c]
mov dx, word [ebp - 0x18]
mov word [eax + 0xc], dx
mov eax, dword [0x5c1134]
mov eax, dword [eax]
mov edx, dword [ebp - 0x1c]
call fcn.004c0238
mov eax, edi
call fcn.005a6acc
cmp bl, 0xca
jne 0x583d98
cmp byte [esi + 0x3d], 1
jb 0x583d98
mov eax, dword [0x5c1480]
mov edx, 0x584010
call fcn.00405220
test byte [edi + 0x11], 4
jne 0x583fa1
mov eax, dword [0x5c1b24]
cmp dword [eax], 0
jne 0x583d6b
mov dl, 1
mov eax, dword [0x4c605c]
call fcn.004c63a4
mov edx, dword [0x5c1b24]
mov dword [edx], eax
mov eax, dword [0x5c1b24]
mov eax, dword [eax]
mov edx, dword [edi + 0x38]
call fcn.004c62cc
inc eax
jne 0x583fa1
mov eax, dword [0x5c1b24]
mov eax, dword [eax]
mov ecx, dword [edi + 0x40]
mov edx, dword [edi + 0x38]
call fcn.004c61f4
or word [edi + 0x11], 4
cmp bl, 0xcb
jne 0x583e05
cmp byte [esi + 0x3d], 1
jb 0x583e05
mov eax, dword [0x5c1480]
mov edx, 0x584020
call fcn.00405220
test byte [edi + 0x11], 4
je 0x583e05
mov eax, dword [0x5c1b24]
mov eax, dword [eax]
mov edx, dword [edi + 0x38]
call fcn.004c62cc
cmp eax, 0xffffffff
je 0x583fa1
mov edx, dword [0x5c1b24]
mov edx, dword [edx]
xchg edx, eax
call fcn.004c61bc
mov eax, dword [0x5c1b24]
mov eax, dword [eax]
cmp dword [eax + 8], 0
jne 0x583e00
mov eax, dword [0x5c1b24]
mov eax, dword [eax]
call fcn.004042b8
mov eax, dword [0x5c1b24]
xor edx, edx
mov dword [eax], edx
and word [edi + 0x11], 0xfffb
cmp bl, 0xcc
jne 0x583e74
cmp byte [esi + 0x3d], 1
jb 0x583e74
mov eax, dword [0x5c1480]
mov edx, 0x584034
call fcn.00405220
test byte [edi + 0x11], 8
jne 0x583fa1
mov eax, dword [0x5c13f8]
cmp dword [eax], 0
jne 0x583e47
mov dl, 1
mov eax, dword [0x4c605c]
call fcn.004c63a4
mov edx, dword [0x5c13f8]
mov dword [edx], eax
mov eax, dword [0x5c13f8]
mov eax, dword [eax]
mov edx, dword [edi + 0x38]
call fcn.004c62cc
inc eax
jne 0x583fa1
mov eax, dword [0x5c13f8]
mov eax, dword [eax]
mov ecx, dword [edi + 0x40]
mov edx, dword [edi + 0x38]
call fcn.004c61f4
or word [edi + 0x11], 8
cmp bl, 0xcd
jne 0x583ee1
cmp byte [esi + 0x3d], 1
jb 0x583ee1
mov eax, dword [0x5c1480]
mov edx, 0x584044
call fcn.00405220
test byte [edi + 0x11], 8
je 0x583ee1
mov eax, dword [0x5c13f8]
mov eax, dword [eax]
mov edx, dword [edi + 0x38]
call fcn.004c62cc
cmp eax, 0xffffffff
je 0x583fa1
mov edx, dword [0x5c13f8]
mov edx, dword [edx]
xchg edx, eax
call fcn.004c61bc
mov eax, dword [0x5c13f8]
mov eax, dword [eax]
cmp dword [eax + 8], 0
jne 0x583edc
mov eax, dword [0x5c13f8]
mov eax, dword [eax]
call fcn.004042b8
mov eax, dword [0x5c13f8]
xor edx, edx
mov dword [eax], edx
and word [edi + 0x11], 0xfff7
cmp bl, 0xce
jne 0x583f0b
cmp byte [esi + 0x3d], 1
jb 0x583f0b
mov eax, dword [0x5c1480]
mov edx, 0x584058
call fcn.00405220
cmp byte [edi + 0x280d], 0
jne 0x583f0b
mov byte [edi + 0x280d], 1
cmp bl, 0xcf
jne 0x583f35
cmp byte [esi + 0x3d], 1
jb 0x583f35
mov eax, dword [0x5c1480]
mov edx, 0x584068
call fcn.00405220
cmp byte [edi + 0x280d], 0
je 0x583f35
mov byte [edi + 0x280d], 0
mov eax, dword [0x5c13c0]
mov dword [eax], edi
mov eax, dword [0x5c1a78]
mov edx, dword [ebp + 8]
call fcn.00405220
mov eax, dword [0x5c13c0]
cmp dword [eax], 0
jne 0x583f5d
mov eax, dword [0x5c198c]
mov byte [eax], 0
jmp 0x583fa1
mov eax, dword [0x5c198c]
mov byte [eax], 1
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x14]
mov eax, dword [0x5c19b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x2f8]
mov edx, 0x584074
call fcn.004cc014
lea eax, [ebp - 0x54]
push eax
lea ecx, [ebp - 0x14]
mov eax, dword [0x5c19b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x300]
mov edx, 0x584074
call fcn.004cc014
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x583fe1
lea eax, [ebp - 0x54]
mov edx, dword [0x401144]
mov ecx, 2
call fcn.004060c0
lea eax, [ebp - 0x34]
call fcn.004147c8
lea eax, [ebp - 0x10]
call fcn.004147c8
lea eax, [ebp + 8]
call fcn.004051cc
ret