Function at 0x45dae1
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x469d2f
mov eax, dword fs:[0]
push eax
mov eax, 0x1918
call fcn.004487a0
mov eax, dword [0x47c144]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 8]
cmp dword [ebx + 0x14], 0
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x1814], eax
mov dword [ebp - 0x181c], ecx
jne 0x45db42
push 0x408130
push eax
call fcn.00455493
pop ecx
pop ecx
jmp 0x45dd0a
and dword [ebp - 0x1840], 0
and dword [ebp - 0x1824], 0
push 0x800
mov dword [ebp - 0x1878], 1
call fcn.0043e603
mov edi, 0x2000
push edi
mov dword [ebp - 0x1864], eax
call fcn.0043e603
push edi
mov dword [ebp - 0x1848], eax
call fcn.0043e603
mov esi, 0x8820
push esi
mov dword [ebp - 0x183c], eax
call fcn.0043e537
push esi
mov dword [ebp - 0x1830], eax
call fcn.0043e537
push esi
mov dword [ebp - 0x1838], eax
call fcn.0043e537
push esi
mov dword [ebp - 0x182c], eax
call fcn.0043e537
push esi
mov dword [ebp - 0x1834], eax
call fcn.0043e537
push esi
mov dword [ebp - 0x1850], eax
call fcn.0043e537
push esi
mov dword [ebp - 0x1844], eax
call fcn.0043e537
push esi
mov dword [ebp - 0x184c], eax
call fcn.0043e537
push esi
mov dword [ebp - 0x1854], eax
call fcn.0043e537
push 0x9000
mov dword [ebp - 0x1858], eax
call fcn.0043e537
xor esi, esi
add esp, 0x34
mov dword [ebp - 0x1818], eax
cmp dword [ebp - 0x1830], esi
je 0x45dc80
cmp dword [ebp - 0x1838], esi
je 0x45dc80
cmp dword [ebp - 0x182c], esi
je 0x45dc80
cmp dword [ebp - 0x1834], esi
je 0x45dc80
cmp dword [ebp - 0x1850], esi
je 0x45dc80
cmp dword [ebp - 0x1844], esi
je 0x45dc80
cmp eax, esi
je 0x45dc80
cmp dword [ebp - 0x184c], esi
je 0x45dc80
cmp dword [ebp - 0x1854], esi
je 0x45dc80
cmp dword [ebp - 0x1858], esi
je 0x45dc80
push dword [ebp - 0x1830]
push 2
call fcn.0045cc00
test eax, eax
jne 0x45dd28
push 0x4080c8
push dword [ebp - 0x1814]
call fcn.00455493
pop ecx
pop ecx
xor edi, edi
push dword [ebp - 0x1864]
call fcn.0043e687
push dword [ebp - 0x1848]
call fcn.0043e687
push dword [ebp - 0x183c]
call fcn.0043e687
push dword [ebp - 0x1830]
call fcn.0043dfe7
push dword [ebp - 0x1838]
call fcn.0043dfe7
push dword [ebp - 0x182c]
call fcn.0043dfe7
push dword [ebp - 0x1834]
call fcn.0043dfe7
push dword [ebp - 0x1850]
call fcn.0043dfe7
push dword [ebp - 0x1844]
call fcn.0043dfe7
push dword [ebp - 0x1818]
call fcn.0043dfe7
add esp, 0x28
cmp dword [ebp - 0x1840], esi
jne 0x45dd03
cmp dword [ebp - 0x1824], esi
je 0x45dd0a
xor eax, eax
inc eax
cmp edi, eax
je 0x45dd0c
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0043dff7
leave
ret 0xc
push dword [ebp - 0x1838]
push 3
call fcn.0045cc00
test eax, eax
jne 0x45dd43
push 0x408068
jmp 0x45dc73
push dword [ebp - 0x182c]
push 1
call fcn.0045cc00
test eax, eax
jne 0x45dd5e
push 0x408008
jmp 0x45dc73
push dword [ebp - 0x1834]
push esi
call fcn.0045cc00
test eax, eax
jne 0x45dd78
push 0x407fb0
jmp 0x45dc73
push dword [ebp - 0x1850]
push 4
call fcn.0045cc00
test eax, eax
jne 0x45dd93
push 0x407f18
jmp 0x45dc73
push dword [ebp - 0x1844]
push 5
call fcn.0045cc00
test eax, eax
jne 0x45ddae
push 0x407e80
jmp 0x45dc73
push dword [ebp - 0x184c]
push 6
call fcn.0045cc00
test eax, eax
jne 0x45ddc9
push 0x407df0
jmp 0x45dc73
push dword [ebp - 0x1854]
push 7
call fcn.0045cc00
test eax, eax
jne 0x45dde4
push 0x407d78
jmp 0x45dc73
push dword [ebp - 0x1858]
push 8
call fcn.0045cc00
test eax, eax
jne 0x45ddff
push 0x407cf8
jmp 0x45dc73
cmp dword [ebx + 0x18], 8
jb 0x45de0a
mov eax, dword [ebx + 4]
jmp 0x45de0d
lea eax, [ebx + 4]
push esi
push 0x80
push 3
push esi
push 3
push SysReAllocString
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x185c], eax
cmp eax, 0xffffffff
jne 0x45de39
push 0x407ca8
jmp 0x45dc73
push edi
push esi
push dword [ebp - 0x183c]
call fcn.004433d0
mov ebx, dword [ebp - 0x1864]
add esp, 0xc
xor eax, eax
inc eax
push esi
mov dword [ebp - 0x1820], eax
mov dword [ebp - 0x1874], eax
lea eax, [ebp - 0x1868]
push eax
push 0x7fe
push ebx
push dword [ebp - 0x185c]
mov dword [ebp - 0x1860], esi
mov dword [ebp - 0x1870], esi
mov dword [ebp - 0x186c], esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x45e6b5
mov esi, dword [ebp - 0x181c]
mov edi, 0x1000
mov eax, dword [ebp - 0x1868]
test eax, eax
jbe 0x45e6b5
push ebx
mov byte [eax + ebx], 0
mov eax, dword [ebp - 0x1868]
push edi
push dword [ebp - 0x183c]
mov byte [eax + ebx + 1], 0
call fcn.00451603
push edi
push dword [ebp - 0x183c]
call fcn.0045ca17
push 0x40eab8
push eax
mov dword [ebp - 0x1814], eax
call fcn.0043f2df
pop ecx
pop ecx
mov dword [ebp - 0x1828], eax
test eax, eax
je 0x45e615
mov ebx, dword [ebp - 0x1818]
mov edi, dword [ebp - 0x1814]
mov ecx, dword [ebp - 0x1828]
add dword [ebp - 0x1828], 4
xor eax, eax
cmp dword [ebp - 0x1870], 1
mov word [ecx], ax
jne 0x45df54
push edi
lea ecx, [ebp - 0x18d0]
call fcn.004132cd
and dword [ebp - 4], 0
lea ecx, [esi + 0x708]
mov eax, dword [ecx + 4]
lea edx, [ebp - 0x18d0]
push edx
push eax
call fcn.0043796b
or dword [ebp - 4], 0xffffffff
push 0
push 1
lea ecx, [ebp - 0x18d0]
call fcn.00411dad
push 0x407c88
push edi
call fcn.0043f2df
pop ecx
pop ecx
test eax, eax
je 0x45dfa1
push edi
lea ecx, [ebp - 0x1924]
call fcn.004132cd
mov dword [ebp - 4], 1
lea ecx, [esi + 0x6fc]
mov eax, dword [ecx + 4]
lea edx, [ebp - 0x1924]
push edx
push eax
call fcn.0043796b
or dword [ebp - 4], 0xffffffff
push 0
push 1
lea ecx, [ebp - 0x1924]
call fcn.00411dad
cmp dword [ebp - 0x1820], 0
je 0x45dfb8
push esi
push edi
call fcn.0045d713
push esi
push edi
call fcn.0045d87e
cmp dword [ebp - 0x1860], 0
je 0x45dfcd
and dword [ebp - 0x1860], 0
jmp 0x45e2c3
mov eax, dword [ebp - 0x1830]
add eax, 0x20
push eax
push edi
call fcn.0043f2df
pop ecx
pop ecx
cmp edi, eax
jne 0x45e15f
push 0
push ebx
push dword [ebp - 0x1830]
push edi
call fcn.0045cd5a
test eax, eax
je 0x45e615
lea edi, [ebx + 0x2000]
mov ecx, 0x407c78
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x45e031
test dx, dx
je 0x45e02d
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x45e031
add eax, 4
add ecx, 4
test dx, dx
jne 0x45e00b
xor eax, eax
jmp 0x45e036
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x45e0a6
mov ecx, 0x407c6c
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x45e067
test dx, dx
je 0x45e063
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x45e067
add eax, 4
add ecx, 4
test dx, dx
jne 0x45e041
xor eax, eax
jmp 0x45e06c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x45e0a6
mov ecx, 0x407c58
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x45e09d
test dx, dx
je 0x45e099
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x45e09d
add eax, 4
add ecx, 4
test dx, dx
jne 0x45e077
xor eax, eax
jmp 0x45e0a2
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x45e0ad
and dword [ebp - 0x1874], 0
push 0x1800
lea eax, [ebp - 0x1810]
push 0
push eax
call fcn.004433d0
push 0x400
lea eax, [ebx + 0x800]
push eax
lea eax, [ebp - 0x1810]
push eax
call fcn.0045cb8f
add esp, 0x18
push edi
lea ecx, [ebp - 0x1898]
call fcn.004132cd
mov dword [ebp - 4], 2
push 0x1800
lea eax, [ebp - 0x1810]
push eax
lea eax, [ebp - 0x1898]
push eax
lea ecx, [esi + 0x714]
call fcn.0045da28
push eax
call fcn.00443450
add esp, 0xc
or dword [ebp - 4], 0xffffffff
push 0
push 1
lea ecx, [ebp - 0x1898]
call fcn.00411dad
cmp dword [ebp - 0x1820], 1
jne 0x45e44f
push edi
call fcn.0045cacf
test eax, eax
je 0x45e154
mov dword [ebp - 0x1824], 1
mov edi, dword [ebp - 0x1814]
jmp 0x45e2dc
push edi
push 0x64
push esi
call fcn.004515c9
jmp 0x45e149
mov eax, dword [ebp - 0x1838]
add eax, 0x20
push eax
push edi
call fcn.0043f2df
pop ecx
pop ecx
cmp edi, eax
jne 0x45e32c
push 1
push ebx
push dword [ebp - 0x1838]
push edi
call fcn.0045cd5a
test eax, eax
je 0x45e615
lea edi, [ebx + 0x2000]
push 4
mov ecx, 0x407c78
mov eax, edi
pop esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x45e1c4
test dx, dx
je 0x45e1c0
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x45e1c4
add eax, esi
add ecx, esi
test dx, dx
jne 0x45e1a0
xor eax, eax
jmp 0x45e1c9
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x45e235
mov ecx, 0x407c6c
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x45e1f8
test dx, dx
je 0x45e1f4
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x45e1f8
add eax, esi
add ecx, esi
test dx, dx
jne 0x45e1d4
xor eax, eax
jmp 0x45e1fd
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x45e235
mov ecx, 0x407c58
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x45e22c
test dx, dx
je 0x45e228
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x45e22c
add eax, esi
add ecx, esi
test dx, dx
jne 0x45e208
xor eax, eax
jmp 0x45e231
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x45e23f
mov dword [ebp - 0x1870], 1
push edi
lea ecx, [ebp - 0x1908]
call fcn.004132cd
mov dword [ebp - 4], 3
mov esi, dword [ebp - 0x181c]
lea eax, [ebp - 0x1908]
push eax
lea eax, [ebp - 0x187c]
push eax
lea ecx, [esi + 0x714]
call fcn.0045d303
or dword [ebp - 4], 0xffffffff
push 0
push 1
lea ecx, [ebp - 0x1908]
call fcn.00411dad
mov eax, dword [esi + 0x718]
mov esi, dword [ebp - 0x187c]
cmp esi, eax
je 0x45e2bd
mov eax, dword [ebp - 0x1818]
add eax, 0x800
push 0x400
push eax
lea eax, [esi + 0x828]
push eax
call fcn.0045cb8f
add esp, 0xc
add esi, 0x28
push esi
call fcn.0045d1f4
mov edi, dword [ebp - 0x1814]
cmp dword [ebp - 0x1820], 1
jne 0x45e5a0
mov ebx, dword [ebp - 0x1818]
mov esi, dword [ebp - 0x181c]
mov eax, dword [ebp - 0x1854]
add eax, 0x20
push eax
push edi
call fcn.0043f2df
pop ecx
pop ecx
cmp edi, eax
jne 0x45e455
push 0
push ebx
push dword [ebp - 0x1854]
push edi
call fcn.0045cd5a
test eax, eax
je 0x45e573
inc dword [ebp - 0x186c]
cmp dword [ebp - 0x186c], 1
jle 0x45e455
and dword [ebp - 0x1820], 0
jmp 0x45e455
cmp dword [ebp - 0x1820], 1
jne 0x45e502
mov eax, dword [ebp - 0x182c]
add eax, 0x20
push eax
push edi
call fcn.0043f2df
pop ecx
pop ecx
cmp edi, eax
jne 0x45e39e
push 0
push ebx
push dword [ebp - 0x182c]
push edi
call fcn.0045cd5a
test eax, eax
je 0x45e2dc
mov esi, dword [ebp - 0x1818]
add esi, 0x2000
push esi
call fcn.0045cacf
test eax, eax
je 0x45e38b
mov dword [ebp - 0x1824], 1
jmp 0x45e2d0
push esi
push 0x64
push dword [ebp - 0x181c]
call fcn.004515c9
jmp 0x45e2d0
mov eax, dword [ebp - 0x184c]
add eax, 0x20
push eax
push edi
call fcn.0043f2df
pop ecx
pop ecx
cmp edi, eax
jne 0x45e4c6
push 0
push ebx
push dword [ebp - 0x184c]
push edi
call fcn.0045cd5a
test eax, eax
je 0x45e2dc
mov edi, dword [ebp - 0x1818]
mov ebx, dword [ebp - 0x181c]
push 0x63
lea esi, [edi + 0x3800]
push esi
push 0x64
push ebx
call fcn.0045cbb1
push ebx
lea ecx, [ebx + 0x748]
call fcn.00413ccf
add edi, 0x2800
push edi
lea ecx, [ebx + 0x72c]
call fcn.00413ccf
push 0x407c4c
push 0x400
push edi
call fcn.004515c9
push 0x409cf0
push 0x400
push esi
call fcn.004515c9
push dword [ebp - 0x1818]
push ebx
call fcn.0045d006
and dword [ebp - 0x1820], 0
mov esi, ebx
mov ebx, dword [ebp - 0x1818]
mov dword [ebp - 0x1840], 1
mov edi, dword [ebp - 0x1814]
cmp dword [ebp - 0x1874], 1
jne 0x45e49a
push edi
lea ecx, [ebp - 0x18ec]
call fcn.004132cd
mov dword [ebp - 4], 5
lea ecx, [esi + 0x6f0]
mov eax, dword [ecx + 4]
lea edx, [ebp - 0x18ec]
push edx
push eax
call fcn.0043796b
or dword [ebp - 4], 0xffffffff
push 0
push 1
lea ecx, [ebp - 0x18ec]
call fcn.00411dad
mov edi, dword [ebp - 0x1828]
push 0x40eab8
push edi
mov dword [ebp - 0x1814], edi
call fcn.0043f2df
pop ecx
pop ecx
mov dword [ebp - 0x1828], eax
test eax, eax
jne 0x45df00
jmp 0x45e615
mov eax, dword [ebp - 0x1834]
add eax, 0x20
push eax
push edi
call fcn.0043f2df
pop ecx
pop ecx
cmp edi, eax
jne 0x45e502
push 0
push ebx
push dword [ebp - 0x1834]
push edi
call fcn.0045cd5a
test eax, eax
jne 0x45e5b1
mov dword [ebp - 0x1824], 1
jmp 0x45e2dc
mov eax, dword [ebp - 0x1850]
add eax, 0x20
push eax
push edi
call fcn.0043f2df
pop ecx
pop ecx
test eax, eax
jne 0x45e532
mov eax, dword [ebp - 0x1844]
add eax, 0x20
push eax
push edi
call fcn.0043f2df
pop ecx
pop ecx
test eax, eax
je 0x45e2c3
push edi
lea ecx, [ebp - 0x18b4]
call fcn.004132cd
mov dword [ebp - 4], 4
lea ecx, [esi + 0x770]
mov eax, dword [ecx + 4]
lea edx, [ebp - 0x18b4]
push edx
push eax
call fcn.0043796b
or dword [ebp - 4], 0xffffffff
push 0
push 1
lea ecx, [ebp - 0x18b4]
call fcn.00411dad
jmp 0x45e2c3
push 0
push ebx
push dword [ebp - 0x1858]
push edi
call fcn.0045cd5a
test eax, eax
je 0x45e455
push 0x63
lea eax, [ebx + 0x2800]
push eax
push 0x64
push esi
call fcn.0045cbb1
jmp 0x45e455
mov ebx, dword [ebp - 0x1818]
mov esi, dword [ebp - 0x181c]
jmp 0x45e455
push 0xa
lea eax, [ebx + 0x2000]
push 0
push eax
call fcn.0043ee99
add esp, 0xc
cmp eax, 0x78f
jne 0x45e5fd
push 0x409cf0
lea ecx, [esi + 0x748]
call fcn.00413ccf
push 0x407c4c
push 0x106
lea eax, [esi + 0xcc]
push eax
call fcn.004515c9
mov dword [ebp - 0x1824], 1
jmp 0x45e60b
push esi
add ebx, 0x1000
push ebx
push eax
call fcn.0045d0af
mov dword [ebp - 0x1840], 1
xor eax, eax
cmp dword [ebp - 0x1840], eax
jne 0x45e627
cmp dword [ebp - 0x1824], eax
je 0x45e62d
mov dword [ebp - 0x1820], eax
mov edi, 0x1000
push edi
push eax
push dword [ebp - 0x1848]
call fcn.004433d0
add esp, 0xc
push dword [ebp - 0x1814]
push edi
push dword [ebp - 0x1848]
call fcn.004515c9
push dword [ebp - 0x1848]
mov ebx, dword [ebp - 0x183c]
push edi
push ebx
call fcn.004515c9
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, 0x7fd
jb 0x45e684
xor eax, eax
mov word [ebx], ax
mov dword [ebp - 0x1860], 1
test al, 1
je 0x45e689
inc eax
mov ebx, dword [ebp - 0x1864]
push 0
lea ecx, [ebp - 0x1868]
push ecx
mov ecx, 0x7fe
sub ecx, eax
push ecx
push ebx
push dword [ebp - 0x185c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x45de9d
push dword [ebp - 0x185c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, dword [ebp - 0x1878]
xor esi, esi
jmp 0x45dc82