Function at 0x46e6b0
Capabilities:
Check for software breakpoints

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4ef818
push eax
mov dword fs:[0], esp
push ebx
push esi
push edi
mov esi, ecx
mov dword [esp + 0x14], 0
call fcn.00469a70
cmp al, 1
je 0x46e9ae
cmp byte [esi + 0x28], 1
je 0x46e9ae
call fcn.00469ec0
cmp al, 1
je 0x46e9ae
lea ecx, [esp + 0x1c]
call fcn.00454280
movsx edi, ax
mov al, byte [esi + 5]
add edi, 4
cmp al, 1
jne 0x46e71c
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x2c]
add eax, edi
cmp eax, ecx
jge 0x46e9ae
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x2c]
lea eax, [ecx + edi]
cmp eax, edx
jl 0x46e8bd
cmp edi, ecx
jge 0x46e75d
mov bl, byte [esi + 0x30]
mov eax, dword [esi + 8]
cmp bl, 1
jne 0x46e74b
add eax, edi
cmp byte [eax], 0x55
jne 0x46e758
cmp byte [eax + 1], 0xcc
je 0x46e75d
jmp 0x46e758
add eax, edi
cmp byte [eax], 0x55
jne 0x46e758
cmp byte [eax + 1], 0xaa
je 0x46e75d
inc edi
cmp edi, ecx
jl 0x46e734
push edx
call fcn.004dbc04
mov dword [eax], 0
mov edx, dword [esi + 0xc]
add esp, 4
xor ecx, ecx
test edx, edx
jle 0x46e788
mov edx, dword [esi + 8]
inc ecx
mov dl, byte [edx + ecx - 1]
mov byte [eax + ecx - 1], dl
mov edx, dword [esi + 0xc]
cmp ecx, edx
jl 0x46e775
mov ecx, dword [esi + 8]
mov dword [ecx], 0
mov edx, dword [esi + 0xc]
xor ecx, ecx
cmp edi, edx
jge 0x46e7ac
mov ebx, dword [esi + 8]
mov dl, byte [eax + edi]
inc edi
mov byte [ebx + ecx], dl
mov edx, dword [esi + 0xc]
inc ecx
cmp edi, edx
jl 0x46e79a
push eax
mov dword [esi + 0xc], ecx
call fcn.004db420
mov eax, dword [esp + 0x24]
add esp, 4
cmp eax, 1
jne 0x46e83f
mov edx, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov byte [edx + eax], 0x55
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
inc eax
mov dword [esi + 0xc], eax
mov byte [eax + ecx], 0xaa
mov ebx, dword [esi + 0xc]
inc ebx
lea ecx, [esp + 0x1c]
mov dword [esi + 0xc], ebx
call fcn.00454280
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
add al, 3
xor edi, edi
mov byte [edx + ecx], al
mov edx, dword [esi + 0xc]
inc edx
lea ecx, [esp + 0x1c]
mov dword [esi + 0xc], edx
call fcn.00454280
test ax, ax
jle 0x46e9ae
push edi
lea ecx, [esp + 0x20]
call fcn.004541f0
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov byte [edx + ecx], al
mov edx, dword [esi + 0xc]
inc edx
lea ecx, [esp + 0x1c]
mov dword [esi + 0xc], edx
inc edi
call fcn.00454280
movsx edx, ax
cmp edi, edx
jl 0x46e80f
jmp 0x46e9ae
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov byte [eax + ecx], 0x55
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
inc eax
mov dword [esi + 0xc], eax
lea ecx, [esp + 0x1c]
mov byte [eax + edx], 0xbb
mov ebx, dword [esi + 0xc]
inc ebx
mov dword [esi + 0xc], ebx
call fcn.00454280
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
add al, 3
xor edi, edi
mov byte [ecx + edx], al
mov edx, dword [esi + 0xc]
inc edx
lea ecx, [esp + 0x1c]
mov dword [esi + 0xc], edx
call fcn.00454280
test ax, ax
jle 0x46e9ae
push edi
lea ecx, [esp + 0x20]
call fcn.004541f0
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov byte [ecx + edx], al
mov ebx, dword [esi + 0xc]
inc ebx
lea ecx, [esp + 0x1c]
mov dword [esi + 0xc], ebx
inc edi
call fcn.00454280
movsx eax, ax
cmp edi, eax
jl 0x46e88d
jmp 0x46e9ae
cmp dword [esp + 0x20], 1
jne 0x46e93c
mov edx, dword [esi + 8]
mov byte [ecx + edx], 0x55
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
inc eax
mov dword [esi + 0xc], eax
mov byte [eax + ecx], 0xaa
mov ebx, dword [esi + 0xc]
inc ebx
lea ecx, [esp + 0x1c]
mov dword [esi + 0xc], ebx
call fcn.00454280
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
add al, 3
xor edi, edi
mov byte [edx + ecx], al
mov edx, dword [esi + 0xc]
inc edx
lea ecx, [esp + 0x1c]
mov dword [esi + 0xc], edx
call fcn.00454280
test ax, ax
jle 0x46e9ae
push edi
lea ecx, [esp + 0x20]
call fcn.004541f0
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov byte [edx + ecx], al
mov edx, dword [esi + 0xc]
inc edx
lea ecx, [esp + 0x1c]
mov dword [esi + 0xc], edx
inc edi
call fcn.00454280
movsx edx, ax
cmp edi, edx
jl 0x46e90f
jmp 0x46e9ae
mov eax, dword [esi + 8]
mov byte [ecx + eax], 0x55
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
inc eax
mov dword [esi + 0xc], eax
mov byte [eax + ecx], 0xbb
mov ebx, dword [esi + 0xc]
inc ebx
lea ecx, [esp + 0x1c]
mov dword [esi + 0xc], ebx
call fcn.00454280
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
add al, 3
xor edi, edi
mov byte [edx + ecx], al
mov edx, dword [esi + 0xc]
inc edx
lea ecx, [esp + 0x1c]
mov dword [esi + 0xc], edx
call fcn.00454280
test ax, ax
jle 0x46e9ae
push edi
lea ecx, [esp + 0x20]
call fcn.004541f0
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov byte [edx + ecx], al
mov edx, dword [esi + 0xc]
inc edx
lea ecx, [esp + 0x1c]
mov dword [esi + 0xc], edx
inc edi
call fcn.00454280
movsx edx, ax
cmp edi, edx
jl 0x46e983
lea ecx, [esp + 0x1c]
mov dword [esp + 0x14], 0xffffffff
call fcn.00453ea0
mov ecx, dword [esp + 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
add esp, 0xc
ret 8