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

Disassembly:
sub esp, 0x24
push ebx
push ebp
push esi
mov esi, dword [0x8cccd8]
test esi, esi
push edi
mov edi, eax
jne 0x4d6971
push 0x7f02
push esi
call dword [sym.imp.USER32.dll_LoadCursorA]
mov esi, eax
call dword [sym.imp.USER32.dll_GetCursor]
mov dword [esp + 0x1c], eax
mov eax, esi
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov ebx, str.TBB_HigherAlpha.dds
mov eax, 0x8e86f0
call fcn.00412f10
xor ebx, ebx
call fcn.004b27e0
inc ebx
cmp ebx, 3
jl 0x4d6995
mov esi, dword [0x72ed74]
mov al, byte [esi + 0xf0]
mov ecx, dword [0x8ccbd4]
mov byte [edi + 0x15], al
mov dword [edi + 0x18], ecx
mov ecx, dword [0x728ae8]
lea edx, [edi + 0x1c]
mov dword [edx], ecx
mov ecx, dword [0x728aec]
mov dword [edx + 4], ecx
mov ecx, dword [0x728af0]
xor ebx, ebx
cmp al, bl
mov dword [edx + 8], ecx
jne 0x4d69e0
call fcn.004e46f0
mov edx, dword [0x728a84]
mov eax, dword [0x7283bc]
mov dword [edx*4 + 0x7288f4], eax
mov edx, dword [0x728a84]
inc edx
push 0x2ee
mov dword [0x728a84], edx
mov dword [0x7283bc], 0x800ce475
call fcn.004ae1f0
mov dword [esp + 0x28], 0xc61b7000
mov ecx, dword [esp + 0x28]
mov dword [0x728ae8], ecx
mov dword [esp + 0x2c], 0x46180400
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x30], 0xc6a6ea00
mov eax, dword [esp + 0x30]
mov dword [0x728aec], edx
sub esp, 0xc
mov dword [0x728af0], eax
mov dword [esp + 0x34], 0
mov edx, dword [esp + 0x34]
mov ecx, esp
mov dword [ecx], edx
mov dword [esp + 0x38], 0
mov eax, dword [esp + 0x38]
mov dword [ecx + 4], eax
mov dword [esp + 0x3c], 0
mov edx, dword [esp + 0x3c]
mov dword [ecx + 8], edx
mov dword [esp + 0x40], 0x3ecccccd
mov eax, dword [esp + 0x40]
mov dword [ecx + 0xc], eax
mov ecx, dword [0x8cb7d0]
mov byte [0x8cbdf4], 1
call fcn.0050ce10
mov ecx, dword [edi + 8]
mov edx, ecx
shl edx, 5
cmp ecx, 0xffffffff
movsx eax, byte [edx + 0x862b74]
je 0x4d6aba
mov eax, ecx
shl eax, 5
movsx eax, byte [eax + 0x862b74]
cmp byte [0x727fdc], bl
je 0x4d6ad6
cmp eax, ebx
jge 0x4d6aca
xor eax, eax
jmp 0x4d6ae8
cmp eax, 4
jle 0x4d6ae8
mov eax, 4
jmp 0x4d6ae8
cmp eax, ebx
jge 0x4d6ade
xor eax, eax
jmp 0x4d6ae8
cmp eax, 3
jle 0x4d6ae8
mov eax, 3
push eax
push ecx
call fcn.004824c0
mov esi, eax
mov eax, dword [0x8ec034]
add esp, 8
cmp eax, esi
je 0x4d6b25
cmp eax, ebx
je 0x4d6b18
mov ebp, dword [eax + 4]
mov ecx, eax
add eax, 4
dec ebp
mov edx, ebp
cmp edx, ebx
mov dword [eax], ebp
jne 0x4d6b18
mov edx, dword [ecx]
push 1
call dword [edx]
cmp esi, ebx
mov dword [0x8ec034], esi
je 0x4d6b25
inc dword [esi + 4]
push ebx
push ebx
push ebx
push ebx
push 1
push 0xffffffffffffffff
push ebx
push ebx
push ebx
push ebx
push str.shipw_pc.kfm
push ecx
mov ecx, dword [0x8ec000]
mov eax, esp
mov dword [eax], ecx
mov eax, ecx
cmp eax, ebx
je 0x4d6b4a
inc dword [eax + 4]
call fcn.004afb00
mov esi, eax
mov eax, dword [0x8ec038]
add esp, 0x30
cmp eax, esi
je 0x4d6b85
cmp eax, ebx
je 0x4d6b78
mov ebp, dword [eax + 4]
mov ecx, eax
add eax, 4
dec ebp
mov edx, ebp
cmp edx, ebx
mov dword [eax], ebp
jne 0x4d6b78
mov edx, dword [ecx]
push 1
call dword [edx]
cmp esi, ebx
mov dword [0x8ec038], esi
je 0x4d6b85
inc dword [esi + 4]
push 0xc0
call fcn.005354b8
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x4d6bdf
mov eax, dword [0x8ec000]
mov edx, dword [0x729444]
push ebx
push ebx
push ebx
push ebx
push 0xffffffffffffffff
push ebx
push ebx
mov dword [esi + 4], ebx
push ebx
mov dword [esi], 0x6ff14c
mov dword [esi + 0x1c], ebx
push ebx
mov dword [esi + 0x64], ebx
inc edx
mov dword [esi + 0xbc], ebx
push eax
mov ebx, 1
mov eax, str.pouch.kfm
mov ecx, esi
mov dword [0x729444], edx
call fcn.004be370
xor ebx, ebx
jmp 0x4d6be1
xor esi, esi
mov eax, dword [0x8ec03c]
cmp eax, esi
je 0x4d6c12
cmp eax, ebx
je 0x4d6c05
mov ebp, dword [eax + 4]
mov ecx, eax
add eax, 4
dec ebp
mov edx, ebp
cmp edx, ebx
mov dword [eax], ebp
jne 0x4d6c05
mov eax, dword [ecx]
push 1
call dword [eax]
cmp esi, ebx
mov dword [0x8ec03c], esi
je 0x4d6c12
inc dword [esi + 4]
push 0xc0
call fcn.005354b8
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x4d6c6c
mov eax, dword [0x8ebff8]
mov edx, dword [0x729444]
push ebx
push ebx
push ebx
push ebx
push 0xffffffffffffffff
push ebx
push ebx
mov dword [esi + 4], ebx
push ebx
mov dword [esi], 0x6ff14c
mov dword [esi + 0x1c], ebx
push ebx
mov dword [esi + 0x64], ebx
inc edx
mov dword [esi + 0xbc], ebx
push eax
mov ebx, 1
mov eax, str.sw_dock.nif
mov ecx, esi
mov dword [0x729444], edx
call fcn.004be370
xor ebx, ebx
jmp 0x4d6c6e
xor esi, esi
mov eax, dword [0x8ec044]
cmp eax, esi
je 0x4d6c9f
cmp eax, ebx
je 0x4d6c92
mov ebp, dword [eax + 4]
mov ecx, eax
add eax, 4
dec ebp
mov edx, ebp
cmp edx, ebx
mov dword [eax], ebp
jne 0x4d6c92
mov edx, dword [ecx]
push 1
call dword [edx]
cmp esi, ebx
mov dword [0x8ec044], esi
je 0x4d6c9f
inc dword [esi + 4]
push 0xc0
call fcn.005354b8
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x4d6cf9
mov eax, dword [0x8ebff8]
mov edx, dword [0x729444]
push ebx
push ebx
push ebx
push ebx
push 0xffffffffffffffff
push ebx
push ebx
mov dword [esi + 4], ebx
push ebx
mov dword [esi], 0x6ff14c
mov dword [esi + 0x1c], ebx
push ebx
mov dword [esi + 0x64], ebx
inc edx
mov dword [esi + 0xbc], ebx
push eax
mov ebx, 1
mov eax, str.sw_scene.nif
mov ecx, esi
mov dword [0x729444], edx
call fcn.004be370
xor ebx, ebx
jmp 0x4d6cfb
xor esi, esi
mov eax, dword [0x8ec040]
cmp eax, esi
je 0x4d6d2c
cmp eax, ebx
je 0x4d6d1f
mov ebp, dword [eax + 4]
mov ecx, eax
add eax, 4
dec ebp
mov edx, ebp
cmp edx, ebx
mov dword [eax], ebp
jne 0x4d6d1f
mov eax, dword [ecx]
push 1
call dword [eax]
cmp esi, ebx
mov dword [0x8ec040], esi
je 0x4d6d2c
inc dword [esi + 4]
mov eax, dword [edi + 8]
shl eax, 5
mov cl, byte [eax + 0x862b74]
cmp cl, 4
lea eax, [eax + 0x862b74]
jge 0x4d6d5a
movsx eax, cl
movsx ecx, byte [0x86ba73]
movsx edx, word [eax*2 + 0x86ba88]
push ecx
push eax
push edx
jmp 0x4d6d6b
movsx eax, byte [0x86ba73]
movsx ecx, word [0x86baa8]
push eax
push ecx
push ebx
mov ebx, dword [0x8ec038]
call fcn.004bd460
mov eax, dword [0x8ec040]
call fcn.004bb170
mov edx, dword [0x8ec040]
mov ebx, dword [0x8ec044]
push 0xffffffffffffffff
push 0x32
push str.fx_dock
push edx
call fcn.004c1750
mov esi, dword [0x8ec040]
push str.shadow_01
lea ebx, [esp + 0x28]
call fcn.004c16d0
mov eax, dword [0x8ec040]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
add eax, 0x78
mov esi, eax
mov eax, dword [esp + 0x24]
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], edx
mov esi, dword [0x8ec044]
add esi, 0x78
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], edx
mov esi, dword [0x8ec034]
add esi, 0x78
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], edx
mov esi, dword [0x8ec038]
add esi, 0x78
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], edx
mov esi, dword [0x8ec03c]
add esi, 0x78
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], edx
mov al, byte [0x727d98]
mov ecx, dword [0x728820]
mov byte [ecx + 0x728814], al
mov edx, dword [0x728820]
inc edx
test al, al
mov dword [0x728820], edx
je 0x4d6e38
call fcn.00481060
mov ecx, dword [0x8cb7c0]
mov edx, dword [0x8cb7c4]
mov ebx, 1
mov byte [0x727d98], 0
mov byte [ecx + 0xb4], bl
mov byte [edx + 0xb4], bl
mov eax, dword [0x8ebff4]
push eax
mov byte [0x8cbdf4], bl
call fcn.00536dc0
mov ecx, dword [0x8ebff4]
push ecx
mov ecx, dword [0x8cb7c4]
call fcn.00536dc0
mov edx, dword [0x72ed74]
mov esi, dword [edx + 0x1c]
test esi, esi
je 0x4d6e8f
inc dword [esi + 4]
mov ecx, dword [0x8cb7c0]
push esi
call fcn.00536dc0
test esi, esi
je 0x4d6eab
dec dword [esi + 4]
jne 0x4d6eab
mov eax, dword [esi]
push ebx
mov ecx, esi
call dword [eax]
mov ecx, dword [0x72ed74]
mov esi, dword [ecx + 0x1c]
test esi, esi
je 0x4d6ebb
inc dword [esi + 4]
mov ecx, dword [0x8cb7c4]
push esi
call fcn.00536dc0
test esi, esi
je 0x4d6ed7
dec dword [esi + 4]
jne 0x4d6ed7
mov edx, dword [esi]
push ebx
mov ecx, esi
call dword [edx]
mov eax, dword [0x8ebff8]
mov ecx, dword [0x8cb7c0]
push eax
call fcn.00536dc0
mov ecx, dword [0x8ebff8]
push ecx
mov ecx, dword [0x8cb7c4]
call fcn.00536dc0
mov eax, dword [0x8ec040]
mov esi, eax
call fcn.004bb170
mov ebx, eax
call fcn.004bf5b0
mov eax, dword [0x8ec038]
mov esi, dword [0x8ec040]
call fcn.004bb170
mov ebx, eax
call fcn.004bf5b0
mov eax, dword [0x8ec03c]
mov esi, dword [0x8ec040]
call fcn.004bb170
mov ebx, eax
call fcn.004bf5b0
mov eax, dword [0x8ec034]
mov esi, dword [0x8ec040]
call fcn.004bb170
mov ebx, eax
call fcn.004bf5b0
mov edi, 0x8162f8
mov ebp, 0x8ec014
mov dword [esp + 0x14], edi
mov ecx, dword [ebp]
test ecx, ecx
je 0x4d6f79
dec dword [ecx + 4]
jne 0x4d6f72
mov edx, dword [ecx]
push 1
call dword [edx]
mov dword [ebp], 0
mov ax, word [edi]
cmp ax, 0xffff
je 0x4d707f
movsx eax, ax
cdq
mov ecx, 9
idiv ecx
push 0
lea ecx, [edx + edx*2]
shl ecx, 6
add ecx, 0x8cda18
call fcn.004bbbd0
mov ecx, dword [ebp]
mov esi, eax
cmp ecx, esi
je 0x4d6fc6
test ecx, ecx
je 0x4d6fbc
dec dword [ecx + 4]
jne 0x4d6fbc
mov edx, dword [ecx]
push 1
call dword [edx]
test esi, esi
mov dword [ebp], esi
je 0x4d6fc6
inc dword [esi + 4]
movsx eax, word [edi + 0x22]
mov ecx, dword [ebp]
call fcn.004bd190
movsx eax, word [edi + 0x20]
mov ecx, dword [ebp]
call fcn.004bd130
mov esi, dword [ebp]
mov bl, byte [edi + 0x2c]
mov ecx, dword [esi + 0xbc]
and bl, 1
test ecx, ecx
mov byte [esp + 0x18], bl
je 0x4d6fff
mov eax, dword [esp + 0x18]
push eax
call fcn.004bce10
test bl, bl
mov eax, dword [esi + 0x3c]
je 0x4d700f
test al, 1
jne 0x4d7021
or eax, 1
jmp 0x4d7016
test al, 1
je 0x4d7021
and eax, 0xfffffffe
mov ecx, esi
push eax
mov dword [esi + 0x3c], eax
call fcn.004bcc90
cmp edi, 0x8185d8
jl 0x4d704c
mov eax, dword [edi + 0x58]
test ah, 0x20
jne 0x4d7045
test ah, 0x40
je 0x4d704c
mov di, word [edi + 0x38]
test di, di
jle 0x4d704c
cmp di, 0xa
jge 0x4d704c
mov byte [esp + 0x10], 1
jmp 0x4d7051
mov byte [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
mov esi, dword [ebp]
push 0
push ecx
mov edi, 0x700198
call fcn.004bceb0
mov edi, dword [ebp]
call fcn.004afbe0
mov edx, dword [ebp]
mov edi, dword [edx + 0xbc]
call fcn.004afbe0
mov edi, dword [esp + 0x14]
add edi, 0x45c
add ebp, 4
cmp edi, 0x8185d8
mov dword [esp + 0x14], edi
jl 0x4d6f60
mov eax, dword [esp + 0x1c]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret