Function at 0x45dbb7
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x46a0ff
mov eax, dword fs:[0]
push eax
mov eax, 0x1918
call fcn.004487f0
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 0x45dc18
push 0x408130
push eax
call fcn.004555c6
pop ecx
pop ecx
jmp 0x45dde0
and dword [ebp - 0x1840], 0
and dword [ebp - 0x1824], 0
push 0x800
mov dword [ebp - 0x1878], 1
call fcn.0043e65e
mov edi, 0x2000
push edi
mov dword [ebp - 0x1864], eax
call fcn.0043e65e
push edi
mov dword [ebp - 0x1848], eax
call fcn.0043e65e
mov esi, 0x8820
push esi
mov dword [ebp - 0x183c], eax
call fcn.0043e592
push esi
mov dword [ebp - 0x1830], eax
call fcn.0043e592
push esi
mov dword [ebp - 0x1838], eax
call fcn.0043e592
push esi
mov dword [ebp - 0x182c], eax
call fcn.0043e592
push esi
mov dword [ebp - 0x1834], eax
call fcn.0043e592
push esi
mov dword [ebp - 0x1850], eax
call fcn.0043e592
push esi
mov dword [ebp - 0x1844], eax
call fcn.0043e592
push esi
mov dword [ebp - 0x184c], eax
call fcn.0043e592
push esi
mov dword [ebp - 0x1854], eax
call fcn.0043e592
push 0x9000
mov dword [ebp - 0x1858], eax
call fcn.0043e592
xor esi, esi
add esp, 0x34
mov dword [ebp - 0x1818], eax
cmp dword [ebp - 0x1830], esi
je 0x45dd56
cmp dword [ebp - 0x1838], esi
je 0x45dd56
cmp dword [ebp - 0x182c], esi
je 0x45dd56
cmp dword [ebp - 0x1834], esi
je 0x45dd56
cmp dword [ebp - 0x1850], esi
je 0x45dd56
cmp dword [ebp - 0x1844], esi
je 0x45dd56
cmp eax, esi
je 0x45dd56
cmp dword [ebp - 0x184c], esi
je 0x45dd56
cmp dword [ebp - 0x1854], esi
je 0x45dd56
cmp dword [ebp - 0x1858], esi
je 0x45dd56
push dword [ebp - 0x1830]
push 2
call fcn.0045ccd6
test eax, eax
jne 0x45ddfe
push 0x4080c8
push dword [ebp - 0x1814]
call fcn.004555c6
pop ecx
pop ecx
xor edi, edi
push dword [ebp - 0x1864]
call fcn.0043e6e2
push dword [ebp - 0x1848]
call fcn.0043e6e2
push dword [ebp - 0x183c]
call fcn.0043e6e2
push dword [ebp - 0x1830]
call fcn.0043e042
push dword [ebp - 0x1838]
call fcn.0043e042
push dword [ebp - 0x182c]
call fcn.0043e042
push dword [ebp - 0x1834]
call fcn.0043e042
push dword [ebp - 0x1850]
call fcn.0043e042
push dword [ebp - 0x1844]
call fcn.0043e042
push dword [ebp - 0x1818]
call fcn.0043e042
add esp, 0x28
cmp dword [ebp - 0x1840], esi
jne 0x45ddd9
cmp dword [ebp - 0x1824], esi
je 0x45dde0
xor eax, eax
inc eax
cmp edi, eax
je 0x45dde2
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.0043e052
leave
ret 0xc
push dword [ebp - 0x1838]
push 3
call fcn.0045ccd6
test eax, eax
jne 0x45de19
push 0x408068
jmp 0x45dd49
push dword [ebp - 0x182c]
push 1
call fcn.0045ccd6
test eax, eax
jne 0x45de34
push 0x408008
jmp 0x45dd49
push dword [ebp - 0x1834]
push esi
call fcn.0045ccd6
test eax, eax
jne 0x45de4e
push 0x407fb0
jmp 0x45dd49
push dword [ebp - 0x1850]
push 4
call fcn.0045ccd6
test eax, eax
jne 0x45de69
push 0x407f18
jmp 0x45dd49
push dword [ebp - 0x1844]
push 5
call fcn.0045ccd6
test eax, eax
jne 0x45de84
push 0x407e80
jmp 0x45dd49
push dword [ebp - 0x184c]
push 6
call fcn.0045ccd6
test eax, eax
jne 0x45de9f
push 0x407df0
jmp 0x45dd49
push dword [ebp - 0x1854]
push 7
call fcn.0045ccd6
test eax, eax
jne 0x45deba
push 0x407d78
jmp 0x45dd49
push dword [ebp - 0x1858]
push 8
call fcn.0045ccd6
test eax, eax
jne 0x45ded5
push 0x407cf8
jmp 0x45dd49
cmp dword [ebx + 0x18], 8
jb 0x45dee0
mov eax, dword [ebx + 4]
jmp 0x45dee3
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 0x45df0f
push 0x407ca8
jmp 0x45dd49
push edi
push esi
push dword [ebp - 0x183c]
call fcn.00443420
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 0x45e78b
mov esi, dword [ebp - 0x181c]
mov edi, 0x1000
mov eax, dword [ebp - 0x1868]
test eax, eax
jbe 0x45e78b
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.004516b1
push edi
push dword [ebp - 0x183c]
call fcn.0045caed
push 0x40eab8
push eax
mov dword [ebp - 0x1814], eax
call fcn.0043f33a
pop ecx
pop ecx
mov dword [ebp - 0x1828], eax
test eax, eax
je 0x45e6eb
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 0x45e02a
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.0043799d
or dword [ebp - 4], 0xffffffff
push 0
push 1
lea ecx, [ebp - 0x18d0]
call fcn.00411dad
push 0x407c88
push edi
call fcn.0043f33a
pop ecx
pop ecx
test eax, eax
je 0x45e077
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.0043799d
or dword [ebp - 4], 0xffffffff
push 0
push 1
lea ecx, [ebp - 0x1924]
call fcn.00411dad
cmp dword [ebp - 0x1820], 0
je 0x45e08e
push esi
push edi
call fcn.0045d7e9
push esi
push edi
call fcn.0045d954
cmp dword [ebp - 0x1860], 0
je 0x45e0a3
and dword [ebp - 0x1860], 0
jmp 0x45e399
mov eax, dword [ebp - 0x1830]
add eax, 0x20
push eax
push edi
call fcn.0043f33a
pop ecx
pop ecx
cmp edi, eax
jne 0x45e235
push 0
push ebx
push dword [ebp - 0x1830]
push edi
call fcn.0045ce30
test eax, eax
je 0x45e6eb
lea edi, [ebx + 0x2000]
mov ecx, 0x407c78
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x45e107
test dx, dx
je 0x45e103
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x45e107
add eax, 4
add ecx, 4
test dx, dx
jne 0x45e0e1
xor eax, eax
jmp 0x45e10c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x45e17c
mov ecx, 0x407c6c
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x45e13d
test dx, dx
je 0x45e139
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x45e13d
add eax, 4
add ecx, 4
test dx, dx
jne 0x45e117
xor eax, eax
jmp 0x45e142
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x45e17c
mov ecx, 0x407c58
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x45e173
test dx, dx
je 0x45e16f
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x45e173
add eax, 4
add ecx, 4
test dx, dx
jne 0x45e14d
xor eax, eax
jmp 0x45e178
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x45e183
and dword [ebp - 0x1874], 0
push 0x1800
lea eax, [ebp - 0x1810]
push 0
push eax
call fcn.00443420
push 0x400
lea eax, [ebx + 0x800]
push eax
lea eax, [ebp - 0x1810]
push eax
call fcn.0045cc65
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.0045dafe
push eax
call fcn.004434a0
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 0x45e525
push edi
call fcn.0045cba5
test eax, eax
je 0x45e22a
mov dword [ebp - 0x1824], 1
mov edi, dword [ebp - 0x1814]
jmp 0x45e3b2
push edi
push 0x64
push esi
call fcn.00451677
jmp 0x45e21f
mov eax, dword [ebp - 0x1838]
add eax, 0x20
push eax
push edi
call fcn.0043f33a
pop ecx
pop ecx
cmp edi, eax
jne 0x45e402
push 1
push ebx
push dword [ebp - 0x1838]
push edi
call fcn.0045ce30
test eax, eax
je 0x45e6eb
lea edi, [ebx + 0x2000]
push 4
mov ecx, 0x407c78
mov eax, edi
pop esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x45e29a
test dx, dx
je 0x45e296
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x45e29a
add eax, esi
add ecx, esi
test dx, dx
jne 0x45e276
xor eax, eax
jmp 0x45e29f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x45e30b
mov ecx, 0x407c6c
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x45e2ce
test dx, dx
je 0x45e2ca
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x45e2ce
add eax, esi
add ecx, esi
test dx, dx
jne 0x45e2aa
xor eax, eax
jmp 0x45e2d3
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x45e30b
mov ecx, 0x407c58
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x45e302
test dx, dx
je 0x45e2fe
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x45e302
add eax, esi
add ecx, esi
test dx, dx
jne 0x45e2de
xor eax, eax
jmp 0x45e307
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x45e315
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.0045d3d9
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 0x45e393
mov eax, dword [ebp - 0x1818]
add eax, 0x800
push 0x400
push eax
lea eax, [esi + 0x828]
push eax
call fcn.0045cc65
add esp, 0xc
add esi, 0x28
push esi
call fcn.0045d2ca
mov edi, dword [ebp - 0x1814]
cmp dword [ebp - 0x1820], 1
jne 0x45e676
mov ebx, dword [ebp - 0x1818]
mov esi, dword [ebp - 0x181c]
mov eax, dword [ebp - 0x1854]
add eax, 0x20
push eax
push edi
call fcn.0043f33a
pop ecx
pop ecx
cmp edi, eax
jne 0x45e52b
push 0
push ebx
push dword [ebp - 0x1854]
push edi
call fcn.0045ce30
test eax, eax
je 0x45e649
inc dword [ebp - 0x186c]
cmp dword [ebp - 0x186c], 1
jle 0x45e52b
and dword [ebp - 0x1820], 0
jmp 0x45e52b
cmp dword [ebp - 0x1820], 1
jne 0x45e5d8
mov eax, dword [ebp - 0x182c]
add eax, 0x20
push eax
push edi
call fcn.0043f33a
pop ecx
pop ecx
cmp edi, eax
jne 0x45e474
push 0
push ebx
push dword [ebp - 0x182c]
push edi
call fcn.0045ce30
test eax, eax
je 0x45e3b2
mov esi, dword [ebp - 0x1818]
add esi, 0x2000
push esi
call fcn.0045cba5
test eax, eax
je 0x45e461
mov dword [ebp - 0x1824], 1
jmp 0x45e3a6
push esi
push 0x64
push dword [ebp - 0x181c]
call fcn.00451677
jmp 0x45e3a6
mov eax, dword [ebp - 0x184c]
add eax, 0x20
push eax
push edi
call fcn.0043f33a
pop ecx
pop ecx
cmp edi, eax
jne 0x45e59c
push 0
push ebx
push dword [ebp - 0x184c]
push edi
call fcn.0045ce30
test eax, eax
je 0x45e3b2
mov edi, dword [ebp - 0x1818]
mov ebx, dword [ebp - 0x181c]
push 0x63
lea esi, [edi + 0x3800]
push esi
push 0x64
push ebx
call fcn.0045cc87
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.00451677
push 0x409cf0
push 0x400
push esi
call fcn.00451677
push dword [ebp - 0x1818]
push ebx
call fcn.0045d0dc
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 0x45e570
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.0043799d
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.0043f33a
pop ecx
pop ecx
mov dword [ebp - 0x1828], eax
test eax, eax
jne 0x45dfd6
jmp 0x45e6eb
mov eax, dword [ebp - 0x1834]
add eax, 0x20
push eax
push edi
call fcn.0043f33a
pop ecx
pop ecx
cmp edi, eax
jne 0x45e5d8
push 0
push ebx
push dword [ebp - 0x1834]
push edi
call fcn.0045ce30
test eax, eax
jne 0x45e687
mov dword [ebp - 0x1824], 1
jmp 0x45e3b2
mov eax, dword [ebp - 0x1850]
add eax, 0x20
push eax
push edi
call fcn.0043f33a
pop ecx
pop ecx
test eax, eax
jne 0x45e608
mov eax, dword [ebp - 0x1844]
add eax, 0x20
push eax
push edi
call fcn.0043f33a
pop ecx
pop ecx
test eax, eax
je 0x45e399
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.0043799d
or dword [ebp - 4], 0xffffffff
push 0
push 1
lea ecx, [ebp - 0x18b4]
call fcn.00411dad
jmp 0x45e399
push 0
push ebx
push dword [ebp - 0x1858]
push edi
call fcn.0045ce30
test eax, eax
je 0x45e52b
push 0x63
lea eax, [ebx + 0x2800]
push eax
push 0x64
push esi
call fcn.0045cc87
jmp 0x45e52b
mov ebx, dword [ebp - 0x1818]
mov esi, dword [ebp - 0x181c]
jmp 0x45e52b
push 0xa
lea eax, [ebx + 0x2000]
push 0
push eax
call fcn.0043eef4
add esp, 0xc
cmp eax, 0x78f
jne 0x45e6d3
push 0x409cf0
lea ecx, [esi + 0x748]
call fcn.00413ccf
push 0x407c4c
push 0x106
lea eax, [esi + 0xcc]
push eax
call fcn.00451677
mov dword [ebp - 0x1824], 1
jmp 0x45e6e1
push esi
add ebx, 0x1000
push ebx
push eax
call fcn.0045d185
mov dword [ebp - 0x1840], 1
xor eax, eax
cmp dword [ebp - 0x1840], eax
jne 0x45e6fd
cmp dword [ebp - 0x1824], eax
je 0x45e703
mov dword [ebp - 0x1820], eax
mov edi, 0x1000
push edi
push eax
push dword [ebp - 0x1848]
call fcn.00443420
add esp, 0xc
push dword [ebp - 0x1814]
push edi
push dword [ebp - 0x1848]
call fcn.00451677
push dword [ebp - 0x1848]
mov ebx, dword [ebp - 0x183c]
push edi
push ebx
call fcn.00451677
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, 0x7fd
jb 0x45e75a
xor eax, eax
mov word [ebx], ax
mov dword [ebp - 0x1860], 1
test al, 1
je 0x45e75f
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 0x45df73
push dword [ebp - 0x185c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, dword [ebp - 0x1878]
xor esi, esi
jmp 0x45dd58