Function at 0x4e3950
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x5c
push ebx
push ebp
push esi
push str.start_read_global_data_n
call fcn.00458ab0
add esp, 4
call fcn.0047ff30
mov ecx, eax
call fcn.0047fa80
mov eax, dword [0x67a8cc]
mov ebx, dword [sym.imp.MSVCRT.dll_fseek]
push 0
push 0
push eax
call ebx
mov ecx, dword [0x67a8cc]
mov ebp, dword [sym.imp.MSVCRT.dll_fread]
push ecx
push 1
push 0x20
push 0x67a7e8
call ebp
mov edx, dword [0x67a7fc]
mov eax, dword [0x67a8cc]
push 0
push edx
push eax
call ebx
mov ecx, dword [0x67a8cc]
push ecx
push 1
push 0x14
push 0x67a7d0
call ebp
mov edx, dword [0x67a7d0]
mov eax, dword [0x67a8cc]
push 0
push edx
push eax
call ebx
mov ecx, dword [0x67a8cc]
add esp, 0x44
lea edx, [esp + 0x38]
push ecx
push 1
push 0x14
push edx
call ebp
mov eax, dword [esp + 0x48]
mov ecx, dword [0x67a8cc]
push 0
push eax
push ecx
call ebx
mov edx, dword [0x67a8cc]
push edx
push 1
push 0x34
push 0x67a870
call ebp
mov eax, dword [esp + 0x68]
mov ecx, dword [0x67a8cc]
push 0
push eax
push ecx
call ebx
mov edx, dword [0x67a8cc]
push edx
push 1
push 4
push 0x67a86c
call ebp
mov esi, dword [0x67a86c]
add esp, 0x48
mov eax, esi
shl eax, 5
push eax
call fcn.004784e0
add esp, 4
test eax, eax
je 0x4e3a5b
dec esi
mov ecx, eax
test esi, esi
jl 0x4e3a54
lea edx, [esi + 1]
mov byte [ecx], 0xff
add ecx, 0x20
dec edx
jne 0x4e3a4b
mov dword [0x67a868], eax
jmp 0x4e3a65
mov dword [0x67a868], 0
mov ecx, dword [0x67a86c]
push edi
lea edx, [ecx*4]
mov ecx, 0x6d07d8
push edx
call fcn.004bb1f0
mov ecx, dword [0x67a86c]
mov edi, eax
mov eax, dword [0x67a8cc]
mov dword [esp + 0x14], edi
push eax
push ecx
push 4
push edi
call ebp
mov eax, dword [0x67a86c]
add esp, 0x10
xor esi, esi
test eax, eax
jle 0x4e3b02
mov edx, dword [esp + 0x14]
xor edi, edi
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x10]
mov edx, dword [0x67a8cc]
push 0
mov ecx, dword [eax]
push ecx
push edx
call ebx
mov eax, dword [0x67a8cc]
mov ecx, dword [0x67a868]
push eax
push 1
lea edx, [edi + ecx]
push 0x20
push edx
call ebp
mov eax, dword [0x67a868]
add esp, 0x1c
lea ecx, [edi + eax]
call fcn.0046dfd0
mov edx, dword [esp + 0x10]
mov eax, dword [0x67a86c]
inc esi
add edx, 4
add edi, 0x20
cmp esi, eax
mov dword [esp + 0x10], edx
jl 0x4e3aae
mov edi, dword [esp + 0x14]
push edi
mov ecx, 0x6d07d8
call fcn.004bb220
mov eax, dword [0x67b4ec]
test eax, eax
jne 0x4e3b42
call fcn.0047de00
cmp eax, 5
jl 0x4e3b27
mov eax, 5
jmp 0x4e3b2b
test eax, eax
jle 0x4e3b42
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea ecx, [eax + eax*4]
lea edx, [ecx*8 + 0x1f4]
push edx
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [esp + 0x44]
mov ecx, dword [0x67a8cc]
push 0
push eax
push ecx
call ebx
mov edx, dword [0x67a8cc]
lea eax, [esp + 0x24]
push edx
push 1
push 4
push eax
call ebp
mov edx, dword [esp + 0x34]
mov ecx, 6
xor eax, eax
lea edi, [esp + 0x70]
mov dword [esp + 0x6c], 0
rep stosd dword es:[edi], eax
mov ecx, dword [0x67a8cc]
lea eax, [esp + 0x6c]
push ecx
push edx
push 4
push eax
call ebp
mov ecx, dword [esp + 0x74]
mov edx, dword [0x67a8cc]
push 0
push ecx
push edx
call ebx
mov eax, dword [0x67a8cc]
push eax
push 1
push 0x2c
push 0x67a828
call ebp
mov ecx, dword [esp + 0x94]
mov edx, dword [0x67a8cc]
add esp, 0x48
push 0
push ecx
push edx
call ebx
mov eax, dword [0x67a8cc]
push eax
push 1
push 0x350
push 0x6969c0
call ebp
add esp, 0x1c
mov ecx, 0x6969c0
call fcn.004b4820
push eax
call fcn.00487630
mov ecx, eax
call fcn.00487510
mov ecx, 0x6969c0
call fcn.004b4060
mov eax, dword [0x696a40]
mov ecx, 0xd4
mov esi, 0x6969c0
mov edi, 0x696670
test eax, eax
rep movsd dword es:[edi], dword [esi]
je 0x4e3c2d
mov eax, dword [0x67a8d0]
mov ecx, dword [0x67a8d4]
mov dword [0x67a8d0], ecx
mov dword [0x67a8d4], eax
mov edx, dword [0x67a7d4]
mov eax, dword [0x67a8cc]
push 0
push edx
push eax
call ebx
mov ecx, dword [0x67a8cc]
lea edx, [esp + 0x28]
push ecx
push 1
push 4
push edx
call ebp
mov eax, dword [0x67a8cc]
mov ecx, dword [esp + 0x38]
push eax
push ecx
push 4
push 0x67a78c
call ebp
add esp, 0x2c
call fcn.004cdea0
mov eax, dword [esp + 0x50]
test eax, eax
je 0x4e3c7d
push eax
call fcn.0040f170
add esp, 4
mov eax, dword [esp + 0x54]
test eax, eax
je 0x4e3c98
push eax
call fcn.00411720
push 0x696a8c
call fcn.004115c0
add esp, 8
mov eax, dword [esp + 0x58]
test eax, eax
je 0x4e3ca9
push eax
call fcn.0040f730
add esp, 4
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
test eax, eax
jne 0x4e3cb9
test ecx, ecx
je 0x4e3cc3
push ecx
push eax
call fcn.004163f0
add esp, 8
cmp dword [0x67a7f0], 0x1c
jl 0x4e3ce1
mov eax, dword [esp + 0x64]
test eax, eax
je 0x4e3ce1
push eax
call fcn.00419b90
mov ecx, eax
call fcn.00419ad0
cmp dword [0x67a7f0], 0x1d
jl 0x4e3cff
mov eax, dword [esp + 0x68]
test eax, eax
je 0x4e3cff
push eax
call fcn.0041ac80
mov ecx, eax
call fcn.0041aba0
mov ecx, 0x6969c0
call fcn.004b47a0
push eax
call fcn.004873f0
mov ecx, eax
call fcn.004872f0
mov ecx, 0x6969c0
call fcn.004b4420
push eax
call fcn.004b33f0
mov ecx, eax
call fcn.004b29b0
mov ecx, 0x6969c0
call fcn.004b44a0
push eax
call fcn.004c33c0
mov ecx, eax
call fcn.004c3220
mov ecx, 0x6969c0
call fcn.004b4320
push eax
call fcn.004c2da0
mov ecx, eax
call fcn.004c2af0
mov ecx, 0x6969c0
call fcn.004b48a0
push eax
call fcn.00486b60
mov ecx, eax
call fcn.00486740
mov ecx, 0x6969c0
call fcn.004b4520
push eax
call fcn.00482cc0
mov ecx, eax
call fcn.00482a00
mov ecx, 0x6969c0
call fcn.004b45a0
push eax
call fcn.00487ae0
mov ecx, eax
call fcn.004878d0
mov ecx, 0x6969c0
call fcn.004b4220
push eax
call fcn.004b0620
mov ecx, eax
call fcn.004afa40
mov ecx, 0x6969c0
call fcn.004b42a0
push eax
call fcn.004af650
mov ecx, eax
call fcn.004af440
mov ecx, 0x6969c0
call fcn.004b4aa0
push eax
call fcn.004851f0
mov ecx, eax
call fcn.00484f30
mov ecx, 0x6969c0
call fcn.004b4b20
push eax
call fcn.00485ab0
mov ecx, eax
call fcn.00485620
mov ecx, 0x6969c0
call fcn.004b4ba0
push eax
call fcn.00485e70
mov ecx, eax
call fcn.00485da0
mov ecx, 0x6969c0
call fcn.004b4c20
push eax
call fcn.00486730
mov ecx, eax
call fcn.00486600
mov ecx, 0x6969c0
call fcn.004b36c0
push 0
mov ecx, 0x6969c0
call fcn.004b4620
push eax
push 0
call fcn.004c2ad0
add esp, 4
mov ecx, eax
call fcn.004c1e60
push 1
mov ecx, 0x6969c0
call fcn.004b46a0
push eax
push 1
call fcn.004c2ad0
add esp, 4
mov ecx, eax
call fcn.004c1e60
push 2
mov ecx, 0x6969c0
call fcn.004b4720
push eax
push 2
call fcn.004c2ad0
add esp, 4
mov ecx, eax
call fcn.004c1e60
mov ecx, 0x6969c0
call fcn.004b4920
push eax
call fcn.00486d10
mov ecx, eax
call fcn.00486b70
mov ecx, 0x6969c0
call fcn.004b49a0
push eax
call fcn.00482d10
mov ecx, eax
call fcn.00482cd0
mov ecx, 0x6969c0
call fcn.004b4a20
push eax
call fcn.00483fe0
mov ecx, eax
call fcn.00483df0
call fcn.0040e040
mov edx, dword [0x67a7dc]
mov eax, dword [0x67a8cc]
push 0
push edx
push eax
call ebx
mov ecx, dword [0x67a8cc]
lea edx, [esp + 0x2c]
push ecx
push 1
push 4
push edx
call ebp
mov eax, dword [esp + 0x3c]
mov ecx, dword [0x67a8cc]
push 0
push eax
push ecx
call ebx
mov edx, dword [0x67a8cc]
push edx
push 1
push 4
push 0x6c573c
call ebp
mov eax, dword [0x6c573c]
add esp, 0x38
lea ecx, [eax*4]
push ecx
mov ecx, 0x6d07d8
call fcn.004bb1f0
mov esi, dword [0x6c573c]
mov edi, eax
lea edx, [esi + esi*8]
lea eax, [edx*8 + 4]
push eax
call fcn.004784e0
add esp, 4
test eax, eax
je 0x4e3f7e
push 0x4e4450
mov dword [eax], esi
push 0x4e4410
add eax, 4
push esi
push 0x48
push eax
mov dword [esp + 0x28], eax
call fcn.0053230f
mov ecx, dword [esp + 0x14]
mov dword [0x6c5738], ecx
jmp 0x4e3f88
mov dword [0x6c5738], 0
mov edx, dword [0x67a8cc]
mov eax, dword [0x6c573c]
push edx
push eax
push 4
push edi
call ebp
mov eax, dword [0x6c573c]
xor esi, esi
add esp, 0x10
cmp eax, esi
mov dword [esp + 0x14], esi
jle 0x4e3ff8
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx]
test eax, eax
je 0x4e3fcb
mov edx, dword [0x6c5738]
push eax
lea ecx, [esi + edx]
call fcn.004b90d0
jmp 0x4e3fd7
mov eax, dword [0x6c5738]
mov dword [esi + eax], 0xffffffff
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
add ecx, 4
inc eax
mov dword [esp + 0x10], ecx
mov ecx, dword [0x6c573c]
add esi, 0x48
cmp eax, ecx
mov dword [esp + 0x14], eax
jl 0x4e3fb0
push edi
mov ecx, 0x6d07d8
call fcn.004bb220
mov ecx, dword [0x67a7e0]
mov edx, dword [0x67a8cc]
push 0
push ecx
push edx
call ebx
mov eax, dword [0x67a8cc]
lea ecx, [esp + 0x30]
push eax
push 1
push 4
push ecx
call ebp
mov edx, dword [0x67a8cc]
lea eax, [esp + 0x54]
push edx
push 1
push 4
push eax
call ebp
mov ecx, dword [0x67a8cc]
lea edx, [esp + 0x54]
push ecx
push 1
push 4
push edx
call ebp
mov eax, dword [0x67a8cc]
lea ecx, [esp + 0x68]
push eax
push 1
push 4
push ecx
call ebp
mov edx, dword [0x67a8cc]
add esp, 0x4c
lea eax, [esp + 0x30]
push edx
push 1
push 4
push eax
call ebp
mov ecx, dword [0x67a8cc]
lea edx, [esp + 0x44]
push ecx
push 1
push 4
push edx
call ebp
mov eax, dword [esp + 0x44]
mov ecx, dword [0x67a8cc]
push 0
push eax
push ecx
call ebx
mov edx, dword [0x67a8cc]
push edx
push 1
push 4
push 0x67b504
call ebp
mov esi, dword [0x67b504]
lea eax, [esi + esi*4]
lea eax, [eax + eax*8]
lea ecx, [eax*8 + 4]
push ecx
call fcn.004784e0
add esp, 0x40
test eax, eax
je 0x4e40e7
push 0x4bdbf0
push 0x4e4470
lea edi, [eax + 4]
push esi
push 0x168
push edi
mov dword [eax], esi
call fcn.0053230f
mov dword [0x67b500], edi
jmp 0x4e40f1
mov dword [0x67b500], 0
mov eax, dword [0x67b504]
xor edi, edi
test eax, eax
jle 0x4e4150
xor esi, esi
mov edx, dword [0x67a8cc]
mov eax, dword [0x67b500]
push edx
push 1
lea ecx, [esi + eax]
push 0x18
push ecx
call ebp
mov edx, dword [0x67b500]
add esp, 0x10
test byte [esi + edx + 1], 0x80
jne 0x4e4133
mov eax, dword [0x67a8cc]
push 1
push 0xfffffffffffffff0
push eax
call ebx
add esp, 0xc
mov ecx, dword [0x67b500]
add ecx, esi
call fcn.0048b520
mov eax, dword [0x67b504]
inc edi
add esi, 0x168
cmp edi, eax
jl 0x4e40fe
cmp dword [0x67a7f0], 0x10
jl 0x4e41a8
mov edx, dword [esp + 0x28]
mov eax, dword [0x67a8cc]
push 0
push edx
push eax
call ebx
mov ecx, dword [0x67a8cc]
push ecx
push 1
push 4
push 0x678714
call ebp
mov edx, dword [0x678714]
lea eax, [edx*4]
push eax
call fcn.004784e0
mov ecx, dword [0x67a8cc]
mov edx, dword [0x678714]
push ecx
push edx
push 4
push eax
mov dword [0x67870c], eax
call ebp
add esp, 0x30
cmp dword [0x67a7f0], 0x12
jl 0x4e4268
mov eax, dword [esp + 0x2c]
mov ecx, dword [0x67a8cc]
push 0
push eax
push ecx
call ebx
mov edx, dword [0x67a8cc]
push edx
push 1
push 4
push 0x678708
call ebp
mov esi, dword [0x678708]
lea eax, [esi + esi*2]
lea ecx, [eax*8 + 4]
push ecx
call fcn.004784e0
add esp, 0x20
test eax, eax
je 0x4e4214
push 0x4e44b0
push 0x4e44a0
lea edi, [eax + 4]
push esi
push 0x18
push edi
mov dword [eax], esi
call fcn.0053230f
mov dword [0x678704], edi
jmp 0x4e421e
mov dword [0x678704], 0
mov edx, dword [0x67a8cc]
push edx
call dword [sym.imp.MSVCRT.dll_ftell]
mov esi, eax
mov eax, dword [0x678708]
add esp, 4
xor edi, edi
test eax, eax
jle 0x4e4268
mov dword [esp + 0x10], edi
mov eax, dword [0x678704]
mov ecx, dword [esp + 0x10]
push esi
add ecx, eax
call fcn.0047f370
mov ecx, dword [esp + 0x10]
mov eax, dword [0x678708]
add esi, 0x14
inc edi
add ecx, 0x18
cmp edi, eax
mov dword [esp + 0x10], ecx
jl 0x4e423f
mov eax, dword [0x67a7f0]
pop edi
cmp eax, 0x18
jl 0x4e42be
mov edx, dword [esp + 0x2c]
mov eax, dword [0x67a8cc]
push 0
push edx
push eax
call ebx
mov ecx, dword [0x67a8cc]
push ecx
push 1
push 4
push 0x678700
call ebp
mov edx, dword [0x678700]
shl edx, 4
push edx
call fcn.004784e0
mov ecx, dword [0x67a8cc]
mov edx, dword [0x678700]
push ecx
push edx
push 0x10
push eax
mov dword [0x6786fc], eax
call ebp
add esp, 0x30
cmp dword [0x67a7f0], 0x1a
jl 0x4e4316
mov eax, dword [esp + 0x30]
mov ecx, dword [0x67a8cc]
push 0
push eax
push ecx
call ebx
mov edx, dword [0x67a8cc]
push edx
push 1
push 4
push 0x678718
call ebp
mov eax, dword [0x678718]
lea ecx, [eax*4]
push ecx
call fcn.004784e0
mov edx, dword [0x67a8cc]
mov ecx, dword [0x678718]
push edx
push ecx
push 4
push eax
mov dword [0x678710], eax
call ebp
add esp, 0x30
call fcn.0040e4a0
mov ecx, 0x6969c0
call fcn.004b43a0
push eax
call fcn.004b0930
mov ecx, eax
call fcn.004b0860
call fcn.0048b6a0
mov edx, dword [0x696afc]
mov eax, dword [0x696af8]
push edx
push eax
call fcn.0043bdf0
mov ecx, eax
call fcn.0043bd90
mov ecx, dword [0x696bc8]
push ecx
call fcn.00478b90
mov ecx, eax
call fcn.00478b50
call fcn.00493e00
mov ecx, eax
call fcn.0048ff40
mov dx, word [0x6969da]
push 0
lea ecx, [esp + 0x14]
mov word [esp + 0x14], 0
mov word [esp + 0x16], dx
call fcn.004b9ca0
call fcn.00412e40
mov eax, dword [0x619204]
pop esi
pop ebp
pop ebx
test eax, eax
jne 0x4e43ce
mov eax, dword [esp + 0x4c]
test eax, eax
jne 0x4e43ae
mov eax, dword [esp + 0x50]
test eax, eax
je 0x4e43ce
push str.create_backcmp_thread__n
call fcn.00458ab0
push 0
push 0
push 0x41ace0
push 0x619204
call fcn.0047ad60
add esp, 0x14
cmp dword [0x67a7f0], 0x1c
jl 0x4e43f5
mov eax, dword [esp + 0x54]
test eax, eax
je 0x4e43f5
push 0
push 0
push 0x41ac90
push 0x619208
call fcn.0047ad60
add esp, 0x10
call fcn.0047ff30
mov ecx, eax
call fcn.0047faf0
push str.finish_read_global_data_n
call fcn.00458ab0
add esp, 0x60
ret