Function at 0x1002f7c0
Capabilities:
Check for software breakpoints

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x68
push esi
push edi
xorps xmm0, xmm0
mov dword [ebp - 0xc], edx
mov edi, ecx
movaps xmmword [ebp - 0x60], xmm0
mov dword [ebp - 0x38], edi
movq qword [ebp - 0x50], xmm0
mov eax, 2
call dword [0x10121284]
mov eax, 1
call dword [0x10121234]
mov eax, dword [edi + 8]
lea edx, [ebp - 0x30]
mov dword [ebp - 8], eax
mov ecx, dword [eax + 0x64]
call fcn.1003bde0
mov eax, dword [edi]
mov edx, dword [eax + 0x1c]
mov ecx, dword [eax + 0x20]
inc edx
mov eax, ecx
mov dword [ebp - 0x30], edx
mov edx, dword [ebp - 0xc]
and ecx, 0xfff
shr eax, 0xc
and ecx, 0xfff
movzx esi, dl
and eax, 0xf
or esi, 0x100
and eax, 0xf
shl esi, 4
or esi, eax
shl esi, 0xc
or esi, ecx
mov ecx, edx
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x28], esi
lea eax, [ecx - 0x14]
cmp eax, 0xf
ja 0x1002f8a4
cmp ecx, 0x21
je 0x1002f8a4
mov eax, edx
and eax, 7
shl eax, 0x1c
or eax, esi
mov ecx, eax
mov dword [ebp - 0x2c], eax
call fcn.10016c20
test eax, eax
je 0x1002f884
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x14], eax
jmp 0x1002f8a7
cmp dword [ebp - 0x30], 1
je 0x1002f8a4
or esi, 0x10000000
mov ecx, esi
call fcn.10016c20
test eax, eax
mov eax, dword [ebp - 0x28]
cmovne eax, esi
mov dword [ebp - 0x14], eax
jmp 0x1002f8a7
mov dword [ebp - 0x14], esi
lea eax, [ebp - 0x34]
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x14]
call dword [0x10120ea0]
test eax, eax
je 0x1002f8cb
movzx eax, word [eax + 6]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
call dword [0x10120e98]
mov eax, dword [edi + 0x20]
mov eax, dword [eax + 4]
mov dword [ebp - 0x30], eax
mov eax, dword [edi]
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
call dword [0x10121238]
mov ecx, dword [edi + 8]
mov eax, dword [edi]
mov byte [ebp - 1], 0
test ecx, ecx
je 0x1002f914
mov ecx, dword [ecx + 0x64]
lea edx, [ebp - 0x30]
call fcn.1003bde0
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x30]
jmp 0x1002f93e
test eax, eax
je 0x1002f93c
mov ecx, dword [eax + 0x64]
mov eax, ecx
shr eax, 0x18
cmp al, 1
jne 0x1002f93c
lea edx, [ebp - 0x30]
call fcn.1003bde0
cmp eax, 0xffffffff
je 0x1002f93c
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x190]
jmp 0x1002f93e
xor eax, eax
cmp dword [ebp - 0xc], 0x12
mov dword [ebp - 0x14], eax
jne 0x1002f95f
cmp eax, 3
je 0x1002f959
cmp eax, 5
je 0x1002f959
cmp eax, dword [0x1013d068]
jne 0x1002f96d
mov byte [ebp - 1], 1
jmp 0x1002f96d
mov ecx, dword [edi]
mov edx, 0x2b
push 0xffffffffffffffff
call fcn.10017cd0
mov ecx, dword [edi]
mov edx, edi
push 0
push 2
call fcn.10017160
mov ecx, dword [edi]
test dword [ecx + 0x20], 0xf000
je 0x1002f99a
push dword [edi + 0x20]
mov edx, dword [ebp - 8]
mov ecx, 1
push dword [edi + 4]
call fcn.10017350
jmp 0x1002f9a4
mov edx, dword [ebp - 0xc]
push 0
call fcn.1006f4d0
mov ecx, dword [edi]
mov edx, eax
push 0xffffffffffffffff
call fcn.10017800
mov edx, dword [ebp - 0xc]
mov ecx, dword [edi]
push 0
call fcn.10017cd0
xor esi, esi
mov dword [ebp - 0x2c], 0xffffffff
xor eax, eax
mov dword [ebp - 0x24], esi
cmp dword [ebp - 0xc], 0x2f
mov dword [ebp - 0x30], eax
je 0x1002ff12
mov eax, dword [edi + 0x14]
and eax, 0x300
cmp eax, 0x200
je 0x1002ff12
mov eax, dword [ebp - 8]
lea edx, [ebp - 0x28]
mov ecx, dword [eax + 0x64]
call fcn.1003bde0
mov eax, dword [ebp - 0x28]
lea edx, [ebp - 0x28]
mov ecx, dword [eax + 0x3c]
call fcn.1003bde0
cmp eax, 0xffffffff
je 0x1002fed9
mov edx, dword [ebp - 0x28]
mov edx, dword [edx + 8]
cmp edx, 0xffffffff
je 0x1002fed9
cmp dword [ebp - 0xc], 0x12
jne 0x1002fbaf
mov ecx, dword [ebp - 8]
mov esi, ecx
mov edx, dword [edi]
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x30], edx
mov eax, dword [ecx + 0x20]
mov dword [ebp - 0x2c], eax
mov eax, dword [0x1013cd38]
cmp dword [eax], edx
jne 0x1002fa55
mov eax, dword [0x597108]
mov dword [ebp - 0x24], eax
mov eax, dword [0x597120]
mov dword [ebp - 0x18], eax
jmp 0x1002fa61
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x24], eax
mov eax, dword [ecx + 0x24]
mov ecx, 9
and eax, 0x3000000
mov dword [ebp - 0x20], eax
call fcn.100cb410
test al, al
je 0x1002faf6
mov ecx, dword [0x10182300]
mov eax, dword [ebp - 0x30]
mov dword [ecx + 0x88], 5
mov dword [ecx + 4], eax
mov eax, esi
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 1
mov dword [ecx + 0x10], 0x411838
mov dword [ecx + 0x14], 0
call fcn.100cb290
mov ecx, dword [0x10182300]
test ecx, ecx
je 0x1002faf6
mov eax, dword [ecx + 0x84]
test eax, eax
jle 0x1002faca
dec eax
mov dword [ecx + 0x84], eax
mov eax, dword [0x1013d39c]
sub eax, 1
mov dword [0x1013d39c], eax
jns 0x1002fae5
mov dword [0x10182300], 0
jmp 0x1002faf6
imul eax, eax, 0x9c
add eax, dword [0x101552d4]
mov dword [0x10182300], eax
mov ecx, dword [ebp - 0x30]
mov edx, esi
push 1
call fcn.1001e450
push dword [ebp - 0x20]
mov ecx, dword [edi]
mov edx, esi
call fcn.1001dfd0
mov edx, eax
mov ecx, esi
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x30], edx
mov eax, dword [eax + 8]
mov dword [ecx + 0x20], eax
cmp dword [ecx + 0x64], 0xcd
jne 0x1002fb50
test edx, edx
jne 0x1002fb50
mov eax, dword [0x1013cd38]
mov edx, dword [edi]
cmp dword [eax], edx
jne 0x1002fb50
mov eax, dword [0x1013cd40]
mov edx, dword [ebp - 0x20]
shr edx, 0x19
cmp edx, dword [eax]
jne 0x1002fb50
mov ecx, dword [edi]
xor edx, edx
call fcn.10019980
mov ecx, esi
mov edx, ecx
mov ecx, dword [edi]
call fcn.1001f590
mov eax, dword [0x1013cd38]
mov eax, dword [eax]
cmp eax, dword [edi]
jne 0x1002fb8a
mov eax, dword [ebp - 0x30]
test eax, eax
jne 0x1002fb7c
mov eax, dword [ebp - 0x20]
test eax, 0x1000000
je 0x1002fb9d
mov dword [ebp - 0x24], 0xffffffff
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x24]
xor ecx, ecx
push eax
call fcn.1001c730
mov edx, dword [edi]
mov ecx, esi
push 0
push dword [edx + 0x28]
mov edx, dword [edx + 4]
call fcn.10017520
jmp 0x1002fbbf
test eax, 0x2000000
mov ecx, 0xffffffff
mov eax, dword [ebp - 0x18]
cmovne eax, ecx
jmp 0x1002fb7f
push 0xffffffffffffffff
lea ecx, [ebp - 0x24]
call fcn.10017610
mov esi, dword [ebp - 0x24]
mov dword [ebp - 0x1c], esi
test esi, esi
je 0x1002fbed
test byte [esi + 0x24], 1
jne 0x1002fbed
push 0
mov edx, 1
mov ecx, esi
call fcn.100174e0
or dword [esi + 0x24], 1
mov eax, dword [esi + 0x74]
test eax, 0xffffff
je 0x1002fbed
or eax, 0x80000000
mov dword [esi + 0x74], eax
cmp byte [0x10175fe1], 0
je 0x1002fc09
cmp dword [esi + 0x70], 0
jne 0x1002fc09
mov eax, dword [ebp - 0x28]
push 0
push dword [eax + 0x10]
mov edx, dword [eax + 0xc]
jmp 0x1002fc13
push 0
push dword [esi + 0x70]
mov edx, 8
mov ecx, esi
call fcn.10021280
mov eax, dword [edi + 0x20]
mov esi, dword [edi]
mov eax, dword [eax + 4]
mov dword [ebp - 0x28], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x24], eax
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
call dword [0x1012113c]
mov ecx, dword [esi + 4]
mov edx, eax
push 1
call fcn.10072ec0
mov esi, dword [ebp - 0x1c]
mov ecx, eax
mov eax, dword [edi]
mov edx, ecx
push 0
push 0
mov dword [ebp - 0x20], ecx
mov ecx, esi
push dword [eax + 0x28]
call fcn.10072630
mov eax, dword [edi + 0x20]
mov eax, dword [eax + 4]
mov dword [ebp - 0x28], eax
mov eax, dword [edi]
mov eax, dword [eax + 4]
mov dword [ebp - 0x24], eax
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
call dword [0x1012113c]
cmp eax, 6
jge 0x1002fc82
mov dword [esi + 0x1c], eax
mov edx, dword [ebp - 0x10]
mov ecx, esi
push edx
mov edx, 1
call fcn.10017740
push dword [edi + 0x20]
mov edx, dword [ebp - 8]
mov ecx, 3
push dword [edi + 4]
call fcn.10017350
push 0
mov edx, eax
mov ecx, esi
call fcn.10017800
test dword [edi + 0x14], 0x100
mov ecx, esi
push 0
push 1
je 0x1002fcf4
mov edx, dword [edi + 0x20]
push dword [edx + 0x28]
mov edx, dword [edx + 4]
call fcn.100177a0
mov eax, dword [edi + 0x20]
mov ecx, esi
mov edx, dword [ebp - 0x20]
push fcn.10016c60
push 0x20
push 0
push 0
push dword [eax + 4]
call fcn.10071700
mov ecx, dword [edi + 0x20]
dec eax
mov dword [ebp - 0x10], eax
mov eax, dword [ecx + 4]
jmp 0x1002fd0c
mov eax, dword [edi + 0x20]
mov edx, dword [edi + 0x24]
push dword [eax + 0x28]
call fcn.100177a0
mov eax, dword [edi + 0x24]
mov dword [ebp - 0x10], 0
cmp byte [ebp - 1], 0
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x20], eax
jne 0x1002fd5a
cmp edx, dword [0x1013d068]
je 0x1002fd5a
cmp dword [ebp - 0xc], 0x12
je 0x1002fd32
mov dword [ebp - 0x28], esi
mov eax, dword [ebp - 0x28]
call dword [0x10121248]
push dword [edi + 0x20]
mov edx, dword [ebp - 8]
mov ecx, 4
push dword [edi + 4]
call fcn.10017350
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 8]
push edx
mov edx, eax
call fcn.10017800
xor edx, edx
jmp 0x1002ff15
test dword [edi + 0x14], 0x40000
jne 0x1002ff12
mov ecx, dword [0x1013d084]
mov eax, 0xa
cmp ecx, 0xffffffff
cmovne eax, ecx
cmp byte [ebp - 1], 0
je 0x1002fdaf
cmp edx, 5
jne 0x1002fd88
lea eax, [edx - 3]
jmp 0x1002fd97
mov eax, 0x1f
cmp edx, 3
je 0x1002fd97
mov eax, 0x1d
mov edx, dword [ebp - 0x2c]
cmp ecx, 0xffffffff
push 0xffffffffffffffff
cmovne eax, ecx
mov ecx, esi
mov dword [ebp - 0x10], eax
call fcn.10017d30
mov eax, dword [ebp - 0x10]
or eax, 0x5000000
mov ecx, esi
push 0xffffffffffffffff
mov edx, eax
mov dword [ebp - 0x10], eax
call fcn.10017d30
push dword [edi + 0x20]
mov edx, dword [ebp - 8]
mov ecx, 4
push dword [edi + 4]
call fcn.10017350
push 0
mov edx, eax
mov ecx, esi
call fcn.10017800
cmp byte [0x10175fe1], 0
je 0x1002fdf7
push 0
mov edx, 0xffff0008
mov ecx, esi
call fcn.10017d60
push 0
xor edx, edx
mov ecx, esi
call fcn.10017d00
mov esi, dword [0x10175fdc]
xor eax, eax
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], esi
mov edx, dword [ebp - 0x10]
lea ecx, [ebp - 0x60]
lea eax, [ecx + eax*4]
push 0xffffffffffffffff
mov ecx, eax
mov dword [ebp - 0x18], eax
call fcn.10017610
cmp eax, 0xffffffff
je 0x1002feb8
mov esi, dword [ebp - 0x18]
mov esi, dword [esi]
test esi, esi
je 0x1002fe64
test byte [esi + 0x24], 1
jne 0x1002fe64
push 0
mov edx, 1
mov ecx, esi
call fcn.100174e0
or dword [esi + 0x24], 1
mov eax, dword [esi + 0x74]
test eax, 0xffffff
je 0x1002fe64
or eax, 0x80000000
mov dword [esi + 0x74], eax
or dword [esi + 0x24], 0x20000000
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
push 0
push 0
push dword [edi + 0x28]
push 1
call fcn.10072ec0
mov edx, eax
mov ecx, esi
call fcn.10072630
xor eax, eax
cmp dword [ebp - 0x28], eax
jne 0x1002fe9d
cmp dword [ebp - 0x14], 3
sete al
lea eax, [eax*2 + 2]
push eax
mov edx, 1
mov ecx, esi
call fcn.10017740
push 0
xor edx, edx
mov ecx, esi
call fcn.10017d00
mov esi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
inc esi
inc eax
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x28], eax
cmp esi, dword [0x1013d088]
jl 0x1002fe13
mov edi, dword [ebp - 0x38]
xor edx, edx
mov esi, dword [ebp - 0x1c]
jmp 0x1002ff15
test dword [edi + 0x14], 0x100
jne 0x1002fd32
mov ecx, dword [edi + 0x20]
mov al, byte [ecx + 0x23]
and al, 0xf
cmp al, 1
jne 0x1002fd32
test byte [ecx + 0x44], 3
jne 0x1002fd32
mov edx, dword [ebp - 0x10]
push edx
mov edx, 0xd
call fcn.10017cd0
xor edx, edx
jmp 0x1002ff15
mov edx, dword [ebp - 0x10]
push edx
mov edx, dword [ebp - 0xc]
mov ecx, edi
call fcn.10033010
test dword [edi + 0x14], 0x100
jne 0x1002ff2f
push 0xffffffffffffffff
push 3
jmp 0x1002ff39
test byte [edi + 0x30], 0x80
jne 0x1002ff43
push 0xffffffffffffffff
push 4
mov ecx, dword [edi + 0x20]
mov edx, edi
call fcn.10017160
test esi, esi
je 0x1002ff7a
cmp byte [ebp - 1], 0
jne 0x1002ff6c
mov eax, dword [ebp - 0x14]
cmp eax, dword [0x1013d068]
je 0x1002ff6c
cmp dword [ebp - 0xc], 0x12
jne 0x1002ff7a
mov edx, dword [ebp - 0x2c]
mov ecx, esi
push 0xffffffffffffffff
call fcn.10017d30
jmp 0x1002ff7a
push 0xffffffffffffffff
mov edx, 4
mov ecx, esi
call fcn.10017720
xor eax, eax
mov dword [ebp - 0x2c], eax
nop
mov eax, dword [ebp + eax*4 - 0x60]
test eax, eax
je 0x1002ffa0
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
call dword [0x10121248]
mov eax, dword [ebp - 0x2c]
inc eax
mov dword [ebp - 0x2c], eax
cmp eax, 6
jb 0x1002ff80
test byte [edi + 0x14], 0x83
jne 0x1002fffb
cmp dword [ebp - 0xc], 0x12
jne 0x1002ffed
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x1002ffd3
mov ecx, dword [eax + 0x64]
lea edx, [ebp - 0x38]
call fcn.1003bde0
mov eax, dword [ebp - 0x38]
mov edx, dword [eax + 0x24]
test edx, edx
jle 0x1002ffd3
mov ecx, dword [edi]
push 0xffffffffffffffff
call fcn.10017d90
jmp 0x1002fffb
mov ecx, dword [edi]
push 0xffffffffffffffff
mov edx, dword [ecx + 0x20]
and edx, 0xfff
or edx, 0x1000000
call fcn.10017d30
jmp 0x1002fffb
mov ecx, dword [edi]
mov edx, 0x2c
push 0xffffffffffffffff
call fcn.10017cd0
call dword [0x1012127c]
cmp eax, 0xffffffff
jne 0x1003006b
push str._nSomething_went_wrong_with_a_ranged_attack_sequence__n
call fcn.10016d10
add esp, 4
test esi, esi
je 0x1003003a
cmp byte [ebp - 1], 0
jne 0x10030029
cmp dword [ebp - 0x14], 6
je 0x10030029
cmp dword [ebp - 0xc], 0x12
je 0x1003003a
mov dword [ebp - 0x38], esi
mov edx, 0
mov eax, dword [ebp - 0x38]
call dword [0x101213d0]
xor esi, esi
nop dword [eax]
mov ecx, dword [ebp + esi*4 - 0x60]
test ecx, ecx
je 0x10030059
mov dword [ebp - 0x38], ecx
mov edx, 0
mov eax, dword [ebp - 0x38]
call dword [0x101213d0]
inc esi
cmp esi, 6
jb 0x10030040
or eax, 0xffffffff
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov ecx, edi
call fcn.10032eb0
pop edi
xor eax, eax
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret