Function at 0x47dec0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xd4
push ebx
push esi
push edi
mov esi, ecx
mov edi, edx
push 0
push 0
lea ecx, [esp + 0x4c]
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], esi
call fcn.0047fc70
test edi, edi
mov dword [esp + 0x44], vtable.DynamicVectorClass_struct_DamageGroup__.0
mov dword [esp + 0x58], 0xa
mov dword [esp + 0x54], 0
je 0x47f0ba
mov eax, dword [0xa255a0]
test byte [eax], 0x20
jne 0x47f0ba
mov ebx, dword [ebp + 0xc]
test ebx, ebx
je 0x47f0ba
fld dword [ebx + 0x124]
fmul dword [0x7860ac]
call fcn.0076a6b0
mov dword [esp + 0x40], eax
mov eax, dword [esi]
cdq
and edx, 0xff
add eax, edx
sar eax, 8
mov word [esp + 0x1c], ax
mov eax, dword [esi + 4]
cdq
and edx, 0xff
add eax, edx
lea edx, [esp + 0x14]
sar eax, 8
mov word [esp + 0x1e], ax
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x14], ecx
push edx
mov ecx, 0x81a800
call fcn.005453b0
fld dword [ebx + 0x124]
fcomp dword [0x788d80]
mov edi, eax
mov byte [esp + 0x13], 0
mov dword [esp + 0x38], edi
mov byte [esp + 0x23], 0
mov byte [esp + 0x1b], 0
mov byte [esp + 0x22], 1
fnstsw ax
test ah, 0x41
jne 0x47dfa6
mov byte [esp + 0x22], 0
movsx ecx, word [esp + 0x16]
movsx eax, word [esp + 0x14]
shl ecx, 8
shl eax, 8
add ecx, 0x80
lea edx, [esp + 0x8c]
add eax, 0x80
mov dword [esp + 0x90], ecx
push edx
mov ecx, 0x81a800
mov dword [esp + 0x90], eax
mov dword [esp + 0x98], 0
call fcn.00556f20
cmp eax, dword [esi + 8]
jge 0x47e186
mov eax, dword [ebp + 0xc]
fld dword [eax + 0x124]
call fcn.0076a6b0
push eax
push edi
mov ecx, 0x8221c0
call fcn.004128a0
mov ecx, 0x8221c0
call fcn.004134e0
mov ebx, eax
test ebx, ebx
je 0x47e186
mov al, byte [ebx + 0x7d]
test al, al
je 0x47e16e
mov al, byte [ebx + 0x74]
test al, al
je 0x47e16e
mov eax, dword [ebx + 0x6c]
test eax, eax
jle 0x47e16e
lea edi, [ebx + 0x88]
mov edx, edi
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x88], edx
mov edx, dword [esi + 8]
sub edx, dword [esp + 0x88]
push edx
mov edx, dword [esi + 4]
sub edx, ecx
mov ecx, dword [esi]
sub ecx, eax
push edx
push ecx
lea ecx, [esp + 0x80]
call fcn.0041b630
mov edx, dword [eax]
mov dword [esp + 0x8c], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x90], ecx
lea ecx, [esp + 0x8c]
mov edx, dword [eax + 8]
mov dword [esp + 0x94], edx
call fcn.0041b780
cmp eax, dword [esp + 0x40]
jg 0x47e16e
mov cl, byte [esp + 0x22]
test cl, cl
je 0x47e0d0
cmp eax, 0x55
jge 0x47e0d0
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x32c]
test al, al
je 0x47e0d0
mov byte [esp + 0x1b], 1
push 8
call fcn.0076d5a7
mov dword [esp + 0x20], eax
mov dword [eax], ebx
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov edi, dword [edi + 8]
mov edx, dword [esi + 8]
add esp, 4
sub edx, edi
push edx
mov edx, dword [esi + 4]
sub edx, ecx
mov ecx, dword [esi]
sub ecx, eax
push edx
push ecx
lea ecx, [esp + 0x68]
call fcn.0041b630
mov edx, dword [eax]
mov dword [esp + 0x68], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x6c], ecx
lea ecx, [esp + 0x68]
mov edx, dword [eax + 8]
mov dword [esp + 0x70], edx
call fcn.0041b780
mov ecx, dword [esp + 0x1c]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x4c]
cmp dword [esp + 0x54], eax
jl 0x47e158
mov cl, byte [esp + 0x51]
test cl, cl
jne 0x47e13c
test eax, eax
jne 0x47e16e
mov ecx, dword [esp + 0x58]
test ecx, ecx
jle 0x47e16e
mov edx, dword [esp + 0x44]
add eax, ecx
push 0
push eax
lea ecx, [esp + 0x4c]
call dword [edx + 8]
test al, al
je 0x47e16e
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x1c]
mov eax, ecx
inc ecx
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x48]
mov dword [ecx + eax*4], edx
mov ecx, 0x8221c0
call fcn.004134e0
mov ebx, eax
test ebx, ebx
jne 0x47e023
mov edi, dword [esp + 0x38]
mov eax, dword [edi + 0x140]
test ah, 1
je 0x47e1b6
push esi
mov ecx, 0x81a800
call fcn.00556f20
mov ecx, eax
mov eax, dword [0x838ff8]
cdq
sub eax, edx
sar eax, 1
add ecx, eax
mov eax, dword [esi + 8]
cmp eax, ecx
jle 0x47e1b6
mov byte [esp + 0x13], 1
mov edx, dword [ebp + 0xc]
fld dword [edx + 0x124]
fadd qword [0x788d78]
call fcn.0076a6b0
mov ecx, dword [eax*4 + 0x7908f0]
mov dword [esp + 0x3c], eax
test ecx, ecx
mov dword [esp + 0x28], 0
jle 0x47e5ca
mov eax, dword [esp + 0x28]
mov cx, word [esp + 0x14]
add cx, word [eax*4 + 0xa56e48]
mov dx, word [eax*4 + 0xa56e4a]
add dx, word [esp + 0x16]
mov word [esp + 0x1c], cx
lea ecx, [esp + 0xac]
mov word [esp + 0x1e], dx
mov eax, dword [esp + 0x1c]
push ecx
mov ecx, 0x81a800
mov dword [esp + 0xb0], eax
call fcn.005453b0
mov ebx, eax
mov dword [esp + 0x38], ebx
mov eax, dword [ebx + 0x44]
cmp eax, 0xffffffff
je 0x47e2d9
mov edx, dword [0xa1e0fc]
mov edi, dword [edx + eax*4]
mov al, byte [edi + 0x281]
test al, al
je 0x47e288
mov al, byte [edi + 0x279]
test al, al
je 0x47e266
mov eax, dword [ebp + 0xc]
mov cl, byte [eax + 0x147]
test cl, cl
je 0x47e288
mov al, byte [ebp + 0x10]
test al, al
je 0x47e288
mov eax, 0x66666667
imul dword [esp + 0x2c]
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov ecx, ebx
push edx
call fcn.004759b0
mov al, byte [edi + 0x278]
test al, al
je 0x47e2cc
mov eax, dword [ebp + 0xc]
mov cl, byte [eax + 0x145]
test cl, cl
je 0x47e2a3
push 0xffffffffffffffff
jmp 0x47e2c5
mov cl, byte [eax + 0x144]
test cl, cl
jne 0x47e2c0
mov cl, byte [eax + 0x146]
test cl, cl
je 0x47e2cc
cmp dword [edi + 0x9c], 6
jne 0x47e2cc
mov edx, dword [esp + 0x2c]
push edx
mov ecx, ebx
call fcn.00475be0
cmp dword [ebx + 0x44], 0xffffffff
jne 0x47e2d9
mov ecx, ebx
call fcn.006cd0a0
mov al, byte [esp + 0x13]
test al, al
je 0x47e2e9
mov edi, dword [ebx + 0xe8]
jmp 0x47e2ef
mov edi, dword [ebx + 0xe4]
test edi, edi
je 0x47e5ae
cmp edi, dword [ebp + 8]
je 0x47e5a3
mov al, byte [edi + 0x7d]
test al, al
je 0x47e5a3
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x2c]
cmp eax, 1
jne 0x47e356
mov ecx, dword [0xa255a0]
mov eax, dword [ecx]
test ah, 8
je 0x47e356
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x84]
mov ebx, dword [0x821b68]
xor ecx, ecx
mov edx, dword [ebx + 0x9fc]
test edx, edx
jle 0x47e356
mov ebx, dword [ebx + 0x9f0]
cmp dword [ebx], eax
je 0x47e5a3
inc ecx
add ebx, 4
cmp ecx, edx
jl 0x47e346
mov al, byte [esp + 0x22]
test al, al
je 0x47e388
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x47e388
test edi, edi
je 0x47e388
mov al, byte [edi + 0x14]
and al, 1
mov byte [esp + 0x37], al
je 0x47e388
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x32c]
test al, al
je 0x47e388
mov byte [esp + 0x1b], 1
push 8
call fcn.0076d5a7
mov ebx, eax
add esp, 4
mov ecx, edi
mov dword [ebx], edi
mov eax, dword [edi]
call dword [eax + 0x2c]
cmp eax, 6
jne 0x47e4da
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
test eax, eax
jne 0x47e474
mov edx, dword [ecx]
lea eax, [esp + 0x8c]
push eax
call dword [edx + 0x48]
mov ecx, dword [esi + 8]
mov edx, dword [eax + 8]
sub ecx, edx
mov edx, dword [0x839008]
lea eax, [edx + edx]
cmp ecx, eax
jle 0x47e468
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0x5c]
push eax
mov edx, dword [ecx]
call dword [edx + 0x48]
mov ecx, dword [esi + 8]
mov edx, dword [eax + 8]
sub ecx, edx
mov edx, dword [esi + 4]
push ecx
mov ecx, dword [eax + 4]
sub edx, ecx
mov ecx, dword [esi]
push edx
mov edx, dword [eax]
sub ecx, edx
push ecx
lea ecx, [esp + 0xa4]
call fcn.0041b630
mov edx, dword [eax]
sub esp, 8
mov dword [esp + 0x70], edx
mov ecx, dword [eax + 4]
fild dword [esp + 0x70]
mov edx, dword [eax + 8]
mov dword [esp + 0x74], ecx
fild dword [esp + 0x74]
mov dword [esp + 0x78], edx
fild dword [esp + 0x78]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fstp qword [esp]
fstp st(0)
fstp st(0)
fstp st(0)
call fcn.004b9f30
add esp, 8
call fcn.0076a6b0
mov ecx, dword [0x839008]
lea edx, [ecx + ecx]
sub eax, edx
jmp 0x47e55a
mov dword [ebx + 4], 0
jmp 0x47e55d
mov eax, dword [ecx]
lea edx, [esp + 0xb0]
push edx
call dword [eax + 0x48]
mov ecx, dword [esi + 8]
mov edx, dword [eax + 8]
sub ecx, edx
mov edx, dword [esi + 4]
push ecx
mov ecx, dword [eax + 4]
sub edx, ecx
mov ecx, dword [esi]
push edx
mov edx, dword [eax]
sub ecx, edx
push ecx
lea ecx, [esp + 0xe0]
call fcn.0041b630
mov edx, dword [eax]
mov dword [esp + 0x80], edx
mov ecx, dword [eax + 4]
fild dword [esp + 0x80]
mov edx, dword [eax + 8]
mov dword [esp + 0x84], ecx
fild dword [esp + 0x84]
mov dword [esp + 0x88], edx
fild dword [esp + 0x88]
jmp 0x47e531
mov eax, dword [edi]
lea ecx, [esp + 0xc8]
push ecx
mov ecx, edi
call dword [eax + 0xa0]
mov edx, dword [esi + 8]
mov ecx, dword [eax + 8]
sub edx, ecx
mov ecx, dword [esi + 4]
push edx
mov edx, dword [eax + 4]
sub ecx, edx
mov edx, dword [esi]
push ecx
mov ecx, dword [eax]
sub edx, ecx
lea ecx, [esp + 0xc4]
push edx
call fcn.0041b630
mov ecx, dword [eax]
mov dword [esp + 0x74], ecx
mov edx, dword [eax + 4]
fild dword [esp + 0x74]
mov eax, dword [eax + 8]
mov dword [esp + 0x78], edx
fild dword [esp + 0x78]
mov dword [esp + 0x7c], eax
fild dword [esp + 0x7c]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
sub esp, 8
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fstp qword [esp]
fstp st(0)
fstp st(0)
fstp st(0)
call fcn.004b9f30
add esp, 8
call fcn.0076a6b0
mov dword [ebx + 4], eax
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x54]
cmp eax, ecx
jl 0x47e591
mov al, byte [esp + 0x51]
test al, al
jne 0x47e575
test ecx, ecx
jne 0x47e5a3
mov eax, dword [esp + 0x58]
test eax, eax
jle 0x47e5a3
mov edx, dword [esp + 0x44]
add ecx, eax
push 0
push ecx
lea ecx, [esp + 0x4c]
call dword [edx + 8]
test al, al
je 0x47e5a3
mov ecx, dword [esp + 0x54]
mov eax, ecx
inc ecx
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x48]
mov dword [ecx + eax*4], ebx
mov edi, dword [edi + 0x30]
test edi, edi
jne 0x47e2f7
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x28]
inc eax
mov ecx, dword [edx*4 + 0x7908f0]
mov dword [esp + 0x28], eax
cmp eax, ecx
jl 0x47e1e5
mov eax, dword [esp + 0x54]
xor edi, edi
test eax, eax
jle 0x47e6a6
mov eax, dword [esp + 0x48]
mov eax, dword [eax + edi*4]
mov esi, dword [eax]
mov ebx, dword [eax + 4]
mov al, byte [esi + 0x7d]
test al, al
je 0x47e699
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x2c]
cmp eax, 6
jne 0x47e60f
mov eax, dword [esi + 0x418]
mov cl, byte [eax + 0x1385]
test cl, cl
jne 0x47e699
mov al, byte [esp + 0x1b]
test al, al
je 0x47e635
test esi, esi
je 0x47e699
mov cl, byte [esi + 0x14]
and cl, 1
mov byte [esp + 0x37], cl
je 0x47e699
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x32c]
test al, al
je 0x47e699
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x2c]
cmp eax, 2
jne 0x47e655
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x54]
test al, al
je 0x47e655
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
mov ebx, eax
mov eax, dword [esi + 0x6c]
test eax, eax
jle 0x47e699
mov al, byte [esi + 0x74]
test al, al
je 0x47e699
mov al, byte [esi + 0x76]
test al, al
jne 0x47e699
cmp ebx, dword [esp + 0x40]
jg 0x47e699
mov eax, dword [esp + 0x2c]
mov ecx, dword [ebp + 0xc]
mov edx, dword [esi]
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 8]
push 0
push 0
push eax
push ecx
lea eax, [esp + 0x4c]
push ebx
push eax
mov ecx, esi
call dword [edx + 0x158]
mov byte [esp + 0x23], 1
mov eax, dword [esp + 0x54]
inc edi
cmp edi, eax
jl 0x47e5d8
xor esi, esi
test eax, eax
jle 0x47e6c5
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx + esi*4]
push edx
call fcn.0076d2d5
mov eax, dword [esp + 0x58]
add esp, 4
inc esi
cmp esi, eax
jl 0x47e6ac
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x4c]
lea ecx, [esp + 0x44]
call dword [eax + 0xc]
mov edx, dword [esp + 0x44]
lea ecx, [esp + 0x44]
push 0
push esi
call dword [edx + 8]
mov al, byte [esp + 0x1b]
test al, al
je 0x47e719
mov eax, dword [esp + 0x48]
mov dword [esp + 0x44], vtable.VectorClass_struct_DamageGroup__.0
test eax, eax
je 0x47e70b
mov cl, byte [esp + 0x51]
test cl, cl
je 0x47e70b
push eax
call fcn.0076d2d5
add esp, 4
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
fild dword [esp + 0x2c]
fmul qword [0x787518]
fcom qword [0x7879c0]
fnstsw ax
test ah, 1
je 0x47e739
fstp qword [esp + 0x98]
jmp 0x47e751
fstp st(0)
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0x40100000
mov eax, dword [ebp + 0xc]
mov cl, byte [eax + 0x14d]
test cl, cl
je 0x47ea5d
fld qword [esp + 0x98]
fcomp qword [0x788d50]
fnstsw ax
test ah, 0x41
jne 0x47ea5d
movsx eax, word [esp + 0x14]
lea edi, [eax - 3]
add eax, 3
cmp edi, eax
mov dword [esp + 0x1c], edi
jg 0x47ea5d
mov cx, word [esp + 0x16]
movsx eax, cx
lea esi, [eax - 3]
add eax, 3
cmp esi, eax
mov dword [esp + 0x40], esi
jg 0x47ea48
mov al, byte [esp + 0x13]
test al, al
mov eax, edi
je 0x47e7e1
lea ecx, [esp + 0xa8]
mov word [esp + 0xa8], ax
mov eax, esi
push ecx
mov ecx, 0x81a800
mov word [esp + 0xae], ax
call fcn.005453b0
mov eax, dword [eax + 0xe8]
jmp 0x47e802
mov word [esp + 0x3c], ax
lea edx, [esp + 0x3c]
mov eax, esi
push edx
mov ecx, 0x81a800
mov word [esp + 0x42], ax
call fcn.005453b0
mov eax, dword [eax + 0xe4]
test eax, eax
mov dword [esp + 0x28], eax
je 0x47ea30
jmp 0x47e814
mov eax, dword [esp + 0x28]
mov ecx, eax
call fcn.0040dc20
mov esi, eax
test esi, esi
je 0x47ea15
mov eax, dword [esp + 0x1c]
cmp ax, word [esp + 0x14]
jne 0x47e9fb
mov eax, dword [esp + 0x40]
cmp ax, word [esp + 0x16]
jne 0x47e9fb
mov eax, dword [ebp + 8]
test eax, eax
je 0x47e9fb
mov edx, dword [ebp + 8]
lea eax, [esi + 0x88]
add edx, 0x88
sub esp, 8
mov edi, dword [eax]
mov dword [esp + 0x7c], edi
mov ebx, dword [eax + 4]
mov dword [esp + 0x80], ebx
mov ecx, dword [eax + 8]
mov eax, dword [edx]
sub eax, edi
mov dword [esp + 0x84], ecx
mov ecx, dword [edx + 4]
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
mov edx, dword [edx + 8]
mov edi, dword [esp + 0x84]
sub ecx, ebx
sub edx, edi
fstp dword [esp + 0x64]
mov dword [esp + 0x2c], ecx
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], edx
fstp dword [esp + 0x68]
fild dword [esp + 0x2c]
fstp dword [esp + 0x6c]
fld dword [esp + 0x64]
fmul dword [esp + 0x64]
fld dword [esp + 0x68]
fmul dword [esp + 0x68]
faddp st(1)
fld dword [esp + 0x6c]
fmul dword [esp + 0x6c]
faddp st(1)
fstp qword [esp]
call fcn.004b9f30
fcom qword [0x786610]
add esp, 8
fnstsw ax
test ah, 0x40
jne 0x47e931
fld dword [esp + 0x5c]
fdiv st(1)
fstp dword [esp + 0x8c]
fld dword [esp + 0x60]
fdiv st(1)
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x80], eax
fstp dword [esp + 0x90]
mov ecx, dword [esp + 0x90]
fdivr dword [esp + 0x64]
mov dword [esp + 0x84], ecx
fstp dword [esp + 0x94]
mov edx, dword [esp + 0x94]
jmp 0x47e94d
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
mov dword [esp + 0x80], eax
fstp st(0)
mov dword [esp + 0x84], ecx
fld dword [esp + 0x80]
fmul dword [0x7874c8]
mov dword [esp + 0x88], edx
fstp dword [esp + 0x68]
fld dword [esp + 0x84]
fmul dword [0x7874c8]
mov eax, dword [esp + 0x68]
mov dword [esp + 0x5c], eax
fstp dword [esp + 0x6c]
fld dword [esp + 0x88]
fmul dword [0x7874c8]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x60], ecx
fstp dword [esp + 0x70]
mov edx, dword [esp + 0x70]
fld dword [esp + 0x68]
mov dword [esp + 0x64], edx
call fcn.0076a6b0
fld dword [esp + 0x6c]
mov edi, eax
call fcn.0076a6b0
fld dword [esp + 0x70]
mov ebx, eax
call fcn.0076a6b0
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x74]
fld qword [esp + 0x98]
add ecx, ebx
mov ebx, dword [esp + 0x7c]
push ecx
mov dword [esp + 0x7c], ecx
lea ecx, [esp + 0x78]
add ebx, eax
fstp dword [esp]
mov eax, dword [esi]
add edx, edi
push ecx
mov ecx, esi
mov dword [esp + 0x7c], edx
mov dword [esp + 0x84], ebx
call dword [eax + 0x37c]
jmp 0x47ea15
fld qword [esp + 0x98]
mov eax, dword [esp + 0x30]
mov edx, dword [esi]
push ecx
mov ecx, esi
fstp dword [esp]
push eax
call dword [edx + 0x37c]
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x30]
test eax, eax
mov dword [esp + 0x28], eax
jne 0x47e810
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x1c]
mov cx, word [esp + 0x16]
inc esi
movsx edx, cx
add edx, 3
mov dword [esp + 0x40], esi
cmp esi, edx
jle 0x47e7ab
movsx eax, word [esp + 0x14]
inc edi
add eax, 3
cmp edi, eax
mov dword [esp + 0x1c], edi
jle 0x47e796
mov ecx, dword [0x821b68]
mov eax, dword [ebp + 0xc]
mov edx, dword [ecx + 0xca8]
cmp eax, edx
mov edx, dword [0xa255a0]
sete byte [esp + 0x13]
mov ecx, dword [edx]
test ch, 0x80
je 0x47eebf
mov cl, byte [eax + 0x144]
test cl, cl
je 0x47eebf
mov edi, dword [esp + 0x38]
mov ebx, dword [0xa3a890]
mov dword [esp + 0x1c], 0
mov esi, dword [edi + 0x38]
mov eax, dword [edi + 0x140]
sub esi, ebx
inc esi
test ah, 1
je 0x47eaf4
test al, 0x80
je 0x47eac6
mov eax, dword [edi + 0x24]
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], eax
jmp 0x47ead4
mov edx, dword [edi + 0x2c]
lea ecx, [esp + 0x24]
mov eax, dword [edx + 0x24]
mov dword [esp + 0x24], eax
push ecx
mov ecx, 0x81a800
call fcn.005453b0
test eax, eax
mov dword [esp + 0x1c], eax
je 0x47eaf4
mov eax, dword [eax + 0x44]
cmp eax, 0x18
je 0x47eb38
cmp eax, 0x19
je 0x47eb38
mov ebx, dword [0xa54794]
cmp esi, ebx
je 0x47eb3e
lea edx, [ebx + 1]
cmp esi, edx
je 0x47eb3e
lea eax, [ebx + 2]
cmp esi, eax
je 0x47eb3e
lea ecx, [ebx + 3]
cmp esi, ecx
je 0x47eb3e
mov edx, dword [0xa3aa90]
cmp esi, edx
je 0x47eb44
lea eax, [edx + 1]
cmp esi, eax
je 0x47eb44
lea ecx, [edx + 2]
cmp esi, ecx
je 0x47eb44
lea eax, [edx + 3]
cmp esi, eax
jne 0x47ec72
jmp 0x47eb44
mov ebx, dword [0xa54794]
mov edx, dword [0xa3aa90]
mov eax, dword [edi + 0x140]
test ah, 1
je 0x47eb8f
movsx eax, byte [edi + 0x11b]
mov ecx, dword [esp + 0x30]
lea esi, [eax + 1]
imul esi, dword [0x839008]
add esi, dword [0x838ff8]
mov ecx, dword [ecx + 8]
cmp ecx, esi
jg 0x47ec72
add eax, 0xfffffffe
mov esi, dword [0x838ff8]
imul eax, dword [0x839008]
add eax, esi
cmp ecx, eax
jle 0x47ec72
mov ecx, dword [ebp + 0xc]
mov al, byte [ecx + 0x144]
test al, al
je 0x47ec72
mov eax, dword [0x821b68]
cmp ecx, dword [eax + 0xca8]
je 0x47ebd1
mov eax, dword [eax + 0x13a8]
mov edx, dword [0xa255a0]
push eax
push 1
lea ecx, [edx + 0x218]
call fcn.0062fcf0
cmp eax, dword [esp + 0x2c]
jge 0x47ec66
lea eax, [esp + 0x14]
mov ecx, 0x81a800
push eax
call fcn.00565d30
test al, al
mov esi, 3
jne 0x47ec0f
mov cl, byte [esp + 0x13]
test cl, cl
je 0x47ec0b
test esi, esi
jle 0x47ec0b
lea ecx, [esp + 0x14]
push ecx
mov ecx, 0x81a800
call fcn.00565d30
dec esi
test al, al
je 0x47ebe9
jmp 0x47ec0f
test al, al
je 0x47ec16
mov ecx, edi
call fcn.006cd0a0
mov eax, dword [esp + 0x30]
mov ecx, dword [0x821c8c]
lea edx, [esp + 0x98]
push edx
push eax
call fcn.00697ec0
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
push 0
sub esp, 0x10
lea eax, [ecx - 0x80]
mov ebx, esp
lea ecx, [edx - 0x80]
mov edx, 0x100
mov dword [ebx], eax
mov esi, edx
mov dword [ebx + 4], ecx
mov ecx, dword [0x821c8c]
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], esi
call fcn.00698510
mov ebx, dword [0xa54794]
mov edx, dword [0xa3aa90]
mov eax, dword [edi + 0x38]
mov esi, dword [0xa54780]
mov ecx, dword [esp + 0x1c]
sub eax, esi
inc eax
test ecx, ecx
je 0x47ec99
mov ecx, dword [ecx + 0x44]
cmp ecx, 0xed
je 0x47eccf
cmp ecx, 0xee
je 0x47eccf
cmp eax, ebx
je 0x47eccf
lea ecx, [ebx + 1]
cmp eax, ecx
je 0x47eccf
lea ecx, [ebx + 2]
cmp eax, ecx
je 0x47eccf
add ebx, 3
cmp eax, ebx
je 0x47eccf
cmp eax, edx
je 0x47eccf
lea ecx, [edx + 1]
cmp eax, ecx
je 0x47eccf
lea ecx, [edx + 2]
cmp eax, ecx
je 0x47eccf
add edx, 3
cmp eax, edx
jne 0x47edea
mov eax, dword [edi + 0x140]
test ah, 1
je 0x47ed14
movsx eax, byte [edi + 0x11b]
mov esi, dword [0x839008]
mov edx, dword [esp + 0x30]
lea ebx, [eax + 1]
mov ecx, dword [edx + 8]
imul ebx, esi
mov edx, dword [0x838ff8]
add ebx, edx
cmp ecx, ebx
jg 0x47edea
add eax, 0xfffffffe
imul eax, esi
add eax, edx
cmp ecx, eax
jle 0x47edea
mov ecx, dword [ebp + 0xc]
mov al, byte [ecx + 0x144]
test al, al
je 0x47edea
mov eax, dword [0x821b68]
cmp ecx, dword [eax + 0xca8]
je 0x47ed55
mov eax, dword [eax + 0x13a8]
push eax
mov eax, dword [0xa255a0]
push 1
lea ecx, [eax + 0x218]
call fcn.0062fcf0
cmp eax, dword [esp + 0x2c]
jge 0x47edea
lea ecx, [esp + 0x14]
push ecx
mov ecx, 0x81a800
call fcn.00565d30
test al, al
mov esi, 3
jne 0x47ed93
mov cl, byte [esp + 0x13]
test cl, cl
je 0x47ed8f
test esi, esi
jle 0x47ed8f
lea edx, [esp + 0x14]
mov ecx, 0x81a800
push edx
call fcn.00565d30
dec esi
test al, al
je 0x47ed6d
jmp 0x47ed93
test al, al
je 0x47ed9a
mov ecx, edi
call fcn.006cd0a0
mov ecx, dword [esp + 0x30]
lea eax, [esp + 0x98]
push eax
push ecx
mov ecx, dword [0x821c8c]
call fcn.00697ec0
mov edx, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
push 0
add ecx, 0xffffffa0
sub esp, 0x10
lea eax, [edx - 0x60]
mov ebx, esp
mov edx, 0xc0
mov esi, edx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov ecx, dword [0x821c8c]
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], esi
call fcn.00698510
mov eax, dword [edi + 0x44]
cmp eax, 0x4a
jl 0x47ee51
cmp eax, 0x63
jg 0x47ee51
mov eax, dword [0x821b68]
mov edx, dword [ebp + 0xc]
cmp edx, dword [eax + 0xca8]
je 0x47ee26
mov eax, dword [eax + 0x13a8]
push eax
mov eax, dword [0xa255a0]
push 1
lea ecx, [eax + 0x218]
call fcn.0062fcf0
cmp eax, dword [esp + 0x2c]
jge 0x47ee51
lea ecx, [esp + 0x14]
push ecx
mov ecx, 0x81a800
call fcn.0055a940
lea edx, [esp + 0x14]
mov ecx, 0x81a800
push edx
mov bl, al
call fcn.0055a940
test bl, bl
je 0x47ee51
mov ecx, edi
call fcn.006cd0a0
mov eax, dword [edi + 0x44]
cmp eax, 0xcd
jl 0x47eec3
cmp eax, 0xe6
jg 0x47eec3
mov eax, dword [0x821b68]
mov ecx, dword [ebp + 0xc]
cmp ecx, dword [eax + 0xca8]
je 0x47ee92
mov eax, dword [eax + 0x13a8]
mov edx, dword [0xa255a0]
push eax
push 1
lea ecx, [edx + 0x218]
call fcn.0062fcf0
cmp eax, dword [esp + 0x2c]
jge 0x47eec3
lea eax, [esp + 0x14]
mov ecx, 0x81a800
push eax
call fcn.0055ba50
lea ecx, [esp + 0x14]
mov bl, al
push ecx
mov ecx, 0x81a800
call fcn.0055ba50
test bl, bl
je 0x47eec3
mov ecx, edi
call fcn.006cd0a0
jmp 0x47eec3
mov edi, dword [esp + 0x38]
mov eax, dword [edi + 0x44]
cmp eax, 0xffffffff
je 0x47f02a
mov edx, dword [0xa1e0fc]
mov eax, dword [edx + eax*4]
mov cl, byte [eax + 0x280]
test cl, cl
je 0x47f02a
mov ecx, edi
call fcn.0047bc80
mov ecx, edi
mov dword [edi + 0x44], 0xffffffff
push 0xffffffffffffffff
call fcn.00472140
lea esi, [edi + 0x24]
mov ecx, 0x81a800
push esi
call fcn.0054ce60
mov ecx, 0x81a800
push esi
call fcn.00562fe0
mov ecx, edi
call fcn.006cd0a0
push 0x1a8
call fcn.0076d5a7
add esp, 4
test eax, eax
je 0x47ef51
mov ecx, dword [0x821b68]
mov edi, dword [esp + 0x30]
push 0
push 0x600
mov edx, dword [ecx + 0x5c]
push 1
push 0
push edi
push edx
mov ecx, eax
call fcn.00420110
jmp 0x47ef55
mov edi, dword [esp + 0x30]
mov eax, dword [0x821b68]
push 1
mov ecx, dword [eax + 0xc74]
mov edx, dword [eax + 0xc]
push ecx
push 0
mov ecx, edi
call fcn.0047dec0
mov edx, dword [0x821b68]
xor esi, esi
mov eax, dword [edx + 0x70]
test eax, eax
jle 0x47efcd
mov eax, dword [0xa255a0]
push 0x63
push 0
lea ecx, [eax + 0x218]
call fcn.0062fcf0
cmp eax, 0xf
jl 0x47efa5
mov ecx, dword [0x821b68]
inc esi
cmp esi, dword [ecx + 0x70]
jl 0x47ef7e
jmp 0x47efcd
push 0x130
call fcn.0076d5a7
add esp, 4
test eax, eax
je 0x47efcd
mov edx, dword [0x821b68]
push 0
push edi
mov ecx, dword [edx + 0x64]
mov edx, dword [ecx + esi*4]
mov ecx, eax
push edx
call fcn.00701270
mov eax, dword [0xa255a0]
push 0x63
push 0
lea ecx, [eax + 0x218]
call fcn.0062fcf0
cmp eax, 0x19
jge 0x47f02e
push 0xe8
call fcn.0076d5a7
add esp, 4
test eax, eax
je 0x47f01d
mov ecx, dword [0x821b68]
push 0x838fd0
push 0
push 0
mov edx, dword [ecx + 0x7c]
push edi
push edx
mov ecx, eax
call fcn.00602500
mov ecx, eax
push edi
push edi
call fcn.00602c20
jmp 0x47f02e
xor eax, eax
push edi
push edi
mov ecx, eax
call fcn.00602c20
jmp 0x47f02e
mov edi, dword [esp + 0x30]
mov esi, dword [ebp + 0xc]
mov eax, dword [esi + 0x140]
test eax, eax
je 0x47f081
cmp dword [eax + 0x284], 1
jne 0x47f04b
mov eax, dword [0xa28940]
jmp 0x47f078
push 0xe8
call fcn.0076d5a7
add esp, 4
test eax, eax
je 0x47f076
mov ecx, dword [esi + 0x140]
push 0x838fd0
push 0
push 0
push edi
push ecx
mov ecx, eax
call fcn.00602500
jmp 0x47f078
xor eax, eax
push edi
push edi
mov ecx, eax
call fcn.00602c20
mov bl, byte [esp + 0x23]
mov eax, dword [esp + 0x48]
xor edx, edx
mov dword [esp + 0x44], vtable.VectorClass_struct_DamageGroup__.0
test bl, bl
sete dl
test eax, eax
mov esi, edx
je 0x47f0af
mov cl, byte [esp + 0x51]
test cl, cl
je 0x47f0af
push eax
call fcn.0076d2d5
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [esp + 0x48]
mov dword [esp + 0x44], vtable.VectorClass_struct_DamageGroup__.0
test eax, eax
je 0x47f0db
mov cl, byte [esp + 0x51]
test cl, cl
je 0x47f0db
push eax
call fcn.0076d2d5
add esp, 4
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 0xc