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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
cmp dword [ebp + 0x18], 0
push ebx
push esi
push edi
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], ecx
je 0x1003099d
mov eax, dword [0x1013cd10]
cmp dword [eax], 0
je 0x1003099d
mov eax, 0xfffffffe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov eax, 0xb8
call dword [0x1012145c]
mov dword [ebp - 4], eax
test eax, eax
je 0x100311e3
xor edi, edi
lea ebx, [ebp - 0x2c]
nop dword [eax + eax]
push 0xffffffffffffffff
mov edx, 0x500000a
mov ecx, ebx
call fcn.10017620
cmp eax, 0xffffffff
je 0x100311b5
mov esi, dword [ebx]
or dword [esi + 0x24], 0x20000004
test esi, esi
je 0x10030a0e
test byte [esi + 0x24], 1
jne 0x10030a0e
push 0
mov edx, 1
mov ecx, esi
call fcn.100174f0
or dword [esi + 0x24], 1
mov eax, dword [esi + 0x74]
test eax, 0xffffff
je 0x10030a0e
or eax, 0x80000000
mov dword [esi + 0x74], eax
cmp edi, 6
jae 0x10030a21
mov ecx, dword [ebp - 8]
mov edx, edi
push 1
call fcn.10072ef0
jmp 0x10030a24
mov eax, dword [ebp - 8]
push 0
push 0
push dword [ebp - 0xc]
mov edx, eax
mov ecx, esi
call fcn.10072660
inc edi
add ebx, 4
cmp edi, 7
jb 0x100309c0
mov esi, dword [ebp - 0xc]
xor ecx, ecx
mov ebx, dword [ebp - 8]
mov edx, ebx
push esi
call fcn.100736a0
mov edi, eax
mov eax, dword [0x10155098]
mov dword [ebp - 0xc], edi
cmp eax, dword [0x1015509c]
je 0x10030a71
push 0xc
push esi
push ebx
mov edx, edi
xor ecx, ecx
call fcn.100cbe60
mov edi, eax
mov dword [ebp - 0xc], eax
test edi, edi
je 0x10030a89
mov al, byte [edi + 0x23]
and al, 0xf
cmp al, 1
jne 0x10030a84
test byte [edi + 0x44], 0x80
je 0x10030a89
xor edi, edi
mov dword [ebp - 0xc], edi
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 4]
mov ecx, esi
push 8
push 4
push edi
push eax
mov dword [ebp - 0x10], eax
call fcn.10016b90
mov dword [esi + 0x24], ebx
mov dword [esi + 0x14], 0x100
mov eax, 1
call dword [0x10121678]
mov ebx, dword [ebp + 0x14]
mov dword [ebp - 8], 0
test ebx, ebx
je 0x10030aee
mov eax, dword [0x1013cd38]
cmp ebx, dword [eax]
je 0x10030b50
mov ecx, dword [0x519d9c]
xor eax, eax
mov esi, dword [0x519da0]
test ecx, ecx
je 0x10030aee
mov edx, dword [ebx + 0x64]
cmp dword [esi + eax*4], edx
je 0x10030b4b
inc eax
cmp eax, ecx
jb 0x10030ae4
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov edx, dword [ebp - 4]
mov ecx, 0x412f11
push 1
push 0
push 0
mov dword [ebp + 0xc], esi
call fcn.10038d80
test edi, edi
je 0x10030b7b
xor dl, dl
mov ecx, edi
call fcn.1002df90
cmp eax, 0xfffffffe
jne 0x10030b29
push str._naction_explode:_cannot_clear_targets_animation_
call fcn.10016d20
add esp, 4
push dword [ebp + 8]
mov eax, dword [ebp - 4]
mov edx, ebx
push dword [ebp + 0x14]
add eax, 0x34
mov ecx, esi
push dword [ebp - 8]
push eax
push edi
call fcn.10038a70
mov esi, dword [ebp - 4]
mov dword [esi + 0x2c], eax
jmp 0x10030b7e
inc eax
test eax, eax
jle 0x10030aee
mov ecx, ebx
call fcn.10021440
mov ecx, dword [eax + 0x148]
test ecx, ecx
je 0x10030aee
mov eax, dword [0x10140f98]
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
imul eax, ecx
add esi, eax
mov dword [ebp - 8], eax
add ebx, eax
jmp 0x10030af4
mov esi, dword [ebp - 4]
cmp dword [esi + 0x3c], 0
mov dword [ebp + 0x10], 0
jbe 0x10030bde
mov edi, dword [ebp + 0xc]
add esi, 0x40
mov ecx, dword [esi]
xor dl, dl
call fcn.1002df90
cmp eax, 0xfffffffe
jne 0x10030bac
push str._naction_explode:_Cannot_clear_animation_for_extra_targets_
call fcn.10016d20
add esp, 4
push dword [ebp + 8]
lea eax, [esi + 0x60]
mov edx, ebx
push dword [ebp + 0x14]
mov ecx, edi
push dword [ebp - 8]
push eax
push dword [esi]
call fcn.10038a70
mov ecx, dword [ebp - 4]
mov dword [esi + 0x30], eax
add esi, 4
mov eax, dword [ebp + 0x10]
inc eax
mov dword [ebp + 0x10], eax
cmp eax, dword [ecx + 0x3c]
jb 0x10030b91
mov edi, dword [ebp - 0xc]
mov esi, ecx
mov ecx, esi
call fcn.10033ae0
cmp dword [ebp + 0x18], 0
je 0x10030e52
mov eax, dword [0x1013cd10]
mov dword [eax], 1
mov eax, 2
call dword [0x10121284]
mov eax, 1
call dword [0x10121234]
mov ebx, dword [ebp - 0x14]
mov edx, str.WHN1XXX1
mov ecx, ebx
push 0
call fcn.1002e520
push 0
mov edx, 1
mov ecx, ebx
call fcn.10017750
cmp byte [0x10175fe1], 0
je 0x10030c46
push 0
mov edx, 0xffff0008
mov ecx, ebx
call fcn.10017d70
push 0
xor edx, edx
mov ecx, ebx
call fcn.10017d10
xor edi, edi
mov esi, dword [ebp + edi*4 - 0x2c]
mov edx, 1
push 0
mov ecx, esi
call fcn.10017750
push 0
xor edx, edx
mov ecx, esi
call fcn.10017d10
inc edi
cmp edi, 6
jb 0x10030c53
mov ebx, dword [ebp - 4]
xor edx, edx
push 1
mov ecx, ebx
call fcn.10033080
xor ecx, ecx
call fcn.1002dcb0
cmp eax, 0xffffffff
je 0x10030cec
mov eax, dword [0x1013ccb8]
mov esi, dword [0x1013ccb4]
mov edi, dword [ebp - 0x14]
imul ecx, dword [eax], 0xa60
mov edx, dword [esi]
add ecx, dword [0x1013cd78]
lea eax, [edx + edx*2]
add eax, eax
mov dword [ecx + eax*8 + 0x10], 0xb
mov dword [ecx + eax*8 + 0x14], 0
mov dword [ecx + eax*8 + 0x18], edi
mov dword [ecx + eax*8 + 0x2c], 0x100343c0
mov dword [ecx + eax*8 + 0x28], 0xffffffff
mov dword [ecx + eax*8 + 0x34], 1
mov dword [ecx + eax*8 + 0x3c], 0
lea eax, [edx + 1]
mov dword [esi], eax
jmp 0x10030cf1
call fcn.1002dc00
mov eax, dword [ebp - 0x10]
call dword [0x10121248]
xor esi, esi
nop dword [eax]
mov eax, dword [ebp + esi*4 - 0x2c]
mov dword [ebp + 0x10], eax
mov eax, dword [ebp + 0x10]
call dword [0x10121248]
inc esi
cmp esi, 6
jb 0x10030d00
xor ecx, ecx
call fcn.1002dcb0
cmp eax, 0xffffffff
je 0x10030d7a
mov eax, dword [0x1013ccb8]
mov esi, dword [0x1013ccb4]
mov edi, dword [ebp + 0x14]
imul ecx, dword [eax], 0xa60
mov edx, dword [esi]
add ecx, dword [0x1013cd78]
lea eax, [edx + edx*2]
add eax, eax
mov dword [ecx + eax*8 + 0x10], 0xb
mov dword [ecx + eax*8 + 0x14], edi
mov dword [ecx + eax*8 + 0x18], ebx
mov dword [ecx + eax*8 + 0x2c], 0x100343d0
mov dword [ecx + eax*8 + 0x28], 0xffffffff
mov dword [ecx + eax*8 + 0x34], 1
mov dword [ecx + eax*8 + 0x3c], 0
lea eax, [edx + 1]
mov dword [esi], eax
jmp 0x10030d7f
call fcn.1002dc00
xor ecx, ecx
call fcn.1002dcb0
cmp eax, 0xffffffff
je 0x10030de8
mov eax, dword [0x1013ccb8]
mov esi, dword [0x1013ccb4]
imul ecx, dword [eax], 0xa60
mov edx, dword [esi]
add ecx, dword [0x1013cd78]
lea eax, [edx + edx*2]
add eax, eax
mov dword [ecx + eax*8 + 0x10], 0xb
mov dword [ecx + eax*8 + 0x14], 0
mov dword [ecx + eax*8 + 0x18], 0
mov dword [ecx + eax*8 + 0x2c], 0x10030960
mov dword [ecx + eax*8 + 0x28], 0xffffffff
mov dword [ecx + eax*8 + 0x34], 1
mov dword [ecx + eax*8 + 0x3c], 0
lea eax, [edx + 1]
mov dword [esi], eax
jmp 0x10030ded
call fcn.1002dc00
call dword [0x1012127c]
cmp eax, 0xffffffff
jne 0x10030e40
mov esi, 6
nop dword [eax]
mov eax, dword [ebp + esi*4 - 0x2c]
mov dword [ebp + 0x14], eax
mov edx, 0
mov eax, dword [ebp + 0x14]
call dword [0x101213d0]
sub esi, 1
jns 0x10030e00
mov eax, dword [ebp - 4]
call dword [0x10121460]
mov eax, dword [0x1013cd10]
mov dword [eax], 0
call dword [0x10121674]
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov ecx, ebx
call fcn.10032f20
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
test edi, edi
je 0x10030fcb
test byte [esi + 0x30], 0x80
je 0x10030fcb
xor bl, bl
cmp dword [0x51c714], 0
je 0x10030fbf
mov ecx, dword [edi + 0x78]
lea edx, [ebp + 0x10]
call fcn.1006e780
cmp eax, 0xffffffff
je 0x10030fbf
mov esi, dword [ebp + 0x10]
mov dword [esi + 0x44], 0
mov dword [esi + 0x28], 0
test byte [esi + 0x10], 1
jne 0x10030edc
mov eax, dword [esi + 0x14]
and eax, 0xffffff
lea ecx, [eax + eax*4]
mov eax, dword [0x51c7c8]
lea eax, [eax + ecx*4]
mov dword [ebp + 0x10], eax
mov eax, dword [ebp + 0x10]
call dword [0x101214a4]
mov dword [esi + 0x18], eax
test eax, eax
jne 0x10030ed6
push str._nError:_exec_script_proc:_script_load_failed_
call fcn.10016d20
add esp, 4
jmp 0x10030fbc
or dword [esi + 0x10], 1
mov bl, 1
mov eax, dword [esi + 0x18]
mov dword [ebp + 0xc], eax
test eax, eax
je 0x10030fbc
mov ecx, 0x124
test word [eax + 0x80], cx
jne 0x10030fbc
mov eax, dword [esi + 0x9c]
test eax, eax
jle 0x10030f15
push 0x28
push eax
mov edx, esi
mov ecx, 0x12
call fcn.100cd960
mov dword [ebp + 0x10], eax
test bl, bl
jne 0x10030f2e
test eax, eax
jne 0x10030f2e
mov eax, dword [esi + 0x58]
mov dword [ebp + 0x10], eax
test eax, eax
je 0x10030fbc
cmp eax, 0xffffffff
je 0x10030fbc
cmp dword [esi + 0x3c], 0
jne 0x10030f43
mov eax, dword [esi + 0x34]
mov dword [esi + 0x3c], eax
or dword [esi + 0x10], 4
test bl, bl
je 0x10030f92
mov dword [ebp + 0x10], esi
mov eax, dword [ebp + 0x10]
call dword [0x10121218]
mov eax, dword [esi + 0x9c]
mov dword [ebp + 0x10], eax
test eax, eax
jne 0x10030f74
mov eax, dword [esi + 0x58]
mov ecx, 1
test eax, eax
cmove eax, ecx
mov dword [ebp + 0x10], eax
mov dword [esi + 0x2c], 0
mov eax, dword [ebp + 0xc]
call dword [0x10121224]
mov edx, 0xffffffff
mov eax, dword [ebp + 0xc]
call dword [0x10121570]
mov dword [esi + 0x2c], 0x12
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
call dword [0x101216d0]
mov edx, esi
mov ecx, 0x12
push 0x29
push 0
call fcn.100cd960
mov dword [esi + 0x38], 0
mov esi, dword [ebp - 4]
push 0
or edx, 0xffffffff
mov ecx, edi
call fcn.100171d0
xor eax, eax
mov dword [ebp + 8], eax
cmp dword [esi + 0x3c], eax
jbe 0x10031166
lea edi, [esi + 0x40]
nop dword [eax]
test byte [edi + 0x48], 0x80
je 0x10031156
mov eax, dword [edi]
xor bl, bl
cmp dword [0x51c714], 0
je 0x10031147
mov ecx, dword [eax + 0x78]
lea edx, [ebp + 0x18]
call fcn.1006e780
cmp eax, 0xffffffff
je 0x10031147
mov esi, dword [ebp + 0x18]
mov dword [esi + 0x44], 0
mov dword [esi + 0x28], 0
test byte [esi + 0x10], 1
jne 0x10031064
mov eax, dword [esi + 0x14]
and eax, 0xffffff
lea ecx, [eax + eax*4]
mov eax, dword [0x51c7c8]
lea eax, [eax + ecx*4]
mov dword [ebp + 0x10], eax
mov eax, dword [ebp + 0x10]
call dword [0x101214a4]
mov dword [esi + 0x18], eax
test eax, eax
jne 0x1003105e
push str._nError:_exec_script_proc:_script_load_failed_
call fcn.10016d20
add esp, 4
jmp 0x10031144
or dword [esi + 0x10], 1
mov bl, 1
mov eax, dword [esi + 0x18]
mov dword [ebp + 0xc], eax
test eax, eax
je 0x10031144
mov ecx, 0x124
test word [eax + 0x80], cx
jne 0x10031144
mov eax, dword [esi + 0x9c]
test eax, eax
jle 0x1003109d
push 0x28
push eax
mov edx, esi
mov ecx, 0x12
call fcn.100cd960
mov dword [ebp + 0x10], eax
test bl, bl
jne 0x100310b6
test eax, eax
jne 0x100310b6
mov eax, dword [esi + 0x58]
mov dword [ebp + 0x10], eax
test eax, eax
je 0x10031144
cmp eax, 0xffffffff
je 0x10031144
cmp dword [esi + 0x3c], 0
jne 0x100310cb
mov eax, dword [esi + 0x34]
mov dword [esi + 0x3c], eax
or dword [esi + 0x10], 4
test bl, bl
je 0x1003111a
mov dword [ebp + 0x10], esi
mov eax, dword [ebp + 0x10]
call dword [0x10121218]
mov eax, dword [esi + 0x9c]
mov dword [ebp + 0x10], eax
test eax, eax
jne 0x100310fc
mov eax, dword [esi + 0x58]
mov ecx, 1
test eax, eax
cmove eax, ecx
mov dword [ebp + 0x10], eax
mov dword [esi + 0x2c], 0
mov eax, dword [ebp + 0xc]
call dword [0x10121224]
mov edx, 0xffffffff
mov eax, dword [ebp + 0xc]
call dword [0x10121570]
mov dword [esi + 0x2c], 0x12
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
call dword [0x101216d0]
mov edx, esi
mov ecx, 0x12
push 0x29
push 0
call fcn.100cd960
mov dword [esi + 0x38], 0
mov esi, dword [ebp - 4]
mov ecx, dword [edi]
or edx, 0xffffffff
push 0
call fcn.100171d0
mov eax, dword [ebp + 8]
inc eax
add edi, 4
mov dword [ebp + 8], eax
cmp eax, dword [esi + 0x3c]
jb 0x10030fe0
mov edx, dword [ebp + 0x14]
mov ecx, esi
call fcn.10034210
mov eax, dword [ebp - 0x14]
mov ecx, eax
push dword [eax + 0x28]
mov edx, dword [eax + 4]
push dword [0x101548bc]
call fcn.10017dd0
mov esi, 6
nop dword [eax + eax]
mov eax, dword [ebp + esi*4 - 0x2c]
mov dword [ebp + 0x14], eax
mov edx, 0
mov eax, dword [ebp + 0x14]
call dword [0x101213d0]
sub esi, 1
jns 0x10031190
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
lea esi, [edi - 1]
test esi, esi
js 0x100311da
nop dword [eax]
mov eax, dword [ebp + esi*4 - 0x2c]
mov dword [ebp + 0x14], eax
mov edx, 0
mov eax, dword [ebp + 0x14]
call dword [0x101213d0]
sub esi, 1
jns 0x100311c0
mov eax, dword [ebp - 4]
call dword [0x10121460]
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret 0x14