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

Disassembly:
sub esp, 0x44
push ebx
push ebp
mov ebp, dword [esp + 0x54]
push esi
mov ecx, ebp
call fcn.004eee40
test eax, eax
mov esi, dword [esp + 0x5c]
jne 0x4e1421
push esi
mov ecx, ebp
call fcn.004eee50
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp + 0x54]
push eax
push ecx
push esi
push ebp
push ebx
call fcn.004e12f0
add esp, 0x14
test al, al
je 0x4e1ccc
test bl, bl
mov edx, dword [ebp + 0x4c]
mov dword [esp + 0xc], edx
je 0x4e14ad
mov ecx, esi
call fcn.004b6190
test al, al
jne 0x4e14ad
test byte [ebp + 8], 1
je 0x4e14b5
mov ecx, ebp
call fcn.004eee40
test eax, eax
je 0x4e14a6
mov ecx, ebp
call fcn.004eee40
mov ecx, eax
call fcn.004b62b0
test al, al
jne 0x4e14a6
mov al, byte [esp + 0x64]
test al, al
je 0x4e148c
mov eax, dword [ebp + 0x48]
mov dword [esp + 0xc], eax
jmp 0x4e14ad
mov ecx, ebp
call fcn.004eee40
push eax
mov ecx, esi
call fcn.004b5e40
mov ecx, dword [esp + 0xc]
shl eax, 0x18
add ecx, eax
jmp 0x4e14a9
mov ecx, dword [ebp + 0x48]
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x4e14c6
mov eax, dword [esi + 0x4ec]
inc eax
mov dword [esi + 0x4ec], eax
mov dword [esp + 0xc], eax
push edi
push 4
lea edx, [esp + 0x14]
push edx
push 0x524d5246
mov ecx, esi
call fcn.004b6ba0
mov eax, dword [0x7c67e0]
mov ecx, dword [eax]
cmp ebp, dword [ecx + 0xb384]
jne 0x4e14fd
push str.PlayerSaveGame
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
push str.PlayerSaveGame
jmp 0x4e151e
mov edx, dword [ebp + 0x28]
mov edi, edx
mov eax, dword [edi]
mov ecx, edi
mov dword [esp + 0x68], edx
call dword [eax + 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edx, dword [edi]
inc eax
push eax
mov ecx, edi
call dword [edx + 0x20]
push eax
push 0x454d414e
mov ecx, esi
call fcn.004b6ba0
mov ecx, ebp
call fcn.004e54f0
cmp eax, 1
mov dword [esp + 0x14], eax
je 0x4e154d
push 4
lea eax, [esp + 0x18]
push eax
push 0x4e544341
mov ecx, esi
call fcn.004b6ba0
mov ecx, ebp
call fcn.004e58d0
mov ecx, eax
test ecx, ecx
je 0x4e15b6
fld dword [ebp + 0x38]
fcomp dword [ecx]
fnstsw ax
test ah, 0x40
je 0x4e15a7
fld dword [ebp + 0x3c]
fcomp dword [ecx + 4]
fnstsw ax
test ah, 0x40
je 0x4e15a7
fld dword [ebp + 0x40]
fcomp dword [ecx + 8]
fnstsw ax
test ah, 0x40
je 0x4e15a7
fld dword [ebp + 0x2c]
fcomp dword [ecx + 0xc]
fnstsw ax
test ah, 0x40
je 0x4e15a7
fld dword [ebp + 0x30]
fcomp dword [ecx + 0x10]
fnstsw ax
test ah, 0x40
je 0x4e15a7
fld dword [ebp + 0x34]
fcomp dword [ecx + 0x14]
fnstsw ax
test ah, 0x40
jne 0x4e15b6
push 0x18
push ecx
push 0x52505453
mov ecx, esi
call fcn.004b6ba0
mov ecx, dword [ebp + 8]
shr ecx, 0xd
test cl, 1
je 0x4e15d9
push 1
lea edx, [esp + 0x6c]
push edx
push 0x4d414e4d
mov ecx, esi
mov byte [esp + 0x74], 0
call fcn.004b6ba0
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x120]
fcomp dword [0x746470]
fnstsw ax
test ah, 0x40
jne 0x4e1613
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x120]
fstp dword [esp + 0x68]
push 4
lea eax, [esp + 0x6c]
push eax
push 0x4c435358
mov ecx, esi
call fcn.004b6ba0
mov ecx, ebp
call fcn.004e5460
mov ebx, eax
test ebx, ebx
je 0x4e186a
mov ecx, dword [ebp + 0x28]
push 0
push ecx
push ebx
call fcn.004e7970
add esp, 0xc
test al, al
jne 0x4e186a
mov ecx, dword [ebp + 0x28]
add ecx, 4
mov byte [esp + 0x68], 1
call fcn.004ee8b0
cmp eax, 0x4847494c
je 0x4e165b
cmp eax, 0x54415453
jne 0x4e1669
jmp 0x4e1664
mov edx, dword [ebp + 0x28]
test byte [edx + 0x6c], 2
jne 0x4e1669
mov byte [esp + 0x68], 0
mov eax, dword [ebx + 4]
test eax, eax
je 0x4e1720
mov cl, byte [esp + 0x68]
test cl, cl
je 0x4e1720
lea ecx, [eax + 4]
call fcn.004ee8b0
cmp eax, 0x5f43504e
mov eax, dword [ebx + 4]
jne 0x4e16f2
mov ecx, eax
mov edx, dword [ecx]
mov dword [esp + 0x68], eax
mov dword [esp + 0x68], ecx
call dword [edx + 0x20]
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
mov ecx, dword [esp + 0x6c]
mov eax, dword [ecx]
call dword [eax + 0x20]
push eax
push 0x4d414e41
mov ecx, esi
call fcn.004b6ba0
mov eax, dword [ebx + 8]
test eax, eax
je 0x4e1720
mov ecx, eax
mov edx, dword [ecx]
mov dword [esp + 0x68], ecx
call dword [edx + 0x20]
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
mov ecx, dword [esp + 0x6c]
mov eax, dword [ecx]
call dword [eax + 0x20]
push eax
push 0x4d414e42
jmp 0x4e1719
lea edx, [eax + 0x10]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
push edx
push 0x4d414e43
mov ecx, esi
call fcn.004b6ba0
push 4
lea ecx, [ebx + 8]
push ecx
push 0x58444e49
mov ecx, esi
call fcn.004b6ba0
fld dword [ebx + 0x10]
fcomp qword [0x74a130]
fnstsw ax
test ah, 0x40
jne 0x4e17b5
mov ecx, dword [ebp + 0x28]
add ecx, 4
call fcn.004ee8b0
cmp eax, 0x4353494d
jne 0x4e17b5
mov edx, dword [ebp + 0x28]
push edx
call fcn.0049abe0
add esp, 4
test al, al
je 0x4e17b5
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x4e17b5
mov ecx, 0x7cb478
call fcn.004d51b0
mov ecx, dword [ebx + 0x10]
mov dword [esp + 0x68], eax
mov eax, dword [ecx]
call dword [eax + 0x20]
mov edx, dword [esp + 0x68]
or ecx, 0xffffffff
mov edi, eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
shr ecx, 2
mov esi, edi
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
mov ecx, dword [esp + 0x64]
push edx
push 0x4c4f5358
call fcn.004b6ba0
mov esi, dword [esp + 0x60]
mov ecx, dword [ebp + 0x28]
mov edx, dword [ecx]
call dword [edx + 0xd0]
test eax, eax
je 0x4e17de
mov eax, dword [ebx + 0x10]
push 4
lea ecx, [esp + 0x6c]
push ecx
push 0x47484358
mov ecx, esi
mov dword [esp + 0x74], eax
call fcn.004b6ba0
mov ecx, dword [ebp + 0x28]
add ecx, 4
call fcn.004ee8b0
cmp eax, 0x4b434f4c
jg 0x4e181d
je 0x4e1800
cmp eax, 0x41504552
je 0x4e1800
cmp eax, 0x424f5250
jne 0x4e1849
mov ecx, dword [ebp + 0x28]
mov edx, dword [ecx]
call dword [edx + 0xc8]
cmp dword [ebx + 0xc], eax
jle 0x4e1849
mov ecx, dword [ebp + 0x28]
mov eax, dword [ecx]
call dword [eax + 0xc8]
jmp 0x4e1846
cmp eax, 0x4f4d5241
je 0x4e182b
cmp eax, 0x50414557
jne 0x4e1849
mov ecx, dword [ebp + 0x28]
mov edx, dword [ecx]
call dword [edx + 0xa8]
cmp dword [ebx + 0xc], eax
jle 0x4e1849
mov ecx, dword [ebp + 0x28]
mov eax, dword [ecx]
call dword [eax + 0xa8]
mov dword [ebx + 0xc], eax
push 4
lea ecx, [ebx + 0xc]
push ecx
push 0x56544e49
mov ecx, esi
call fcn.004b6ba0
push 4
push ebx
push 0x394d414e
mov ecx, esi
call fcn.004b6ba0
mov ecx, ebp
call fcn.004e5340
mov edi, eax
test edi, edi
je 0x4e18f0
mov eax, dword [edi + 8]
mov edx, dword [eax + 0x38]
mov dword [esp + 0x24], edx
mov ecx, dword [eax + 0x3c]
mov dword [esp + 0x28], ecx
mov edx, dword [eax + 0x40]
mov dword [esp + 0x2c], edx
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x30], ecx
mov edx, dword [eax + 0x30]
push 0x18
lea ecx, [esp + 0x28]
push ecx
mov dword [esp + 0x3c], edx
mov eax, dword [eax + 0x34]
push 0x54444f44
mov ecx, esi
mov dword [esp + 0x44], eax
call fcn.004b6ba0
mov eax, dword [edi]
test eax, eax
je 0x4e18f0
test byte [eax + 0x18], 1
je 0x4e18f0
mov ecx, eax
mov edx, dword [ecx]
mov dword [esp + 0x68], ecx
call dword [edx + 0x20]
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
mov ecx, dword [esp + 0x6c]
mov eax, dword [ecx]
call dword [eax + 0x20]
push eax
push 0x4d414e44
mov ecx, esi
call fcn.004b6ba0
mov ecx, ebp
call fcn.004e5220
mov edi, eax
test edi, edi
mov dword [esp + 0x64], edi
je 0x4e19ae
test byte [edi + 0xc], 1
mov eax, dword [edi]
mov dword [esp + 0x68], eax
jne 0x4e1919
neg eax
mov dword [esp + 0x68], eax
jmp 0x4e1925
test eax, eax
jne 0x4e1925
mov dword [esp + 0x68], DirectSoundCreate
push 4
lea ecx, [esp + 0x6c]
push ecx
push 0x56544c46
mov ecx, esi
call fcn.004b6ba0
mov eax, dword [edi + 4]
test eax, eax
je 0x4e1975
mov edx, dword [esp + 0x64]
mov ecx, dword [edx + 4]
mov eax, dword [ecx]
mov dword [esp + 0x18], ecx
call dword [eax + 0x20]
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
call dword [edx + 0x20]
push eax
push 0x4d414e4b
mov ecx, esi
call fcn.004b6ba0
mov edi, dword [esp + 0x64]
mov eax, dword [edi + 8]
test eax, eax
je 0x4e19ae
mov eax, dword [esp + 0x64]
mov ecx, dword [eax + 8]
mov edx, dword [ecx]
mov dword [esp + 0x64], ecx
call dword [edx + 0x20]
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx]
call dword [eax + 0x20]
push eax
push 0x4d414e54
mov ecx, esi
call fcn.004b6ba0
mov ecx, ebp
call fcn.004e5750
mov edi, eax
test edi, edi
je 0x4e19f4
mov ecx, dword [ebp + 0x28]
add ecx, 4
call fcn.004ee8b0
cmp eax, 0x41455243
je 0x4e19ec
cmp eax, 0x5f43504e
je 0x4e19ec
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x20]
push eax
push str.Trying_to_save_mobile_object_for_non_mobile_reference__s.
call fcn.00477400
add esp, 8
jmp 0x4e19f4
mov eax, dword [edi]
push esi
mov ecx, edi
call dword [eax + 4]
test ebx, ebx
je 0x4e1a40
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x4e1a40
mov ecx, eax
mov edx, dword [ecx]
mov dword [esp + 0x68], ecx
call dword [edx + 0x20]
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
mov ecx, dword [esp + 0x6c]
mov eax, dword [ecx]
call dword [eax + 0x20]
push eax
push 0x49524353
mov ecx, esi
call fcn.004b6ba0
mov ecx, dword [ebx + 0x18]
test ecx, ecx
je 0x4e1a40
mov edx, dword [ebx + 0x14]
add edx, 0x10
push edx
push esi
call fcn.004fd3f0
mov ecx, dword [ebp + 0x28]
add ecx, 4
call fcn.004ee8b0
cmp eax, 0x4356454c
jne 0x4e1bd8
mov ecx, ebp
call fcn.004e7ee0
mov ebx, eax
test ebx, ebx
je 0x4e1bfa
mov eax, dword [ebx + 8]
mov ecx, dword [esp + 0x58]
shr eax, 6
and eax, 0xffffff01
push eax
push 1
push esi
push ebx
push ecx
call fcn.004e12f0
add esp, 0x14
test al, al
je 0x4e1bfa
push 1
lea edx, [esp + 0x6c]
push edx
push 0x5243564c
mov ecx, esi
call fcn.004b6ba0
mov ecx, ebp
call fcn.004eb670
test eax, eax
je 0x4e1ae5
mov ecx, ebp
call fcn.004eb670
mov ecx, dword [eax + 0x50]
test ecx, ecx
mov dword [esp + 0x58], eax
je 0x4e1ae5
call fcn.0047e710
test eax, eax
je 0x4e1ae5
mov edi, dword [eax + 8]
test edi, edi
mov dword [esp + 0x64], edi
je 0x4e1ad5
cmp dword [edi + 4], ebx
je 0x4e1aff
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + 0x50]
call fcn.0047e720
test eax, eax
jne 0x4e1ac5
mov edx, dword [esp + 0x6c]
push edx
push 0
push 1
push esi
push ebx
push 0
call fcn.004e1400
add esp, 0x18
jmp 0x4e1bfa
test edi, edi
je 0x4e1ae5
test byte [edi], 1
jne 0x4e1ae5
push 4
lea ecx, [edi + 8]
push ecx
push 0x4652564d
mov ecx, esi
call fcn.004b6ba0
mov ecx, dword [edi + 4]
call fcn.004eb670
mov ebx, eax
test byte [ebx + 0x18], 1
je 0x4e1b83
mov ecx, 0x7cb478
call fcn.004d51b0
mov edx, dword [ebx]
mov ecx, ebx
mov dword [esp + 0x58], eax
call dword [edx + 0x20]
mov edx, dword [esp + 0x58]
or ecx, 0xffffffff
mov edi, eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
shr ecx, 2
mov esi, edi
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
mov ecx, dword [esp + 0x64]
push edx
push 0x4d414e43
call fcn.004b6ba0
mov edi, dword [esp + 0x64]
jmp 0x4e1ba4
mov eax, dword [ebx + 0x24]
push 8
lea ecx, [esp + 0x1c]
push ecx
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 0x28]
push 0x54444e43
mov ecx, esi
mov dword [esp + 0x28], eax
call fcn.004b6ba0
mov ecx, dword [0x7c67e0]
push 1
push ebx
call fcn.00484af0
mov ecx, dword [edi + 4]
mov byte [esp + 0x58], al
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x60]
push edx
push 1
push 1
push eax
push ecx
push 0
call fcn.004e1400
mov esi, dword [esp + 0x78]
add esp, 0x18
jmp 0x4e1bfa
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x4e1bfa
mov al, byte [esp + 0x6c]
test al, al
je 0x4e1bfa
push 1
lea eax, [esp + 0x64]
push eax
push 0x4433444e
mov ecx, esi
call fcn.004b6ba0
mov ecx, ebp
call fcn.004e4d50
xor bl, bl
test eax, eax
pop edi
jne 0x4e1c1c
mov ecx, ebp
call fcn.004e4da0
mov ecx, ebp
call fcn.004e4d50
test eax, eax
mov bl, 1
je 0x4e1c48
mov cl, byte [eax + 8]
mov edx, dword [eax + 0xc]
push 8
lea eax, [esp + 0x18]
push eax
mov byte [esp + 0x1c], cl
push 0x53494e41
mov ecx, esi
mov dword [esp + 0x24], edx
call fcn.004b6ba0
test bl, bl
je 0x4e1c48
mov ecx, ebp
call fcn.004e4f50
mov ecx, dword [ebp + 0x38]
mov edx, dword [ebp + 0x3c]
mov eax, dword [ebp + 0x40]
mov dword [esp + 0x38], ecx
mov ecx, dword [ebp + 0x2c]
mov dword [esp + 0x44], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x3c], edx
mov edx, dword [ebp + 0x30]
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0x34]
shr ecx, 0xb
test cl, 1
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], eax
mov byte [esp + 0x58], 0
je 0x4e1c95
push 1
lea edx, [esp + 0x5c]
push edx
push 0x4d414e5a
mov ecx, esi
call fcn.004b6ba0
mov eax, dword [ebp + 8]
shr eax, 5
test al, 1
je 0x4e1cb9
push 4
lea ecx, [esp + 0x20]
push ecx
push 0x454c4544
mov ecx, esi
call fcn.004b6ba0
pop esi
pop ebp
pop ebx
add esp, 0x44
ret
push 0x18
lea edx, [esp + 0x3c]
push edx
push 0x41544144
mov ecx, esi
call fcn.004b6ba0
pop esi
pop ebp
pop ebx
add esp, 0x44
ret