Function at 0x10030910
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 0x1003093d
mov eax, dword [0x1013cd10]
cmp dword [eax], 0
je 0x1003093d
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 0x10031183
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 0x10031155
mov esi, dword [ebx]
or dword [esi + 0x24], 0x20000004
test esi, esi
je 0x100309ae
test byte [esi + 0x24], 1
jne 0x100309ae
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 0x100309ae
or eax, 0x80000000
mov dword [esi + 0x74], eax
cmp edi, 6
jae 0x100309c1
mov ecx, dword [ebp - 8]
mov edx, edi
push 1
call fcn.10072ee0
jmp 0x100309c4
mov eax, dword [ebp - 8]
push 0
push 0
push dword [ebp - 0xc]
mov edx, eax
mov ecx, esi
call fcn.10072650
inc edi
add ebx, 4
cmp edi, 7
jb 0x10030960
mov esi, dword [ebp - 0xc]
xor ecx, ecx
mov ebx, dword [ebp - 8]
mov edx, ebx
push esi
call fcn.10073690
mov edi, eax
mov eax, dword [0x10155098]
mov dword [ebp - 0xc], edi
cmp eax, dword [0x1015509c]
je 0x10030a11
push 0xc
push esi
push ebx
mov edx, edi
xor ecx, ecx
call fcn.100cbe50
mov edi, eax
mov dword [ebp - 0xc], eax
test edi, edi
je 0x10030a29
mov al, byte [edi + 0x23]
and al, 0xf
cmp al, 1
jne 0x10030a24
test byte [edi + 0x44], 0x80
je 0x10030a29
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 0x10030a8e
mov eax, dword [0x1013cd38]
cmp ebx, dword [eax]
je 0x10030af0
mov ecx, dword [0x519d9c]
xor eax, eax
mov esi, dword [0x519da0]
test ecx, ecx
je 0x10030a8e
mov edx, dword [ebx + 0x64]
cmp dword [esi + eax*4], edx
je 0x10030aeb
inc eax
cmp eax, ecx
jb 0x10030a84
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.10038d20
test edi, edi
je 0x10030b1b
xor dl, dl
mov ecx, edi
call fcn.1002df30
cmp eax, 0xfffffffe
jne 0x10030ac9
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.10038a10
mov esi, dword [ebp - 4]
mov dword [esi + 0x2c], eax
jmp 0x10030b1e
inc eax
test eax, eax
jle 0x10030a8e
mov ecx, ebx
call fcn.10021440
mov ecx, dword [eax + 0x148]
test ecx, ecx
je 0x10030a8e
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 0x10030a94
mov esi, dword [ebp - 4]
cmp dword [esi + 0x3c], 0
mov dword [ebp + 0x10], 0
jbe 0x10030b7e
mov edi, dword [ebp + 0xc]
add esi, 0x40
mov ecx, dword [esi]
xor dl, dl
call fcn.1002df30
cmp eax, 0xfffffffe
jne 0x10030b4c
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.10038a10
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 0x10030b31
mov edi, dword [ebp - 0xc]
mov esi, ecx
mov ecx, esi
call fcn.10033a80
cmp dword [ebp + 0x18], 0
je 0x10030df2
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.1002e4c0
push 0
mov edx, 1
mov ecx, ebx
call fcn.10017750
cmp byte [0x10175fe1], 0
je 0x10030be6
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 0x10030bf3
mov ebx, dword [ebp - 4]
xor edx, edx
push 1
mov ecx, ebx
call fcn.10033020
xor ecx, ecx
call fcn.1002dc50
cmp eax, 0xffffffff
je 0x10030c8c
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], 0x10034360
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 0x10030c91
call fcn.1002dba0
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 0x10030ca0
xor ecx, ecx
call fcn.1002dc50
cmp eax, 0xffffffff
je 0x10030d1a
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], 0x10034370
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 0x10030d1f
call fcn.1002dba0
xor ecx, ecx
call fcn.1002dc50
cmp eax, 0xffffffff
je 0x10030d88
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], 0x10030900
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 0x10030d8d
call fcn.1002dba0
call dword [0x1012127c]
cmp eax, 0xffffffff
jne 0x10030de0
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 0x10030da0
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.10032ec0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
test edi, edi
je 0x10030f6b
test byte [esi + 0x30], 0x80
je 0x10030f6b
xor bl, bl
cmp dword [0x51c714], 0
je 0x10030f5f
mov ecx, dword [edi + 0x78]
lea edx, [ebp + 0x10]
call fcn.1006e780
cmp eax, 0xffffffff
je 0x10030f5f
mov esi, dword [ebp + 0x10]
mov dword [esi + 0x44], 0
mov dword [esi + 0x28], 0
test byte [esi + 0x10], 1
jne 0x10030e7c
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 0x10030e76
push str._nError:_exec_script_proc:_script_load_failed_
call fcn.10016d20
add esp, 4
jmp 0x10030f5c
or dword [esi + 0x10], 1
mov bl, 1
mov eax, dword [esi + 0x18]
mov dword [ebp + 0xc], eax
test eax, eax
je 0x10030f5c
mov ecx, 0x124
test word [eax + 0x80], cx
jne 0x10030f5c
mov eax, dword [esi + 0x9c]
test eax, eax
jle 0x10030eb5
push 0x28
push eax
mov edx, esi
mov ecx, 0x12
call fcn.100cd950
mov dword [ebp + 0x10], eax
test bl, bl
jne 0x10030ece
test eax, eax
jne 0x10030ece
mov eax, dword [esi + 0x58]
mov dword [ebp + 0x10], eax
test eax, eax
je 0x10030f5c
cmp eax, 0xffffffff
je 0x10030f5c
cmp dword [esi + 0x3c], 0
jne 0x10030ee3
mov eax, dword [esi + 0x34]
mov dword [esi + 0x3c], eax
or dword [esi + 0x10], 4
test bl, bl
je 0x10030f32
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 0x10030f14
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.100cd950
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 0x10031106
lea edi, [esi + 0x40]
nop dword [eax]
test byte [edi + 0x48], 0x80
je 0x100310f6
mov eax, dword [edi]
xor bl, bl
cmp dword [0x51c714], 0
je 0x100310e7
mov ecx, dword [eax + 0x78]
lea edx, [ebp + 0x18]
call fcn.1006e780
cmp eax, 0xffffffff
je 0x100310e7
mov esi, dword [ebp + 0x18]
mov dword [esi + 0x44], 0
mov dword [esi + 0x28], 0
test byte [esi + 0x10], 1
jne 0x10031004
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 0x10030ffe
push str._nError:_exec_script_proc:_script_load_failed_
call fcn.10016d20
add esp, 4
jmp 0x100310e4
or dword [esi + 0x10], 1
mov bl, 1
mov eax, dword [esi + 0x18]
mov dword [ebp + 0xc], eax
test eax, eax
je 0x100310e4
mov ecx, 0x124
test word [eax + 0x80], cx
jne 0x100310e4
mov eax, dword [esi + 0x9c]
test eax, eax
jle 0x1003103d
push 0x28
push eax
mov edx, esi
mov ecx, 0x12
call fcn.100cd950
mov dword [ebp + 0x10], eax
test bl, bl
jne 0x10031056
test eax, eax
jne 0x10031056
mov eax, dword [esi + 0x58]
mov dword [ebp + 0x10], eax
test eax, eax
je 0x100310e4
cmp eax, 0xffffffff
je 0x100310e4
cmp dword [esi + 0x3c], 0
jne 0x1003106b
mov eax, dword [esi + 0x34]
mov dword [esi + 0x3c], eax
or dword [esi + 0x10], 4
test bl, bl
je 0x100310ba
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 0x1003109c
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.100cd950
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 0x10030f80
mov edx, dword [ebp + 0x14]
mov ecx, esi
call fcn.100341b0
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 0x10031130
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
lea esi, [edi - 1]
test esi, esi
js 0x1003117a
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 0x10031160
mov eax, dword [ebp - 4]
call dword [0x10121460]
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret 0x14