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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x7300e1
push eax
mov dword fs:[0], esp
sub esp, 0x18
push ebx
xor eax, eax
mov ax, word [0x7d4f10]
push ebp
push esi
push edi
push eax
call fcn.00595370
mov esi, eax
add esp, 4
test esi, esi
je 0x5fe128
push 0xffff8047
mov ecx, esi
call fcn.00582a70
push esi
call fcn.005fcb30
add esp, 4
mov ecx, esi
call fcn.00577fb0
push esi
call fcn.00727530
add esp, 4
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x40]
push edx
mov edx, dword [esp + 0x40]
push eax
push ecx
push edx
call fcn.005fe7b0
mov eax, dword [0x7c67e0]
mov eax, dword [eax]
mov esi, dword [eax + 0x1c]
mov ebp, dword [sym.imp.MSVCRT.dll_rand]
mov edi, dword [esi + 4]
add esp, 0x14
call ebp
xor edx, edx
div edi
mov ecx, esi
push edx
call fcn.0047e740
mov ecx, dword [0x7c67dc]
mov esi, dword [eax + 8]
call fcn.0040ff20
mov ecx, dword [eax + 0x560]
mov ecx, dword [ecx + 0x6c]
add esi, 0x10
push esi
call fcn.004d7750
mov ecx, dword [0x7c67dc]
call fcn.0040ff20
mov eax, dword [eax + 0x664]
push esi
mov ecx, eax
call fcn.004d7750
mov ecx, dword [0x7c67dc]
call fcn.0040ff20
mov ecx, dword [0x7c67dc]
mov esi, eax
call fcn.0040ff20
mov edx, dword [eax + 0x560]
mov ebx, dword [edx + 0x6c]
call ebp
mov edi, eax
and edi, reloc.DSOUND.dll_DirectSoundCreate
jns 0x5fe1d5
dec edi
or edi, 0xfffffffe
inc edi
mov ecx, dword [0x7c67dc]
call fcn.0040ff20
mov eax, dword [eax + 0x560]
mov ecx, dword [eax + 0x6c]
mov dword [esp + 0x48], ecx
mov ecx, dword [0x7c67dc]
call fcn.0040ff20
mov edx, dword [eax + 0x664]
mov ecx, dword [0x7c67dc]
mov dword [esp + 0x44], edx
call fcn.0040ff20
mov eax, dword [eax + 0x560]
mov edx, 1
cmp edi, edx
jne 0x5fe231
mov ecx, dword [esp + 0x48]
or dword [ecx + 0x34], edx
mov ecx, dword [esp + 0x44]
or dword [ecx + 0x34], edx
mov ecx, dword [eax + 0x34]
or ecx, edx
jmp 0x5fe24e
mov ecx, dword [esp + 0x48]
mov edi, dword [ecx + 0x34]
mov edx, 0xfffffffe
and edi, edx
mov dword [ecx + 0x34], edi
mov ecx, dword [esp + 0x44]
and dword [ecx + 0x34], edx
mov ecx, dword [eax + 0x34]
and ecx, edx
push 0x14
mov dword [eax + 0x34], ecx
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x48], eax
xor edi, edi
cmp eax, edi
mov dword [esp + 0x30], edi
je 0x5fe276
mov ecx, eax
call fcn.0047e1e0
mov dword [esp + 0x48], eax
jmp 0x5fe27a
mov dword [esp + 0x48], edi
push 0x14
mov dword [esp + 0x34], 0xffffffff
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x44], eax
cmp eax, edi
mov dword [esp + 0x30], 1
je 0x5fe2a9
mov ecx, eax
call fcn.0047e1e0
mov dword [esp + 0x44], eax
jmp 0x5fe2ad
mov dword [esp + 0x44], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x30], 2
mov dword [esp + 0x3c], edi
mov eax, dword [0x7c67e0]
mov eax, dword [eax]
mov ecx, dword [eax + 0xc]
mov byte [esp + 0x30], 3
call fcn.004f1ab0
mov edi, eax
test edi, edi
je 0x5fe371
lea ecx, [edi + 4]
call fcn.004ee8b0
cmp eax, 0x59444f42
jne 0x5fe360
test byte [edi + 0x3a], 2
jne 0x5fe360
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x54]
push eax
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x54]
push eax
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x5fe360
mov al, byte [edi + 0x3b]
test al, al
jne 0x5fe360
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x6c]
xor ecx, ecx
mov cl, byte [edi + 0x3a]
and ecx, 1
cmp ecx, eax
jne 0x5fe360
movsx eax, byte [edi + 0x38]
sub eax, 0
je 0x5fe348
dec eax
jne 0x5fe360
mov ecx, ebx
call fcn.004d5c70
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x20]
mov ecx, dword [esp + 0x44]
push edi
jmp 0x5fe35b
mov ecx, ebx
call fcn.004d5c40
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x20]
mov ecx, dword [esp + 0x48]
push edi
call fcn.0047e360
mov ecx, edi
call fcn.006b6890
mov edi, eax
test edi, edi
jne 0x5fe2db
mov ecx, dword [esp + 0x48]
mov edi, dword [ecx + 4]
call ebp
xor edx, edx
div edi
mov ecx, dword [esp + 0x48]
push edx
call fcn.0047e740
mov eax, dword [eax + 8]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x20]
push eax
mov ecx, ebx
call fcn.004d7830
mov eax, dword [esp + 0x44]
mov edi, dword [eax + 4]
call ebp
xor edx, edx
div edi
mov ecx, dword [esp + 0x44]
push edx
call fcn.0047e740
mov eax, dword [eax + 8]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x20]
push eax
mov ecx, ebx
call fcn.004d7890
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx]
push 0
call dword [eax + 0x11c]
mov ecx, dword [esi + 0x660]
mov edx, dword [ecx]
push 0
call dword [edx + 0x11c]
mov ecx, esi
call fcn.00566500
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xac]
test al, al
je 0x5fe402
mov ecx, dword [esi + 0x660]
mov edx, dword [ecx]
call dword [edx + 0x2c]
jmp 0x5fe40a
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx]
call dword [eax + 0x2c]
mov edx, dword [eax]
push 1
mov ecx, eax
call dword [edx + 0x50]
mov eax, dword [esi + 0xc8]
test eax, eax
jne 0x5fe44d
push 0x98
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x38], eax
test eax, eax
mov byte [esp + 0x30], 4
je 0x5fe440
mov ecx, eax
call fcn.00564ab0
jmp 0x5fe442
xor eax, eax
mov byte [esp + 0x30], 3
mov dword [esi + 0xc8], eax
mov ecx, dword [esi + 0xc8]
push esi
call fcn.00564e40
mov eax, dword [0x7c67dc]
mov ecx, dword [eax + 0x5c]
call fcn.00563640
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x78]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x20]
mov ecx, dword [0x7c67dc]
mov edi, dword [esi + 0x560]
call fcn.0040ff20
push eax
mov ecx, edi
call fcn.00496680
mov ecx, dword [esi + 0x560]
mov edx, dword [ecx]
call dword [edx + 0x110]
mov ecx, dword [esi + 0x560]
call fcn.004d9dd0
mov eax, dword [0x7c67e0]
mov eax, dword [eax]
mov edi, dword [eax + 0x24]
mov esi, dword [edi + 4]
call ebp
xor edx, edx
div esi
mov ecx, edi
push edx
call fcn.0047e740
mov esi, dword [eax + 8]
mov al, byte [esi + 0x84]
test al, al
jne 0x5fe4ee
mov esi, dword [edi + 4]
call ebp
xor edx, edx
div esi
mov ecx, edi
push edx
call fcn.0047e740
mov esi, dword [eax + 8]
mov al, byte [esi + 0x84]
test al, al
je 0x5fe4d0
mov ecx, dword [0x7c67dc]
call fcn.0040ff20
mov ecx, dword [eax + 0x560]
mov ecx, dword [ecx + 0x6c]
add esi, 0x10
push esi
call fcn.004d77d0
mov edx, dword [0x7c67e0]
mov eax, dword [edx]
mov esi, dword [eax + 0x44]
mov edi, dword [esi + 4]
call ebp
xor edx, edx
div edi
mov ecx, esi
push edx
call fcn.0047e740
mov ecx, dword [0x7c67dc]
mov esi, dword [eax + 8]
call fcn.0040ff20
mov dword [eax + 0x670], esi
mov ecx, dword [0x7c67dc]
call fcn.0040ff20
mov eax, dword [eax + 0x560]
mov eax, dword [eax + 0x6c]
mov word [eax + 0x7c], 1
mov ecx, dword [0x7c67dc]
call fcn.0040ff20
mov ecx, dword [eax + 0x560]
mov ecx, dword [ecx + 0x6c]
call fcn.004d78f0
mov ecx, dword [0x7c67dc]
call fcn.0040ff20
mov ecx, eax
call fcn.0054ccc0
mov ecx, dword [0x7c67dc]
call fcn.0040ff20
mov ecx, eax
call fcn.0052c9b0
call fcn.00626280
call fcn.005e13a0
mov edx, dword [0x7de6cc]
mov eax, dword [0x7de6d0]
push str.Seyda_Neen__2___9
sub esp, 0xc
mov dword [esp + 0x20], edx
lea edx, [esp + 0x20]
mov ecx, esp
mov dword [esp + 0x48], esp
push edx
mov dword [esp + 0x30], 0xc61f5bc5
mov dword [esp + 0x34], 0xc78bb717
mov dword [esp + 0x38], 0x43680000
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 0x3f490fdb
call fcn.0040a7e0
sub esp, 0xc
lea eax, [esp + 0x38]
mov ecx, esp
mov dword [esp + 0x54], esp
push eax
call fcn.0040a7e0
call fcn.0045c970
mov ecx, dword [esp + 0x64]
add esp, 0x1c
test ecx, ecx
je 0x5fe610
mov edx, dword [ecx]
push 1
call dword [edx]
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x5fe61e
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [esp + 0x28]
pop edi
pop esi
pop ebp
mov al, 1
mov dword fs:[0], ecx
pop ebx
add esp, 0x24
ret