Function at 0x44db20
Capabilities:
Read file on windows
Resolve function by parsing pe exports

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x580
lea ecx, [esp + 0x64]
mov dword [0x47e17c], 0
push ebx
push ebp
push esi
xor ebx, ebx
push edi
push ebx
push ebx
push eax
push ecx
mov dword [0x47e180], 0
mov dword [0x47e184], 0
mov dword [0x47e188], ebx
mov dword [0x47e18c], ebx
mov dword [0x47e190], ebx
mov dword [0x47e194], ebx
call fcn.00408370
add esp, 0x10
test eax, eax
je 0x44e03f
lea edx, [esp + 0x10]
lea eax, [esp + 0x74]
push edx
push eax
call fcn.00408200
add esp, 8
test eax, eax
je 0x44e025
mov ebp, dword [sym.imp.KERNEL32.dll_ReadFile]
lea ecx, [esp + 0x10]
push 0x4856d4
push ecx
push str._____Resource_:
call fcn.00408c50
push 0x10
lea edx, [esp + 0x20]
push str.START_LOCATION
push edx
call fcn.004514c0
add esp, 0x18
test eax, eax
jne 0x44dbf7
push 0xc
lea eax, [esp + 0x78]
push 0x47e17c
push eax
call fcn.00408350
push 0xc
lea ecx, [esp + 0x84]
push 0x47e188
push ecx
call fcn.00408350
add esp, 0x18
jmp 0x44e00b
push 0x10
lea edx, [esp + 0x14]
push str.LEVEL_CAMERA
push edx
call fcn.004514c0
add esp, 0xc
test eax, eax
jne 0x44dc9f
mov eax, 0xf0f0f0f1
mov esi, dword [esp + 0x74]
mul dword [esp + 0x20]
shr edx, 6
cmp edx, ebx
jle 0x44e00b
mov edi, edx
lea eax, [esp + 0x3c]
push ebx
push eax
lea ecx, [esp + 0x1a4]
push 0x44
push ecx
push esi
call ebp
mov edx, dword [0x47db28]
mov eax, dword [0x47db2c]
cmp edx, eax
jl 0x44dc66
mov eax, dword [0x47db30]
push eax
push 0x47db28
call fcn.00407e80
add esp, 8
test eax, eax
je 0x44dc97
mov eax, dword [0x47db34]
lea ecx, [esp + 0x19c]
push eax
imul eax, dword [0x47db28]
push ecx
mov ecx, dword [0x47db38]
add eax, ecx
push eax
call fcn.00450dd0
mov eax, dword [0x47db28]
add esp, 0xc
inc eax
mov dword [0x47db28], eax
dec edi
jne 0x44dc2d
jmp 0x44e00b
push 0x10
lea edx, [esp + 0x14]
push str.LEVEL_FACEFLAGS
push edx
call fcn.004514c0
add esp, 0xc
test eax, eax
jne 0x44dcce
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x74]
push eax
push ecx
call fcn.00418670
add esp, 8
jmp 0x44e00b
push 0x10
lea edx, [esp + 0x14]
push str.LEVEL_OBJECTS
push edx
call fcn.004514c0
add esp, 0xc
test eax, eax
jne 0x44dd76
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x74]
push fcn.0041b920
push 0xa
lea eax, [esp + 0x340]
push 0x3c
push eax
call fcn.00408810
cmp esi, ebx
jbe 0x44dd64
lea ecx, [esp + 0x2d4]
push ecx
push edi
call fcn.00418590
mov eax, dword [esp + 0x2e0]
mov edx, dword [esp + 0x2e4]
neg eax
shl edx, 4
shl eax, 2
lea ecx, [esp + 0x318]
sub eax, edx
push 0x4856d4
push ecx
push str.____________Level_Object:
lea esi, [esi + eax - 0x2bc]
call fcn.00408c50
lea edx, [esp + 0x2e8]
push edx
call fcn.00418440
add esp, 0x18
cmp esi, ebx
ja 0x44dd0c
push str.____________Level_Object_Loaded
call fcn.00408b90
add esp, 4
jmp 0x44e00b
push 0x10
lea eax, [esp + 0x14]
push str.ACTORS_LIST
push eax
call fcn.004514c0
add esp, 0xc
test eax, eax
jne 0x44ddaf
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x78]
push edx
push eax
push ecx
call fcn.0042d8e0
add esp, 0x10
jmp 0x44e00b
push 0x10
lea edx, [esp + 0x14]
push str.LEVEL_TRIGGERS
push edx
call fcn.004514c0
add esp, 0xc
test eax, eax
jne 0x44dde3
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x74]
push eax
push ecx
push edx
call fcn.0042dba0
add esp, 0xc
jmp 0x44e00b
push 0x10
lea eax, [esp + 0x14]
push str.RECOVER_INFO
push eax
call fcn.004514c0
add esp, 0xc
test eax, eax
jne 0x44de12
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x74]
push ecx
push edx
call fcn.00447dc0
add esp, 8
jmp 0x44e00b
push 0x10
lea eax, [esp + 0x14]
push str.LEVEL_ZONES
push eax
call fcn.004514c0
add esp, 0xc
test eax, eax
jne 0x44deea
mov eax, 0xcccccccd
mov edi, dword [esp + 0x2c]
mul dword [esp + 0x20]
mov ebx, dword [esp + 0x74]
push 0x28
push 0xa
mov esi, edx
push 0x64
push 0x485408
shr esi, 5
call fcn.00407e20
add esp, 0x10
test esi, esi
jbe 0x44e009
mov ebp, esi
xor esi, esi
lea ecx, [esp + 0x38]
push esi
push ecx
lea edx, [esp + 0x48]
push 0x28
push edx
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp edi, esi
jne 0x44de85
mov word [esp + 0x66], si
mov word [esp + 0x64], si
mov eax, dword [0x485408]
mov ecx, dword [0x48540c]
cmp eax, ecx
jl 0x44deac
mov ecx, dword [0x485410]
push ecx
push 0x485408
call fcn.00407e80
add esp, 8
test eax, eax
je 0x44deda
mov eax, dword [0x485414]
mov esi, dword [0x485418]
push eax
imul eax, dword [0x485408]
lea edx, [esp + 0x44]
add eax, esi
push edx
push eax
call fcn.00450dd0
mov eax, dword [0x485408]
add esp, 0xc
inc eax
mov dword [0x485408], eax
dec ebp
jne 0x44de61
mov ebp, dword [sym.imp.KERNEL32.dll_ReadFile]
xor ebx, ebx
jmp 0x44e00b
push 0x10
lea eax, [esp + 0x14]
push str.TEXTPLANES_LIST
push eax
call fcn.004514c0
add esp, 0xc
test eax, eax
jne 0x44df97
mov eax, 0x88888889
mov esi, dword [esp + 0x74]
mul dword [esp + 0x20]
shr edx, 6
cmp edx, ebx
jle 0x44e00b
mov edi, edx
lea ecx, [esp + 0x30]
push ebx
push ecx
lea edx, [esp + 0x1e8]
push 0x78
push edx
push esi
call ebp
mov eax, dword [0x483960]
mov ecx, dword [0x483964]
cmp eax, ecx
mov dword [esp + 0x1f8], ebx
jl 0x44df61
mov ecx, dword [0x483968]
push ecx
push 0x483960
call fcn.00407e80
add esp, 8
test eax, eax
je 0x44df92
mov eax, dword [0x48396c]
mov ecx, dword [0x483970]
push eax
imul eax, dword [0x483960]
lea edx, [esp + 0x1e4]
add eax, ecx
push edx
push eax
call fcn.00450dd0
mov eax, dword [0x483960]
add esp, 0xc
inc eax
mov dword [0x483960], eax
dec edi
jne 0x44df20
jmp 0x44e00b
push 0x10
lea eax, [esp + 0x14]
push str.EFFECTS_LIST
push eax
call fcn.004514c0
add esp, 0xc
test eax, eax
jne 0x44dff5
mov ecx, dword [esp + 0x20]
mov eax, 0x8421085
mul ecx
sub ecx, edx
mov esi, dword [esp + 0x74]
shr ecx, 1
add ecx, edx
shr ecx, 6
cmp ecx, ebx
jle 0x44e00b
mov edi, ecx
lea ecx, [esp + 0x34]
push ebx
push ecx
lea edx, [esp + 0x260]
push 0x7c
push edx
push esi
call ebp
lea eax, [esp + 0x258]
push eax
call fcn.0041fcd0
add esp, 4
dec edi
jne 0x44dfcd
jmp 0x44e00b
lea ecx, [esp + 0x10]
lea edx, [esp + 0x74]
push ecx
push edx
call fcn.004082f0
add esp, 8
jmp 0x44e00b
xor ebx, ebx
lea eax, [esp + 0x10]
lea ecx, [esp + 0x74]
push eax
push ecx
call fcn.00408200
add esp, 8
test eax, eax
jne 0x44db9e
lea edx, [esp + 0x74]
push edx
call fcn.004083f0
mov eax, dword [esp + 0x598]
push eax
call fcn.00447a30
add esp, 8
mov ecx, 0x47f910
test ecx, ecx
je 0x44e057
cmp dword [0x47f910], ebx
jle 0x44e057
mov eax, dword [0x47f920]
jmp 0x44e059
xor eax, eax
mov edx, dword [0x47e17c]
mov dword [0x483e1c], eax
add eax, 0x10
mov dword [0x47e18c], ebx
mov dword [0x47e190], ebx
mov dword [eax], edx
mov ecx, dword [0x47e180]
mov dword [eax + 4], ecx
mov edx, dword [0x47e184]
mov dword [eax + 8], edx
mov eax, dword [0x483e1c]
mov ecx, dword [0x47e188]
add eax, 0x1c
mov dword [eax], ecx
mov edx, dword [0x47e18c]
mov dword [eax + 4], edx
mov ecx, dword [0x47e190]
mov dword [eax + 8], ecx
mov edx, dword [0x484998]
lea eax, [edx - 1]
cmp eax, 8
ja case.0x44e0bb.8
jmp dword [eax*4 + 0x44e358]
cmp dword [0x480ed8], 2
jne case.0x44e0bb.8
pop edi
pop esi
pop ebp
mov dword [0x4819c8], 0x449ab0
pop ebx
add esp, 0x580
ret
cmp dword [0x480ed8], 2
jne case.0x44e0bb.8
mov dword [0x4819c8], 0x44a9c0
mov dword [0x481dd8], 0x44aa10
call fcn.00416390
mov eax, str.SMOKER
test eax, eax
je 0x44e164
push eax
call fcn.00408850
mov esi, dword [sym.imp.USER32.dll_wsprintfA]
push str.SMOKER
push 0x481f50
push str._s_s.PFF
push 0x47e250
call esi
push 0x47e250
call fcn.0041f180
add esp, 0x18
test al, al
jne 0x44e164
push str.SMOKER
push str.DATABASEDATA_s.PFF
push 0x47e250
call esi
push 0x47e250
call fcn.0041f180
add esp, 0x10
xor ecx, ecx
pop edi
mov dword [0x484eac], ecx
pop esi
mov dword [0x484eb0], ecx
pop ebp
mov dword [0x484eb4], ecx
pop ebx
add esp, 0x580
ret
cmp dword [0x480ed8], 2
jne case.0x44e0bb.8
pop edi
pop esi
pop ebp
mov dword [0x4819c8], 0x44ad30
mov dword [0x481dd8], 0x44ad50
pop ebx
add esp, 0x580
ret
cmp dword [0x480ed8], 2
jne case.0x44e0bb.8
mov dword [0x4819c8], 0x44bcb0
call fcn.00416390
call fcn.00451b14
cdq
mov ecx, 3
pop edi
idiv ecx
pop esi
pop ebp
pop ebx
mov dword [0x4856c4], edx
add esp, 0x580
ret
cmp dword [0x480ed8], 2
jne case.0x44e0bb.8
pop edi
pop esi
pop ebp
mov dword [0x4819c8], 0x44c130
mov dword [0x481dd8], 0x44bcd0
pop ebx
add esp, 0x580
ret
cmp dword [0x480ed8], 2
jne case.0x44e0bb.8
mov eax, dword [0x47f910]
xor esi, esi
cmp eax, ebx
mov dword [0x4819c8], 0x44c910
mov dword [0x481dd8], 0x44c650
jle case.0x44e0bb.8
push esi
push 0x47f910
call fcn.00415750
mov ebp, eax
add esp, 8
cmp ebp, ebx
je 0x44e26b
push ebp
push str.6B1_MAIN
call fcn.00416360
add esp, 8
test eax, eax
jne 0x44e280
mov eax, dword [0x47f910]
inc esi
cmp esi, eax
jl 0x44e245
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x580
ret
cmp ebp, ebx
je case.0x44e0bb.8
mov edi, 0x47d9f0
mov esi, 0x483690
push ebx
call fcn.0041bdf0
xor ecx, ecx
add esp, 4
cmp eax, ecx
mov dword [esi], eax
je 0x44e2c7
lea edx, [ebp + 0x10]
lea ecx, [esp + 0x68]
push edx
push ecx
mov ecx, eax
call fcn.004199e0
mov ecx, dword [eax]
mov edx, edi
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov eax, dword [eax + 8]
mov dword [edx + 8], eax
jmp 0x44e2cf
mov dword [edi], ecx
mov dword [edi + 4], ecx
mov dword [edi + 8], ecx
add esi, 4
inc ebx
add edi, 0xc
cmp esi, 0x48369c
jl 0x44e292
pop edi
pop esi
pop ebp
mov dword [0x4854a8], 0x44c3a0
pop ebx
add esp, 0x580
ret
cmp dword [0x480ed8], 2
jne case.0x44e0bb.8
mov dword [0x4819c8], 0x44cd80
call fcn.00416390
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x580
ret
cmp dword [0x480ed8], 2
jne case.0x44e0bb.8
xor ecx, ecx
mov dword [0x4819c8], 0x44d6a0
mov dword [0x480ec4], ecx
mov dword [0x481dd8], 0x44d6f0
mov dword [0x480ec8], ecx
mov dword [0x480ecc], ecx
call fcn.00416390
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x580
ret