Function at 0x46a400
Capabilities:
Check for software breakpoints

Disassembly:
mov eax, dword [esp + 0x18]
push ebx
push ebp
push esi
test eax, eax
push edi
je 0x46a4dd
mov ecx, eax
mov dword [esp + 0x28], eax
shl ecx, 5
add ecx, eax
mov dl, byte [ecx*8 + 0x7999d8]
test dl, dl
jne 0x46abec
push eax
call fcn.004851b0
add esp, 4
test eax, eax
jne 0x46abec
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
mov esi, edx
mov ecx, dword [esp + 0x18]
shl esi, 5
add esi, edx
lea edi, [ecx + ecx*4]
shl esi, 3
shl edi, 2
mov byte [esi + 0x7999d8], 3
mov byte [esi + 0x7999d9], al
imul eax, eax, 0x49d8
xor ebx, ebx
mov ebp, 4
mov al, byte [eax + 0xea1875]
mov byte [esi + 0x7999da], al
mov al, byte [edi + 0x5d06dc]
mov word [esi + 0x7999e8], cx
mov byte [esi + 0x7999db], al
mov eax, dword [0x78d7b4]
mov word [esi + 0x7999ee], ax
inc eax
mov byte [esi + 0x799a9a], 0x32
mov word [esi + 0x7999f8], bx
mov dword [0x78d7b4], eax
mov byte [esi + 0x7999dd], bl
mov ax, word [esi + 0x7999e8]
cmp ax, 0xa
jl 0x46a57b
cmp ax, 0x13
jg 0x46a57b
mov byte [esi + 0x7999dd], 1
jmp 0x46a5b8
mov edi, dword [esp + 0x24]
mov ebp, 1
mov dword [esp + 0x28], ebp
mov ebx, 0x799ae0
lea esi, [edi + 1]
sub ebp, edi
cmp byte [ebx], 0
jne 0x46a556
mov edx, dword [esp + 0x28]
push edx
call fcn.004851b0
add esp, 4
test eax, eax
jne 0x46a556
cmp edi, 1
jle 0x46a43b
lea edi, [esi + ebp]
cmp edi, esi
mov eax, edi
jge 0x46a43b
lea ecx, [ebx + 0x108]
cmp byte [ecx], 0
jne 0x46a556
inc eax
add ecx, 0x108
cmp eax, esi
jl 0x46a526
cmp edi, esi
jge 0x46a43b
push edi
call fcn.004851b0
add esp, 4
test eax, eax
jne 0x46a556
inc edi
cmp edi, esi
jge 0x46a43b
jmp 0x46a53e
mov edi, dword [esp + 0x28]
add ebx, 0x108
inc edi
inc esi
cmp ebx, 0x89b6d8
mov dword [esp + 0x28], edi
jge 0x46abec
mov edi, dword [esp + 0x24]
jmp 0x46a4f4
cmp ax, 0x14
jl 0x46a590
cmp ax, 0x17
jg 0x46a590
mov byte [esi + 0x7999dd], 2
jmp 0x46a5b8
cmp ax, 0x18
jl 0x46a5a5
cmp ax, 0x1b
jg 0x46a5a5
mov byte [esi + 0x7999dd], 3
jmp 0x46a5b8
cmp ax, 0x1c
jl 0x46a5b8
cmp ax, 0x1d
jg 0x46a5b8
mov byte [esi + 0x7999dd], 4
mov ax, word [esi + 0x7999e8]
cmp ax, 0xa
jl 0x46a5d7
cmp ax, 0x1d
jg 0x46a5d7
add ecx, 0xfffffff6
mov word [esi + 0x7999ea], cx
jmp 0x46a5de
mov word [esi + 0x7999ea], bx
mov word [esi + 0x799aa6], bx
mov al, byte [esi + 0x7999dd]
test al, al
je 0x46a622
movsx eax, word [esi + 0x7999ea]
push 1
push edx
lea ecx, [eax + eax*4]
lea eax, [eax + ecx*2]
mov ecx, dword [eax*8 + 0x70ce0c]
mov dword [esi + 0x799abc], ecx
mov dword [esi + 0x799ac0], ebx
mov dword [esi + 0x799ad4], ebx
call fcn.004e7f00
add esp, 8
jmp 0x46a628
mov dword [esi + 0x799abc], ebx
mov cx, word [esi + 0x7999e8]
movsx eax, cx
cmp eax, 0x8c
jl 0x46a640
cmp eax, 0x95
jle 0x46a69a
cmp cx, 0xca
je 0x46a69a
cmp eax, 0x29
jl 0x46a6a6
cmp eax, 0x2b
jg 0x46a6a6
mov eax, dword [0xbc9714]
mov ebx, eax
and ebx, 0x80000003
jns 0x46a665
dec ebx
or ebx, 0xfffffffc
inc ebx
add eax, 4
cdq
and edx, 3
add eax, edx
mov ecx, eax
sar ecx, 2
cmp ecx, ebp
jl 0x46a679
xor ecx, ecx
mov eax, dword [0xbca2e0]
cdq
sub eax, edx
sar eax, 1
lea ecx, [eax + ecx + 1]
cmp ecx, ebp
jl 0x46a68d
sub ecx, ebp
shl bl, 4
add bl, cl
mov byte [esi + 0x799a82], bl
jmp 0x46a6a6
mov dl, byte [0xbc9714]
mov byte [esi + 0x799a82], dl
mov ax, word [esi + 0x7999e8]
cmp ax, 0x66
jne 0x46a6bf
mov byte [esi + 0x799a1b], 1
jmp 0x46aa63
cmp ax, 0x67
jne 0x46a6d1
mov byte [esi + 0x799a1b], 3
jmp 0x46aa63
cmp ax, 0x68
jne 0x46a6e3
mov byte [esi + 0x799a1b], 5
jmp 0x46aa63
cmp ax, 0x65
jne 0x46a6f5
mov byte [esi + 0x799a1b], 0x10
jmp 0x46aa63
cmp ax, 0xe0
jne 0x46a707
mov byte [esi + 0x799a1b], 0x20
jmp 0x46aa63
cmp ax, 0x69
jne 0x46a719
mov byte [esi + 0x799a1b], 4
jmp 0x46aa63
cmp ax, 0x64
jne 0x46a72b
mov byte [esi + 0x799a1b], 0xe
jmp 0x46aa63
cmp ax, 0xc2
jne 0x46a746
mov byte [esi + 0x799a1b], 2
mov word [esi + 0x7999ea], 0xd
jmp 0x46aa63
cmp ax, 0xc4
jne 0x46a758
mov byte [esi + 0x799a1b], 6
jmp 0x46aa63
cmp ax, 0xc3
jne 0x46a76a
mov byte [esi + 0x799a1b], 0x16
jmp 0x46aa63
cmp ax, 0x6a
jne 0x46a77c
mov byte [esi + 0x799a1b], 0x18
jmp 0x46aa63
cmp ax, 0xdd
jne 0x46a78e
mov byte [esi + 0x799a1b], 0x1e
jmp 0x46aa63
cmp ax, 0x6b
jne 0x46a7a0
mov byte [esi + 0x799a1b], 0x19
jmp 0x46aa63
cmp ax, 0xd8
jne 0x46a7b2
mov byte [esi + 0x799a1b], 0x1a
jmp 0x46aa63
cmp ax, 0xa1
jne 0x46a7c4
mov byte [esi + 0x799a1b], 0x15
jmp 0x46aa63
cmp ax, 0xd9
jne 0x46a7d6
mov byte [esi + 0x799a1b], 0x1d
jmp 0x46aa63
cmp ax, 0xa2
jne 0x46a7e8
mov byte [esi + 0x799a1b], 0x12
jmp 0x46aa63
cmp ax, 0x6c
jne 0x46a7fa
mov byte [esi + 0x799a1b], 0x14
jmp 0x46aa63
cmp ax, 0x6d
jne 0x46a80c
mov byte [esi + 0x799a1b], 0xb
jmp 0x46aa63
cmp ax, 0x6e
jne 0x46a827
mov byte [esi + 0x799a1b], 0xf
mov word [esi + 0x7999ea], 9
jmp 0x46aa63
cmp ax, 0x6f
jne 0x46a842
mov byte [esi + 0x799a1b], 0x11
mov word [esi + 0x7999ea], 1
jmp 0x46aa63
cmp ax, 0xcb
jne 0x46a85d
mov byte [esi + 0x799a1b], 0x17
mov word [esi + 0x7999ea], 0xb
jmp 0x46aa63
cmp ax, 0xcc
jne 0x46a881
mov byte [esi + 0x799a1b], 0xc
mov word [esi + 0x7999ea], 5
mov word [esi + 0x799aa6], 0xd
jmp 0x46aa63
cmp ax, 0xe8
jne 0x46a8a5
mov byte [esi + 0x799a1b], 0x22
mov word [esi + 0x7999ea], 0x17
mov word [esi + 0x799aa6], 0x18
jmp 0x46aa63
cmp ax, 0xe9
jne 0x46a8c0
mov byte [esi + 0x799a1b], 0x21
mov word [esi + 0x7999ea], 0x14
jmp 0x46aa63
cmp ax, 0xcd
jne 0x46a8d9
mov byte [esi + 0x799a1b], 0x1c
mov word [esi + 0x7999ea], bp
jmp 0x46aa63
cmp ax, 0x70
jne 0x46a8f4
mov byte [esi + 0x799a1b], 0xa
mov word [esi + 0x7999ea], 0x11
jmp 0x46aa63
cmp ax, 0x71
jne 0x46a90f
mov byte [esi + 0x799a1b], 0x13
mov word [esi + 0x7999ea], 0xa
jmp 0x46aa63
cmp ax, 0x72
jne 0x46a92a
mov byte [esi + 0x799a1b], 0xd
mov word [esi + 0x7999ea], 5
jmp 0x46aa63
cmp ax, 0xb1
jne 0x46a943
mov byte [esi + 0x799a1b], 0
mov word [esi + 0x7999ea], bp
jmp 0x46aa63
cmp ax, 0xe7
jne 0x46a967
mov byte [esi + 0x799a1b], 0
mov word [esi + 0x7999ea], 0x19
mov word [esi + 0x799aa6], 5
jmp 0x46aa63
cmp ax, 0xb2
jne 0x46a982
mov byte [esi + 0x799a1b], 0
mov word [esi + 0x7999ea], 0
jmp 0x46aa63
cmp ax, 0xb3
je 0x46a96d
cmp ax, 0x5f
jne 0x46a9ac
mov byte [esi + 0x799a1b], 0
mov word [esi + 0x7999ea], 8
mov word [esi + 0x799aa6], 0xe
jmp 0x46aa63
cmp ax, 0x4a
jne 0x46a9d2
mov eax, dword [esp + 0x28]
mov byte [esi + 0x799a1b], 0
push eax
mov word [esi + 0x7999ea], bp
call fcn.0046a280
add esp, 4
jmp 0x46aa63
cmp ax, 0xbb
je 0x46aa53
cmp ax, 0xbc
je 0x46aa53
cmp ax, 0xbd
je 0x46aa53
cmp ax, 0x35
je 0x46aa41
cmp ax, 0x33
je 0x46aa41
cmp ax, 0x2f
jne 0x46aa08
mov byte [esi + 0x799a1b], 0
mov word [esi + 0x7999ea], 0x10
jmp 0x46aa63
cmp ax, 0x20
jne 0x46aa20
mov byte [esi + 0x799a1b], 0
mov word [esi + 0x7999ea], 0x13
jmp 0x46aa63
cmp ax, 0xe2
mov byte [esi + 0x799a1b], 0
jne 0x46aa63
mov word [esi + 0x7999ea], 0x16
mov word [esi + 0x799aa6], 0xd
jmp 0x46aa63
mov byte [esi + 0x799a1b], 0
mov word [esi + 0x7999ea], 0xc
jmp 0x46aa63
mov byte [esi + 0x799a1b], 0
mov word [esi + 0x7999ea], 0xf
mov ax, word [esi + 0x7999e8]
cmp ax, 0x47
je 0x46aa76
cmp ax, 0xbf
jne 0x46aa7f
mov word [esi + 0x799a2e], 0xc80
mov ecx, dword [esp + 0x20]
mov ebx, dword [0xbca2d8]
mov edx, dword [esp + 0x1c]
lea eax, [ecx + ecx*8]
mov word [esi + 0x7999de], dx
mov word [esi + 0x7999e0], cx
lea eax, [ecx + eax*2]
lea eax, [eax + eax*2]
lea eax, [ebx + eax*4]
add eax, edx
mov dword [esi + 0x7999e4], eax
mov al, byte [eax + 0xacf85c]
and al, 0x7f
mov byte [esi + 0x799a25], al
and al, 6
mov byte [esi + 0x799a0c], al
mov al, byte [edi + 0x5d06e0]
mov byte [esi + 0x799a24], al
xor eax, eax
mov al, byte [esi + 0x7999db]
push eax
push ecx
push edx
call fcn.00481000
add esp, 0xc
mov byte [esi + 0x799a98], al
cmp word [esi + 0x7999e8], 0x88
jne 0x46ab35
mov eax, dword [0xbca310]
xor ecx, ecx
cmp eax, ecx
jne 0x46ab0c
mov edi, dword [esp + 0x28]
mov dword [0xbc9800], edi
jmp 0x46ab3b
cmp eax, 1
je 0x46ab16
cmp eax, 2
jne 0x46ab37
mov eax, dword [0xbc9800]
mov edi, dword [esp + 0x28]
mov edx, eax
mov dword [esi + 0x799a9c], eax
shl edx, 5
add edx, eax
mov dword [edx*8 + 0x799a9c], edi
jmp 0x46ab3b
xor ecx, ecx
mov edi, dword [esp + 0x28]
mov ax, word [esi + 0x7999e8]
cmp ax, 0x1f
je 0x46ab54
cmp ax, 0x1e
je 0x46ab54
cmp ax, 0x21
jne 0x46ab85
mov word [esi + 0x799a76], cx
mov word [esi + 0x799a78], cx
mov word [esi + 0x799a7a], cx
mov word [esi + 0x799a7c], cx
mov byte [esi + 0x799a7f], 0
mov byte [esi + 0x799a80], 0
mov byte [esi + 0x799a81], 0
mov ax, word [esi + 0x7999e8]
cmp ax, 0x73
je 0x46abd0
cmp ax, 0x6c
je 0x46abd0
cmp ax, 0xb1
je 0x46abd0
cmp ax, 0xb2
je 0x46abd0
cmp ax, 0xb3
je 0x46abd0
cmp ax, 0xe7
je 0x46abd0
cmp ax, 0xc3
je 0x46abd0
push edi
mov ecx, 0xbca350
call fcn.00488050
test al, al
jne 0x46abd0
cmp word [esi + 0x7999e8], 0xc7
jne 0x46abd7
mov byte [esi + 0x799a7e], 0
cmp dword [0x78d790], edi
jg 0x46abe5
mov dword [0x78d790], edi
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
ret
push 0
push 0
push 0x41
call fcn.004e2970
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret