Function at 0x10030900
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 0x1003092d
mov eax, dword [0x1013cd10]
cmp dword [eax], 0
je 0x1003092d
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 0x10031173
xor edi, edi
lea ebx, [ebp - 0x2c]
nop dword [eax + eax]
push 0xffffffffffffffff
mov edx, 0x500000a
mov ecx, ebx
call fcn.10017610
cmp eax, 0xffffffff
je 0x10031145
mov esi, dword [ebx]
or dword [esi + 0x24], 0x20000004
test esi, esi
je 0x1003099e
test byte [esi + 0x24], 1
jne 0x1003099e
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 0x1003099e
or eax, 0x80000000
mov dword [esi + 0x74], eax
cmp edi, 6
jae 0x100309b1
mov ecx, dword [ebp - 8]
mov edx, edi
push 1
call fcn.10072ec0
jmp 0x100309b4
mov eax, dword [ebp - 8]
push 0
push 0
push dword [ebp - 0xc]
mov edx, eax
mov ecx, esi
call fcn.10072630
inc edi
add ebx, 4
cmp edi, 7
jb 0x10030950
mov esi, dword [ebp - 0xc]
xor ecx, ecx
mov ebx, dword [ebp - 8]
mov edx, ebx
push esi
call fcn.10073670
mov edi, eax
mov eax, dword [0x10155098]
mov dword [ebp - 0xc], edi
cmp eax, dword [0x1015509c]
je 0x10030a01
push 0xc
push esi
push ebx
mov edx, edi
xor ecx, ecx
call fcn.100cbe30
mov edi, eax
mov dword [ebp - 0xc], eax
test edi, edi
je 0x10030a19
mov al, byte [edi + 0x23]
and al, 0xf
cmp al, 1
jne 0x10030a14
test byte [edi + 0x44], 0x80
je 0x10030a19
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.10016b80
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 0x10030a7e
mov eax, dword [0x1013cd38]
cmp ebx, dword [eax]
je 0x10030ae0
mov ecx, dword [0x519d9c]
xor eax, eax
mov esi, dword [0x519da0]
test ecx, ecx
je 0x10030a7e
mov edx, dword [ebx + 0x64]
cmp dword [esi + eax*4], edx
je 0x10030adb
inc eax
cmp eax, ecx
jb 0x10030a74
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.10038d10
test edi, edi
je 0x10030b0b
xor dl, dl
mov ecx, edi
call fcn.1002df20
cmp eax, 0xfffffffe
jne 0x10030ab9
push str._naction_explode:_cannot_clear_targets_animation_
call fcn.10016d10
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.10038a00
mov esi, dword [ebp - 4]
mov dword [esi + 0x2c], eax
jmp 0x10030b0e
inc eax
test eax, eax
jle 0x10030a7e
mov ecx, ebx
call fcn.10021430
mov ecx, dword [eax + 0x148]
test ecx, ecx
je 0x10030a7e
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 0x10030a84
mov esi, dword [ebp - 4]
cmp dword [esi + 0x3c], 0
mov dword [ebp + 0x10], 0
jbe 0x10030b6e
mov edi, dword [ebp + 0xc]
add esi, 0x40
mov ecx, dword [esi]
xor dl, dl
call fcn.1002df20
cmp eax, 0xfffffffe
jne 0x10030b3c
push str._naction_explode:_Cannot_clear_animation_for_extra_targets_
call fcn.10016d10
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.10038a00
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 0x10030b21
mov edi, dword [ebp - 0xc]
mov esi, ecx
mov ecx, esi
call fcn.10033a70
cmp dword [ebp + 0x18], 0
je 0x10030de2
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.1002e4b0
push 0
mov edx, 1
mov ecx, ebx
call fcn.10017740
cmp byte [0x10175fe1], 0
je 0x10030bd6
push 0
mov edx, 0xffff0008
mov ecx, ebx
call fcn.10017d60
push 0
xor edx, edx
mov ecx, ebx
call fcn.10017d00
xor edi, edi
mov esi, dword [ebp + edi*4 - 0x2c]
mov edx, 1
push 0
mov ecx, esi
call fcn.10017740
push 0
xor edx, edx
mov ecx, esi
call fcn.10017d00
inc edi
cmp edi, 6
jb 0x10030be3
mov ebx, dword [ebp - 4]
xor edx, edx
push 1
mov ecx, ebx
call fcn.10033010
xor ecx, ecx
call fcn.1002dc40
cmp eax, 0xffffffff
je 0x10030c7c
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], 0x10034350
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 0x10030c81
call fcn.1002db90
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 0x10030c90
xor ecx, ecx
call fcn.1002dc40
cmp eax, 0xffffffff
je 0x10030d0a
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], 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 0x10030d0f
call fcn.1002db90
xor ecx, ecx
call fcn.1002dc40
cmp eax, 0xffffffff
je 0x10030d78
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], 0x100308f0
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 0x10030d7d
call fcn.1002db90
call dword [0x1012127c]
cmp eax, 0xffffffff
jne 0x10030dd0
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 0x10030d90
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.10032eb0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
test edi, edi
je 0x10030f5b
test byte [esi + 0x30], 0x80
je 0x10030f5b
xor bl, bl
cmp dword [0x51c714], 0
je 0x10030f4f
mov ecx, dword [edi + 0x78]
lea edx, [ebp + 0x10]
call fcn.1006e7b0
cmp eax, 0xffffffff
je 0x10030f4f
mov esi, dword [ebp + 0x10]
mov dword [esi + 0x44], 0
mov dword [esi + 0x28], 0
test byte [esi + 0x10], 1
jne 0x10030e6c
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 0x10030e66
push str._nError:_exec_script_proc:_script_load_failed_
call fcn.10016d10
add esp, 4
jmp 0x10030f4c
or dword [esi + 0x10], 1
mov bl, 1
mov eax, dword [esi + 0x18]
mov dword [ebp + 0xc], eax
test eax, eax
je 0x10030f4c
mov ecx, 0x124
test word [eax + 0x80], cx
jne 0x10030f4c
mov eax, dword [esi + 0x9c]
test eax, eax
jle 0x10030ea5
push 0x28
push eax
mov edx, esi
mov ecx, 0x12
call fcn.100cd950
mov dword [ebp + 0x10], eax
test bl, bl
jne 0x10030ebe
test eax, eax
jne 0x10030ebe
mov eax, dword [esi + 0x58]
mov dword [ebp + 0x10], eax
test eax, eax
je 0x10030f4c
cmp eax, 0xffffffff
je 0x10030f4c
cmp dword [esi + 0x3c], 0
jne 0x10030ed3
mov eax, dword [esi + 0x34]
mov dword [esi + 0x3c], eax
or dword [esi + 0x10], 4
test bl, bl
je 0x10030f22
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 0x10030f04
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.100171c0
xor eax, eax
mov dword [ebp + 8], eax
cmp dword [esi + 0x3c], eax
jbe 0x100310f6
lea edi, [esi + 0x40]
nop dword [eax]
test byte [edi + 0x48], 0x80
je 0x100310e6
mov eax, dword [edi]
xor bl, bl
cmp dword [0x51c714], 0
je 0x100310d7
mov ecx, dword [eax + 0x78]
lea edx, [ebp + 0x18]
call fcn.1006e7b0
cmp eax, 0xffffffff
je 0x100310d7
mov esi, dword [ebp + 0x18]
mov dword [esi + 0x44], 0
mov dword [esi + 0x28], 0
test byte [esi + 0x10], 1
jne 0x10030ff4
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 0x10030fee
push str._nError:_exec_script_proc:_script_load_failed_
call fcn.10016d10
add esp, 4
jmp 0x100310d4
or dword [esi + 0x10], 1
mov bl, 1
mov eax, dword [esi + 0x18]
mov dword [ebp + 0xc], eax
test eax, eax
je 0x100310d4
mov ecx, 0x124
test word [eax + 0x80], cx
jne 0x100310d4
mov eax, dword [esi + 0x9c]
test eax, eax
jle 0x1003102d
push 0x28
push eax
mov edx, esi
mov ecx, 0x12
call fcn.100cd950
mov dword [ebp + 0x10], eax
test bl, bl
jne 0x10031046
test eax, eax
jne 0x10031046
mov eax, dword [esi + 0x58]
mov dword [ebp + 0x10], eax
test eax, eax
je 0x100310d4
cmp eax, 0xffffffff
je 0x100310d4
cmp dword [esi + 0x3c], 0
jne 0x1003105b
mov eax, dword [esi + 0x34]
mov dword [esi + 0x3c], eax
or dword [esi + 0x10], 4
test bl, bl
je 0x100310aa
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 0x1003108c
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.100171c0
mov eax, dword [ebp + 8]
inc eax
add edi, 4
mov dword [ebp + 8], eax
cmp eax, dword [esi + 0x3c]
jb 0x10030f70
mov edx, dword [ebp + 0x14]
mov ecx, esi
call fcn.100341a0
mov eax, dword [ebp - 0x14]
mov ecx, eax
push dword [eax + 0x28]
mov edx, dword [eax + 4]
push dword [0x101548bc]
call fcn.10017dc0
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 0x10031120
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
lea esi, [edi - 1]
test esi, esi
js 0x1003116a
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 0x10031150
mov eax, dword [ebp - 4]
call dword [0x10121460]
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret 0x14