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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push 0xffffffffffffffff
push 0x61a7dd
mov eax, dword fs:[0]
push eax
sub esp, 0x32c
mov eax, dword [0x6c4490]
xor eax, esp
mov dword [esp + 0x324], eax
push esi
push edi
mov eax, dword [0x6c4490]
xor eax, esp
push eax
lea eax, [esp + 0x338]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x1c], esi
cmp dword [esi + 0x1b90], 0
je 0x467940
mov eax, dword [esi + 0x1b8c]
mov eax, dword [eax]
movdqu xmm0, xmmword [eax + 8]
movdqa xmmword [esp + 0x114], xmm0
movdqa xmmword [esp + 0xa4], xmm0
movq xmm0, qword [eax + 0x18]
mov eax, dword [esi + 0x1b8c]
movq qword [esp + 0xb4], xmm0
mov edx, dword [eax]
push edx
mov ecx, dword [edx + 4]
mov eax, dword [edx]
mov dword [ecx], eax
mov ecx, dword [edx]
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
dec dword [esi + 0x1b90]
call fcn.004ec310
movdqa xmm0, xmmword [esp + 0x118]
add esp, 4
mov ecx, dword [0x71b1f4]
movd edi, xmm0
psrldq xmm0, 4
movd dword [esp + 0x28], xmm0
mov dword [esp + 0x50], edi
call fcn.0047c3e0
sub esp, 0x10
mov dword [esp + 0x50], eax
movss xmm0, dword [eax + 0x34]
movss dword [esp + 0xc], xmm0
movss xmm0, dword [eax + 0x30]
movss dword [esp + 8], xmm0
movss xmm0, dword [eax + 0x40]
movss dword [esp + 4], xmm0
movss xmm0, dword [eax + 0x3c]
movss dword [esp], xmm0
call fcn.0058f9e0
mov eax, dword [0x71b1e8]
lea ecx, [esi + 0x2d8]
add esp, 0x10
mov dword [esp + 0x24], eax
fstp dword [esp + 0x30]
call fcn.0048e490
lea ecx, [esi + 0x2d8]
movq xmm0, qword [eax]
movq qword [esp + 0x98], xmm0
mov eax, dword [eax + 8]
mov dword [esp + 0xa0], eax
call fcn.00583360
movss xmm0, dword [esp + 0x30]
fadd dword [esp + 0xa0]
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
movss dword [esp + 0xd0], xmm0
movdqa xmm0, xmmword [esp + 0x114]
psrldq xmm0, 8
movd eax, xmm0
fstp dword [esp + 0xa0]
test al, 0xc
jne 0x46790d
mov dword [esp + 0x13c], 0xf
mov dword [esp + 0x138], 0
mov byte [esp + 0x128], 0
mov dword [esp + 0x340], 0
lea ecx, [esp + 0x128]
cmp dword [esp + 0xb0], 0
je 0x467118
push str.damage_
call fcn.0045bc40
mov edx, esi
xor eax, eax
mov ecx, dword [edx + 0x1b88]
test ecx, ecx
setne al
add eax, 0xfd
mov dword [esp + 0x30], eax
xor eax, eax
test ecx, ecx
sete al
mov dword [edx + 0x1b88], eax
jmp 0x467143
cmp dword [esp + 0xb4], 0
jne 0x467131
push str.nontarget_
call fcn.0045bc40
jmp 0x4678f2
push str.target_
call fcn.0045bc40
mov dword [esp + 0x30], 0xfb
xorps xmm0, xmm0
mov dword [esp + 0x34], 0
movlpd qword [esp + 0x44], xmm0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 0x28]
mov byte [esp + 0x340], 1
mov byte [esp + 0x1a], 0
mov byte [esp + 0x1b], 0
test eax, eax
jl 0x4678e9
jg 0x46718c
test edi, edi
je 0x4678e9
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x1c], edx
lea esp, [esp]
test ecx, ecx
jg 0x4678dc
jl 0x4671b3
cmp edx, 0xf
ja 0x4678dc
push 0
push 0xa
push eax
push edi
call fcn.005f8ba0
mov ecx, eax
mov esi, edx
mov dword [esp + 0x44], ecx
mov edi, ecx
shld esi, ecx, 2
mov eax, edx
shl ecx, 2
add edi, ecx
mov ecx, dword [esp + 0x50]
adc eax, esi
mov esi, dword [esp + 0x28]
shld eax, edi, 1
mov dword [esp + 0x28], edx
add edi, edi
sub ecx, edi
mov edi, dword [esp + 0x44]
mov dword [esp + 0x50], edi
sbb esi, eax
lea eax, [esp + 0x224]
push esi
push ecx
push str._d.dds
push eax
call fcn.005e02f6
lea eax, [esp + 0x138]
push eax
lea eax, [esp + 0x154]
push str.d:_ymir_work_effect_affect_damagevalue_
push eax
call fcn.00469ab0
lea ecx, [esp + 0x240]
mov byte [esp + 0x35c], 2
push ecx
push eax
lea eax, [esp + 0xc8]
push eax
call fcn.00469ba0
add esp, 0x28
push eax
lea ecx, [esp + 0x38]
mov byte [esp + 0x344], 3
call fcn.00469250
cmp dword [esp + 0xb8], 0x10
jb 0x46726d
push dword [esp + 0xa4]
call fcn.004ec310
add esp, 4
mov byte [esp + 0x340], 1
cmp dword [esp + 0x154], 0x10
mov dword [esp + 0xb8], 0xf
mov dword [esp + 0xb4], 0
mov byte [esp + 0xa4], 0
jb 0x4672ac
push dword [esp + 0x140]
call fcn.004ec310
add esp, 4
sub esp, 0xc
lea eax, [esp + 0x40]
mov ecx, esp
push eax
call fcn.004691a0
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
push dword [esi*4 + 0x7178e0]
call fcn.00524f30
movss xmm0, dword [esp + 0xa0]
lea eax, [esp + 0x54]
movss xmm1, dword [esp + 0x9c]
sub esp, 0xc
movss xmm2, dword [esp + 0xa4]
mov dword [esp + 0x8c], 0
mov dword [esp + 0x84], 0
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm1
movss dword [esp], xmm2
push eax
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0xa0], 0x3f800000
mov dword [esp + 0x8c], 0x3f800000
mov dword [esp + 0x78], 0x3f800000
mov dword [esp + 0x64], 0x3f800000
movss dword [esp + 0x94], xmm2
movss dword [esp + 0x98], xmm1
movss dword [esp + 0x9c], xmm0
call fcn.004024ef
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0x54]
add eax, 0xac
push ecx
push eax
mov eax, ecx
push eax
call fcn.00401b92
movzx eax, byte [esp + 0x1a]
sub esp, 0xc
mov ecx, eax
shl ecx, 4
sub ecx, eax
lea eax, [esp + 0x1f0]
add ecx, ecx
mov dword [esp + 8], 0
mov dword [esp + 4], 0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x680380]
cvtpd2ps xmm0, xmm0
movss dword [esp], xmm0
push eax
call fcn.004024ef
movss xmm0, dword [esp + 0x214]
lea eax, [esp + 0x54]
xorps xmm0, xmmword [0x6803a0]
push eax
lea eax, [esp + 0x1e8]
movss dword [esp + 0x218], xmm0
push eax
lea eax, [esp + 0xdc]
push eax
call fcn.00401b92
movdqa xmm0, xmmword [esp + 0xd4]
lea ecx, [esp + 0x54]
mov eax, dword [esp + 0x40]
movdqa xmmword [esp + 0x54], xmm0
add eax, 0x6c
movdqa xmm0, xmmword [esp + 0xe4]
movdqa xmmword [esp + 0x64], xmm0
movdqa xmm0, xmmword [esp + 0xf4]
movdqa xmmword [esp + 0x74], xmm0
movdqa xmm0, xmmword [esp + 0x104]
movdqa xmmword [esp + 0x84], xmm0
push ecx
push eax
mov eax, ecx
push eax
call fcn.00401b92
movss xmm0, dword [esp + 0x84]
lea eax, [esp + 0xc8]
mov ecx, dword [esp + 0x24]
push 0
push eax
movss dword [esp + 0x160], xmm0
lea eax, [esp + 0x160]
movss xmm0, dword [esp + 0x90]
push eax
push dword [esi*4 + 0x7178e0]
movss dword [esp + 0x16c], xmm0
movss xmm0, dword [esp + 0x9c]
movss dword [esp + 0x170], xmm0
call fcn.005243d0
push dword [esp + 0x44]
mov esi, dword [esp + 0x38]
lea eax, [esp + 0x27]
push eax
push dword [esp + 0x40]
push esi
call fcn.0046a060
mov edx, dword [esp + 0x2c]
add esp, 0x10
mov ecx, dword [esp + 0x2c]
add edx, 1
mov eax, dword [esp + 0x28]
adc ecx, 0
mov dword [esp + 0x38], esi
inc byte [esp + 0x1a]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x2c], ecx
test eax, eax
jl 0x4678e9
jg 0x46752c
test edi, edi
je 0x4678c8
push 0
push 3
push ecx
push edx
call fcn.005f8ba0
mov ecx, eax
mov esi, edx
shld esi, ecx, 1
add ecx, ecx
add eax, ecx
mov ecx, dword [esp + 0x1c]
adc edx, esi
sub ecx, eax
mov eax, dword [esp + 0x2c]
sbb eax, edx
or ecx, eax
jne 0x4678bc
mov al, byte [esp + 0x1b]
test al, al
je 0x4675e5
lea ecx, [esp + 0x140]
cmp al, 1
jbe 0x4675ac
push str.d:_ymir_work_effect_affect_damagevalue_damage_t.dds
call fcn.0045dcb0
lea eax, [esp + 0x140]
mov byte [esp + 0x340], 4
push eax
lea ecx, [esp + 0x38]
call fcn.00469250
lea ecx, [esp + 0x140]
mov byte [esp + 0x340], 1
call fcn.0045bdb0
jmp 0x467630
push str.d:_ymir_work_effect_affect_damagevalue_damage_m.dds
call fcn.0045dcb0
lea eax, [esp + 0x140]
mov byte [esp + 0x340], 5
push eax
lea ecx, [esp + 0x38]
call fcn.00469250
lea ecx, [esp + 0x140]
mov byte [esp + 0x340], 1
call fcn.0045bdb0
jmp 0x467630
push str.d:_ymir_work_effect_affect_damagevalue_damage_k.dds
lea ecx, [esp + 0xa8]
call fcn.0045dcb0
lea eax, [esp + 0xa4]
mov byte [esp + 0x340], 6
push eax
lea ecx, [esp + 0x38]
call fcn.00469250
mov byte [esp + 0x340], 1
cmp dword [esp + 0xb8], 0x10
jb 0x467630
push dword [esp + 0xa4]
call fcn.004ec310
add esp, 4
sub esp, 0xc
lea eax, [esp + 0x40]
mov ecx, esp
push eax
call fcn.004691a0
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
push dword [esi*4 + 0x7178e0]
call fcn.00524f30
movss xmm0, dword [esp + 0xa0]
lea eax, [esp + 0xd4]
movss xmm1, dword [esp + 0x9c]
sub esp, 0xc
movss xmm2, dword [esp + 0xa4]
mov dword [esp + 0x10c], 0
mov dword [esp + 0x104], 0
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm1
movss dword [esp], xmm2
push eax
mov dword [esp + 0x104], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0xfc], 0
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0x120], 0x3f800000
mov dword [esp + 0x10c], 0x3f800000
mov dword [esp + 0xf8], 0x3f800000
mov dword [esp + 0xe4], 0x3f800000
movss dword [esp + 0x114], xmm2
movss dword [esp + 0x118], xmm1
movss dword [esp + 0x11c], xmm0
call fcn.004024ef
lea eax, [esp + 0xd4]
push eax
mov eax, dword [esp + 0x44]
add eax, 0xac
push eax
lea eax, [esp + 0xdc]
push eax
call fcn.00401b92
movzx eax, byte [esp + 0x1a]
sub esp, 0xc
mov ecx, eax
shl ecx, 4
sub ecx, eax
lea eax, [esp + 0x1b0]
add ecx, ecx
mov dword [esp + 8], 0
mov dword [esp + 4], 0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x680380]
cvtpd2ps xmm0, xmm0
movss dword [esp], xmm0
push eax
call fcn.004024ef
movss xmm0, dword [esp + 0x1d4]
lea eax, [esp + 0xd4]
xorps xmm0, xmmword [0x6803a0]
push eax
lea eax, [esp + 0x1a8]
movss dword [esp + 0x1d8], xmm0
push eax
lea eax, [esp + 0x16c]
push eax
call fcn.00401b92
movdqa xmm0, xmmword [esp + 0x164]
lea eax, [esp + 0xd4]
movdqa xmmword [esp + 0xd4], xmm0
movdqa xmm0, xmmword [esp + 0x174]
movdqa xmmword [esp + 0xe4], xmm0
movdqa xmm0, xmmword [esp + 0x184]
movdqa xmmword [esp + 0xf4], xmm0
movdqa xmm0, xmmword [esp + 0x194]
push eax
mov eax, dword [esp + 0x44]
movdqa xmmword [esp + 0x108], xmm0
add eax, 0x6c
push eax
lea eax, [esp + 0xdc]
push eax
call fcn.00401b92
movss xmm0, dword [esp + 0x104]
lea eax, [esp + 0xc8]
mov ecx, dword [esp + 0x24]
push 0
push eax
movss dword [esp + 0x11c], xmm0
lea eax, [esp + 0x11c]
movss xmm0, dword [esp + 0x110]
push eax
push dword [esi*4 + 0x7178e0]
movss dword [esp + 0x128], xmm0
movss xmm0, dword [esp + 0x11c]
movss dword [esp + 0x12c], xmm0
call fcn.005243d0
push dword [esp + 0x44]
mov esi, dword [esp + 0x38]
lea eax, [esp + 0x27]
push eax
push dword [esp + 0x40]
push esi
call fcn.0046a060
inc byte [esp + 0x2a]
add esp, 0x10
inc byte [esp + 0x1b]
mov dword [esp + 0x38], esi
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
test eax, eax
jg 0x4671a0
jl 0x4678e9
test edi, edi
jne 0x4671a0
jmp 0x4678e9
push str.ProcessDamage
call fcn.005352a0
add esp, 4
lea ecx, [esp + 0x34]
call fcn.004692d0
cmp dword [esp + 0x13c], 0x10
jb 0x467940
push dword [esp + 0x128]
call fcn.004ec310
add esp, 4
jmp 0x467940
cmp dword [esp + 0xb0], 0
lea eax, [esp + 0xc8]
mov ecx, dword [esp + 0x24]
push 0
push eax
lea eax, [esp + 0xa0]
push eax
je 0x467935
push dword [0x717ce0]
jmp 0x46793b
push dword [0x717ce4]
call fcn.005243d0
mov ecx, dword [esp + 0x338]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [esp + 0x324]
xor ecx, esp
call fcn.005dfa14
mov esp, ebp
pop ebp
ret