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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34
push ebx
push esi
mov esi, ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x20], esi
push edi
test esi, esi
je 0x100090cd
cmp dword [esi], 0x73633638
jne 0x100090cd
mov edi, dword [ebp + 8]
test edi, edi
jne 0x100089c0
call fcn.100088d0
or eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test edx, edx
je 0x100090cd
mov edi, dword [edi]
mov ebx, edi
sar ebx, 0x1f
and ebx, 0xfffffffe
inc ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x14], edi
test edi, edi
jle 0x100090bf
cmp dword [esi + 0x2ac], 0
jne 0x10008fb0
mov eax, dword [esi + 0x2cc]
test eax, eax
je 0x10008a1a
add eax, 0xffffffff
mov dword [esi + 0x2cc], eax
jne 0x10008a1a
mov eax, dword [esi + 0x2d0]
inc dword [esi + 0x2c0]
or ebx, 4
mov dword [esi + 0x2cc], eax
mov eax, dword [esi + 0x2c4]
test eax, eax
je 0x10008a4b
cmp dword [esi + 0x2bc], eax
jb 0x10008a4b
mov ecx, dword [esi + 0x54]
cmp dword [ecx + 0x78], 0
jne 0x10008a3e
mov eax, dword [esi + 0x5c]
inc eax
cmp eax, dword [ecx + 8]
jle 0x10008a41
or eax, 0xffffffff
mov dword [esi + 0x60], eax
mov dword [esi + 0x74], 0xffffffff
mov ecx, esi
call fcn.100088d0
or ebx, eax
test bl, 0xa
jne 0x100090bf
and ebx, 0xfffffffe
cmp dword [esi + 0x6c], 0
mov dword [esp + 0x20], ebx
je 0x10008a7f
mov dl, byte [esi + 0x68]
mov ecx, dword [esi + 0x70]
and dl, 1
mov eax, dword [esi + 0x2c]
neg dl
mov byte [ecx + eax + 0x96d], dl
mov edx, dword [esi + 0x70]
push 0xf4240
push ecx
add edx, 8
mov ecx, esi
call fcn.10007a00
mov edi, eax
add esp, 8
test edi, edi
jne 0x1000909b
mov eax, dword [esi + 0x2c]
lea edx, [esi + 0x2b4]
mov dword [esp + 0x30], edx
mov dword [eax + 0x26c], 0x2300
mov edi, dword [esi + 0x2c]
mov eax, dword [edx]
mov dword [esp + 0x18], eax
test edi, edi
je 0x10009098
mov ecx, dword [edi + 0x29c]
mov dword [edi + 0x288], 0
test ecx, ecx
je 0x10008b78
mov ebx, dword [edi + 0x26c]
push eax
mov eax, dword [ecx + 0x44]
sar ebx, 8
push ecx
and ebx, 7
call eax
mov edx, dword [esp + 0x38]
add esp, 8
test eax, eax
je 0x10008b74
mov esi, dword [esp + 0x18]
mov ecx, dword [eax + 8]
mov dword [edi + 0x278], ecx
mov ecx, dword [eax + 4]
cmp ecx, ebx
jle 0x10008b4a
mov edx, dword [eax]
push ecx
mov ecx, edi
call fcn.10033a30
mov eax, dword [edi + 0x288]
add esp, 4
test eax, eax
je 0x10008b37
cmp eax, 0x13
jne 0x10008b37
mov dword [edi + 0x288], 0
mov eax, dword [edi + 0x260]
mov ecx, edi
mov dword [edi + 0x290], eax
call fcn.1000a190
mov eax, dword [edi + 0x29c]
mov ebx, dword [edi + 0x26c]
push esi
push eax
mov eax, dword [eax + 0x44]
sar ebx, 8
and ebx, 7
call eax
add esp, 8
test eax, eax
jne 0x10008b01
mov esi, dword [esp + 0x24]
lea edx, [esi + 0x2b4]
mov eax, dword [esp + 0x18]
mov dword [edi + 0x278], eax
mov edi, dword [edi + 0x288]
test edi, edi
jne 0x1000909b
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x2a8]
mov ebx, dword [esi + 0x29c]
mov dword [esi + 0x2a0], edi
mov dword [esi + 0x2ac], ecx
mov eax, dword [eax + 0x28]
mov dword [esp + 0x30], ecx
test al, 4
je 0x10008c97
mov eax, dword [esi + 0x4c]
mov dword [esp + 0x18], eax
test ecx, ecx
jle 0x10008c69
mov edx, dword [eax + 0x144]
test edx, edx
je 0x10008bd7
mov edx, dword [edx]
mov dword [esp + 0x1c], edx
jmp 0x10008bdf
mov dword [esp + 0x1c], 0xf
mov edi, ebx
test cl, 1
je 0x10008bef
mov dword [ebx], 0
lea edi, [ebx + 4]
test cl, 2
je 0x10008c04
mov dword [edi], 0
mov dword [edi + 4], 0
add edi, 8
sar ecx, 2
test ecx, ecx
je 0x10008c1c
and ecx, 0xfffffff
shl ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x30]
xor edi, edi
mov edx, dword [eax + 0x150]
mov ecx, edi
mov eax, edx
sar edx, 9
and eax, dword [esp + 0x1c]
sar eax, cl
and eax, edx
test al, 1
je 0x10008c5b
mov ecx, dword [esp + 0x18]
mov eax, edi
shr eax, 1
mov edx, edi
xor eax, dword [0x1008fa28]
push esi
xor eax, edi
and eax, 1
push ebx
push eax
call fcn.1000c8c0
add esp, 0xc
mov eax, dword [esp + 0x18]
inc edi
cmp edi, 4
jl 0x10008c22
mov esi, dword [esp + 0x24]
sub esp, 8
mov dword [eax + 0x160], 0
mov ecx, dword [esi + 0x29c]
mov edx, ecx
push dword [esi + 0x2b8]
push dword [esi + 0x2ac]
call fcn.1000af00
add esp, 0x10
jmp 0x10008f75
test al, 1
je 0x10008d3d
mov ecx, dword [esi + 0x30]
mov eax, dword [edx]
mov dword [esp + 0x1c], eax
test ecx, ecx
je 0x10008d33
mov edx, dword [ecx + 0x60]
mov ecx, dword [ecx + 0x5c]
mov dword [esp + 0x30], edx
test edx, edx
jne 0x10008ccc
test ecx, ecx
jns 0x10008cc8
neg ecx
shr eax, cl
jmp 0x10008cee
shl eax, cl
jmp 0x10008cee
mov eax, ecx
cdq
mov ecx, eax
mov eax, edx
mul dword [esp + 0x1c]
push 0
push dword [esp + 0x34]
mov edi, eax
mov eax, ecx
mul dword [esp + 0x24]
add edi, edx
push edi
push eax
call fcn.1003e170
mov ecx, dword [esi + 0x30]
add ecx, 0x68
test eax, eax
je 0x10008d10
test al, 0x1f
jne 0x10008d0d
test ebx, ebx
je 0x10008d0d
push eax
mov eax, dword [ecx + 8]
push ebx
push ecx
call eax
add esp, 0xc
jmp 0x10008d10
or eax, 0xffffffff
test eax, eax
jns 0x10008d35
mov edx, dword [ebp + 8]
or ebx, 0xffffffff
mov edi, dword [esp + 0x14]
mov eax, ebx
mov dword [esi + 0x2ac], 0
sub dword [edx], edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [esi + 0x2ac], eax
jmp 0x10008d74
lea eax, [ebx + ecx*4]
test cl, 1
je 0x10008d4e
mov dword [ebx], 0
add ebx, 4
test cl, 2
je 0x10008d63
mov dword [ebx], 0
mov dword [ebx + 4], 0
add ebx, 8
cmp ebx, eax
jae 0x10008d74
xorps xmm0, xmm0
movups xmmword [ebx], xmm0
add ebx, 0x10
cmp ebx, eax
jb 0x10008d67
mov eax, dword [esi + 0x58]
mov ebx, dword [esi + 0x2ac]
mov edi, dword [esi + 0x29c]
mov dword [esp + 0x34], ebx
test byte [eax + 0x28], 0x12
je 0x10008ee0
mov edx, dword [esi + 0x48]
mov dword [esp + 0x1c], edx
test ebx, ebx
jle 0x10008f75
mov cl, byte [edx + 1]
mov al, cl
and al, 1
test edi, edi
jne 0x10008ebb
test al, al
je 0x10008f75
movzx ebx, byte [edx + 3]
mov edi, dword [edx + 0x5c]
movzx eax, cl
mov ecx, edi
and eax, 2
shl ebx, 8
mov dword [esp + 0x28], eax
movzx eax, byte [edx + 5]
add ebx, eax
movzx eax, byte [edx + 7]
shl ebx, 8
add ebx, eax
movzx eax, byte [edx + 0x11]
shl ebx, cl
mov dword [esp + 0x2c], ebx
movzx ebx, byte [edx + 0xf]
shl ebx, 8
add ebx, eax
movzx eax, byte [edx + 0x13]
shl ebx, 8
add ebx, eax
mov eax, dword [edx + 0x44]
shl ebx, cl
mov dword [esp + 0x30], ebx
mov ebx, dword [edx + 0x40]
movzx edx, byte [edx + 0x21]
mov ecx, edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x3c], eax
not ecx
shr edx, 7
and ecx, 3
sub edi, edx
mov dword [esp + 0x38], ebx
mov eax, 0xc392
xor edx, edx
shr eax, cl
imul eax, dword [esp + 0x34]
lea ecx, [edi + 1]
mov edi, dword [esp + 0x1c]
shl eax, cl
div dword [edi + 0x58]
mov edx, eax
mov eax, dword [esp + 0x18]
mov ecx, eax
sub ecx, ebx
cmp edx, ecx
jb 0x10008e8d
cmp dword [esp + 0x28], 0
je 0x10008ea0
mov ecx, dword [esp + 0x30]
sub ebx, eax
add edx, ebx
mov eax, ecx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x18], eax
cmp ebx, ecx
jne 0x10008e74
xor edx, edx
mov dword [edi + 0x44], eax
add ebx, edx
mov dword [edi + 0x40], ebx
jmp 0x10008f75
mov eax, edx
sub ecx, ebx
xor edx, edx
div ecx
mov eax, dword [esp + 0x18]
add ebx, edx
mov dword [edi + 0x44], eax
mov dword [edi + 0x40], ebx
jmp 0x10008f75
cmp dword [esp + 0x28], 0
mov ecx, dword [esp + 0x38]
mov ebx, ecx
mov edx, dword [esp + 0x3c]
mov eax, edx
jne 0x10008eb0
cmp ebx, eax
jb 0x10008eb0
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov byte [edi + 1], 0
mov dword [edi + 0x40], ebx
mov dword [edi + 0x44], eax
jmp 0x10008f75
mov ecx, dword [esp + 0x1c]
mov edx, edi
push ebx
test al, al
jne 0x10008ed3
call fcn.1000e7b0
add esp, 4
jmp 0x10008f75
call fcn.1000e800
add esp, 4
jmp 0x10008f75
mov edx, edi
lea eax, [edx + ebx*4]
mov dword [esp + 0x3c], eax
test bl, 1
je 0x10008efd
movzx ecx, word [edi]
add edi, 4
mov eax, ecx
shl eax, 0x10
or eax, ecx
mov dword [edx], eax
mov edx, edi
test bl, 2
je 0x10008f23
movzx ecx, word [edi]
mov eax, ecx
shl eax, 0x10
or eax, ecx
mov dword [edx], eax
lea edx, [edi + 4]
movzx ecx, word [edi + 4]
add edi, 8
mov eax, ecx
shl eax, 0x10
or eax, ecx
mov dword [edx], eax
mov ebx, dword [esp + 0x3c]
cmp edi, ebx
jae 0x10008f75
add edi, 8
mov edx, edi
movzx ecx, word [edx - 8]
lea edx, [edx + 0x10]
mov eax, ecx
lea edi, [edi + 0x10]
shl eax, 0x10
or eax, ecx
mov dword [edx - 0x18], eax
movzx ecx, word [edx - 0x14]
mov eax, ecx
shl eax, 0x10
or eax, ecx
mov dword [edi - 0x14], eax
movzx ecx, word [edx - 0x10]
mov eax, ecx
shl eax, 0x10
or eax, ecx
mov dword [edi - 0x10], eax
movzx ecx, word [edx - 0xc]
mov eax, ecx
shl eax, 0x10
or eax, ecx
mov dword [edi - 0xc], eax
lea eax, [edx - 8]
cmp eax, ebx
jb 0x10008f30
imul eax, dword [esi + 0x2b4], 0x3e8
mov ecx, dword [esi + 0x2c]
mov edi, dword [esi + 0x2bc]
push 0
push dword [ecx + 0x27c]
mul edi
push edx
push eax
call fcn.1003e170
mov edx, dword [esp + 0x10]
mov dword [esi + 0x284], eax
lea eax, [edi + 1]
mov edi, dword [esp + 0x14]
mov dword [esi + 0x2bc], eax
mov eax, dword [esi + 0x2ac]
mov ecx, edi
cmp eax, edi
lea edi, [esi + 0x2a0]
cmovle ecx, eax
mov eax, dword [esi + 0x29c]
mov dword [esp + 0x1c], ecx
mov ecx, dword [edi]
lea ebx, [eax + ecx*4]
mov ecx, dword [esp + 0x1c]
mov eax, edi
cmp dword [esp + 0x10], ebx
je 0x10009076
test ecx, ecx
jle 0x10009076
mov eax, dword [esp + 0x10]
mov dword [esp + 0x30], edi
lea eax, [eax + ecx*4]
mov dword [esp + 0x2c], eax
test cl, 1
je 0x10009016
mov edx, dword [esp + 0x10]
mov eax, dword [ebx]
mov dword [edx], eax
lea eax, [esi + 0x2a0]
add edx, 4
mov dword [esp + 0x30], eax
add ebx, 4
mov eax, edi
test cl, 2
je 0x10009031
mov eax, dword [ebx]
mov dword [edx], eax
mov eax, dword [ebx + 4]
mov dword [edx + 4], eax
add edx, 8
mov eax, dword [esp + 0x30]
add ebx, 8
cmp edx, dword [esp + 0x2c]
jae 0x10009076
lea edi, [edx + 8]
sub edx, ebx
lea ecx, [ebx + 8]
sub edx, 8
mov ebx, dword [esp + 0x2c]
mov eax, dword [ecx - 8]
lea ecx, [ecx + 0x10]
mov dword [edx + ecx - 0x10], eax
lea edi, [edi + 0x10]
mov eax, dword [ecx - 0x14]
mov dword [edi - 0x14], eax
mov eax, dword [ecx - 0x10]
mov dword [edi - 0x10], eax
mov eax, dword [ecx - 0xc]
mov dword [edi - 0xc], eax
lea eax, [edx + ecx]
cmp eax, ebx
jb 0x10009046
mov ecx, dword [esp + 0x1c]
lea eax, [esi + 0x2a0]
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
add dword [eax], ecx
sub dword [esi + 0x2ac], ecx
sub edi, ecx
mov ebx, dword [esp + 0x20]
lea edx, [edx + ecx*4]
mov dword [esp + 0x10], edx
jmp 0x100089d7
or edi, 0xffffffff
push dword [esi + 0x2bc]
mov ecx, edi
call fcn.1000a3c0
push eax
push edi
push str.libsc68:_abnormal_68K_status__d___s__in_play_pass__u_n
push esi
call fcn.100099c0
mov edi, dword [esp + 0x28]
add esp, 0x14
or ebx, 0xffffffff
mov edx, dword [ebp + 8]
mov eax, ebx
sub dword [edx], edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret