Function at 0x403da0
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x446e1e
mov eax, dword fs:[0]
push eax
sub esp, 0x150
mov eax, dword [0x45b8f8]
xor eax, esp
mov dword [esp + 0x148], eax
push ebx
push esi
push edi
mov eax, dword [0x45b8f8]
xor eax, esp
push eax
lea eax, [esp + 0x160]
mov dword fs:[0], eax
mov esi, ecx
lea ecx, [esi + 0x114]
mov dword [esp + 0x34], esi
xor ebx, ebx
xor edi, edi
call fcn.004029a0
cmp dword [esi + 0x184], ebx
jbe 0x403e44
mov eax, dword [esi + 0x180]
mov edi, dword [eax]
cmp edi, eax
lea ebx, [esi + 0x17c]
mov dword [esp + 0x28], edi
jne 0x403e18
call fcn.0042cf2e
mov eax, dword [esp + 0x28]
mov edi, dword [edi + 8]
push eax
push ebx
lea ecx, [esp + 0x2c]
push ecx
mov dword [esp + 0x2c], edi
call fcn.00407c40
add esi, 0x188
lea ebx, [esp + 0x20]
call fcn.00407b90
mov esi, dword [esp + 0x34]
xor ebx, ebx
mov edx, dword [esi + 0x114]
mov eax, dword [edx + 0x14]
lea ecx, [esi + 0x114]
call eax
cmp edi, ebx
je 0x4043d2
mov dword [esp + 0x24], ebx
mov dword [esp + 0x38], ebx
call fcn.0040c808
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x403e7f
push 0x80004005
call fcn.00401bb0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x30], eax
mov dword [esp + 0x168], ebx
call fcn.0040c808
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x403eb0
push 0x80004005
call fcn.00401bb0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
mov byte [esp + 0x168], 1
call fcn.0040c808
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x403ee2
push 0x80004005
call fcn.00401bb0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov byte [esp + 0x168], 2
call fcn.0040c808
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x403f14
push 0x80004005
call fcn.00401bb0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x2c], eax
mov byte [esp + 0x168], 3
call fcn.0040c808
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x403f46
push 0x80004005
call fcn.00401bb0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
mov byte [esp + 0x168], 4
mov ecx, dword [edi + 8]
push ecx
push 0x45fb40
lea edx, [esp + 0x38]
push str._s_s
push edx
call fcn.0040a870
mov eax, dword [edi + 0x10]
mov ecx, dword [eax + 0x10]
push ecx
push 0x45fb40
lea edx, [esp + 0x38]
push str._s_s
push edx
call fcn.0040a870
add esp, 0x20
call fcn.0040c808
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x403fae
push 0x80004005
call fcn.00401bb0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
push ebx
lea esi, [esp + 0x20]
mov byte [esp + 0x16c], 5
call fcn.00401100
mov ecx, dword [edi + 8]
mov esi, dword [esp + 0x20]
add esp, 4
push ecx
push esi
lea edx, [esp + 0x20]
push str._szip_s
push edx
call fcn.0040a870
add esp, 0x10
push 0x44f180
push 0x44f184
lea eax, [esp + 0x20]
push eax
call fcn.004076a0
mov ecx, dword [edi + 0x10]
mov edx, dword [ecx + 0x10]
push edx
push esi
lea eax, [esp + 0x34]
push str._szip_s
push eax
call fcn.0040a870
add esp, 0x10
push 0x44f180
push 0x44f184
lea ecx, [esp + 0x34]
push ecx
call fcn.004076a0
mov edx, dword [edi + 8]
push edx
push esi
lea eax, [esp + 0x1c]
push 0x44f188
push eax
call fcn.0040a870
add esp, 0x10
push 0x44f180
push 0x44f184
lea ecx, [esp + 0x1c]
push ecx
call fcn.004076a0
push 0x44f180
push 0x44f19c
lea edx, [esp + 0x1c]
push edx
call fcn.004076a0
mov eax, dword [0x45fd80]
push ebx
push edi
push 0x483
push eax
call dword [sym.imp.USER32.dll_PostThreadMessageW]
mov ecx, dword [esp + 0x18]
push ebx
push 0x80
push 3
push ebx
push 7
push SysReAllocStringLen
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x40415e
lea edx, [esp + 0x40]
push edx
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [esp + 0x48]
mov dword [esp + 0x44], ecx
call dword [0x45cb30]
mov edx, dword [esp + 0x18]
push eax
push edx
lea eax, [esp + 0x4c]
call fcn.00408080
lea eax, [esp + 0xd0]
mov byte [esp + 0x168], 8
mov dword [esp + 0xcc], eax
call dword [0x45cb30]
mov ecx, dword [esp + 0x14]
push eax
push ecx
lea eax, [esp + 0xd4]
call fcn.00408080
mov byte [esp + 0x168], 9
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0xcc]
push edx
call fcn.0040aea0
mov eax, dword [0x45fd80]
add esp, 4
push 0x64
push edi
push 0x484
push eax
call dword [sym.imp.USER32.dll_PostThreadMessageW]
mov eax, dword [esp + 0xcc]
lea ecx, [esp + 0xd0]
cmp eax, ecx
je 0x404151
push eax
call fcn.0042d01e
add esp, 4
mov eax, dword [esp + 0x44]
lea edx, [esp + 0x48]
jmp 0x40423b
mov ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
push ebx
lea eax, [esp + 0x28]
push eax
push ecx
mov edx, edi
lea ecx, [esp + 0x44]
mov dword [edi + 0x14], 1
call fcn.00401370
add esp, 0xc
test eax, eax
je 0x404251
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
lea edx, [esp + 0x38]
push edx
push ebx
call fcn.004011e0
add esp, 8
test eax, eax
je 0x4042e3
test ebx, ebx
je 0x4041b5
push ebx
call fcn.0042d01e
add esp, 4
lea eax, [esp + 0xd0]
mov dword [esp + 0xcc], eax
call dword [0x45cb30]
push eax
push edi
lea eax, [esp + 0xd4]
call fcn.00408080
lea ecx, [esp + 0x48]
mov byte [esp + 0x168], 6
mov dword [esp + 0x44], ecx
call dword [0x45cb30]
mov edx, dword [esp + 0x14]
push eax
push edx
lea eax, [esp + 0x4c]
call fcn.00408080
mov byte [esp + 0x168], 7
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0x44]
push eax
call fcn.0040aea0
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0x4c]
add esp, 4
cmp eax, ecx
je 0x40422d
push eax
call fcn.0042d01e
add esp, 4
mov eax, dword [esp + 0xcc]
lea edx, [esp + 0xd0]
cmp eax, edx
je 0x4042e3
push eax
call fcn.0042d01e
add esp, 4
jmp 0x4042e3
mov eax, dword [0x45fd80]
push 0xffffffffffffffff
push edi
push 0x483
push eax
call dword [sym.imp.USER32.dll_PostThreadMessageW]
mov eax, dword [ebx + 0x190]
cmp dword [ebx + 0x18c], eax
lea esi, [ebx + 0x188]
mov dword [esp + 0x24], eax
jbe 0x404282
call fcn.0042cf2e
mov ebx, dword [esi + 4]
cmp ebx, dword [esi + 8]
jbe 0x40428f
call fcn.0042cf2e
mov eax, dword [esp + 0x24]
cmp ebx, eax
mov dword [esp + 0x3c], ebx
je 0x4042ab
jmp 0x4042a0
cmp dword [ebx], edi
je 0x4042ab
add ebx, 4
cmp ebx, eax
jne 0x4042a0
mov edi, dword [esi + 8]
cmp dword [esi + 4], edi
jbe 0x4042b8
call fcn.0042cf2e
mov eax, esi
test eax, eax
je 0x4042c2
cmp eax, esi
je 0x4042c7
call fcn.0042cf2e
cmp ebx, edi
setne al
test al, al
je 0x4042df
push ebx
mov eax, esi
push eax
lea ebx, [esp + 0x2c]
mov edi, esi
call fcn.00407bf0
mov esi, dword [esp + 0x1c]
add esi, 0xfffffff0
mov byte [esp + 0x168], 4
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404307
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov byte [esp + 0x168], 3
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40432f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 2
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404357
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 1
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40437f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x168], 0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4043a7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x168], 0xffffffff
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4043d2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x160]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x148]
xor ecx, esp
call fcn.0042bfb5
mov esp, ebp
pop ebp
ret