Function at 0x4037f7
Capabilities:
Get file size

Disassembly:
sub esp, 0x234
push ebx
push ebp
xor ebx, ebx
push edi
mov dword [esp + 0xc], ebx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0x400
mov edi, 0x438800
add eax, 0x3e8
push edi
push ebx
mov dword [0x42ad00], eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 3
push 0x80000000
push edi
call fcn.00406e22
mov ebp, eax
mov dword [0x40b010], ebp
cmp ebp, 0xffffffff
jne 0x40384c
mov eax, 0x4092e8
jmp 0x403b3f
push esi
push edi
mov esi, 0x436800
push esi
call fcn.0040702b
push esi
call fcn.00407208
push eax
push 0x439000
call fcn.0040702b
push 0
push ebp
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
mov dword [0x40d92c], esi
test esi, esi
je 0x40399a
mov ebx, dword [esp + 0x248]
cmp dword [0x42ad10], 0
mov eax, 0x8000
mov edi, 0x200
cmovne edi, eax
cmp esi, edi
cmovb edi, esi
push edi
push 0x40d9c8
call fcn.004032ba
test eax, eax
je 0x403b31
cmp dword [0x42ad10], 0
jne 0x40395b
push 0x24
push 0x40d9c8
lea eax, [esp + 0x20]
push eax
call fcn.00406bb7
test dword [esp + 0x18], 0xfffffe00
jne 0x403968
cmp dword [esp + 0x1c], 0xdeadbeef
jne 0x403968
cmp dword [esp + 0x28], 0x74736e49
jne 0x403968
cmp dword [esp + 0x24], 0x74666f73
jne 0x403968
cmp dword [esp + 0x20], 0x6c6c754e
jne 0x403968
or ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x30]
mov eax, ebx
mov ecx, dword [0x40d930]
and eax, 2
or dword [0x42ade0], eax
mov dword [0x42ad10], ecx
cmp edx, esi
ja 0x403b39
mov eax, ebx
and al, 0xc
cmp al, 4
je 0x403991
inc dword [0x40d928]
lea eax, [edx - 0x28]
push 0x24
pop edi
push edi
add eax, ecx
pop esi
mov dword [0x40d930], eax
add eax, 0x20
push 0
push eax
call fcn.00403332
jmp 0x403968
test bl, 2
jne 0x403968
push 0
call fcn.00403793
pop ecx
cmp esi, dword [0x40d92c]
jae 0x403983
push edi
push 0x40d9c8
push dword [esp + 0x18]
call fcn.0040732a
mov dword [esp + 0x10], eax
add dword [0x40d930], edi
sub esi, edi
jne 0x40388a
mov ebx, dword [esp + 0x10]
mov edi, 0x438800
test byte [esp + 0x18], 1
mov eax, dword [0x42ad0c]
je 0x4039ac
inc eax
mov dword [0x42ad0c], eax
test byte [esp + 0x18], 0x80
mov ecx, dword [0x42ad08]
je 0x4039c0
inc ecx
mov dword [0x42ad08], ecx
test dword [esp + 0x18], 0x100
je 0x4039d0
inc dword [0x42ad04]
test ecx, ecx
je 0x403a34
test eax, eax
jne 0x403a34
push edi
lea eax, [esp + 0x40]
push eax
call fcn.0040702b
lea eax, [esp + 0x3c]
push eax
call fcn.004071c4
push eax
lea eax, [esp + 0x40]
push eax
call fcn.0040702b
lea eax, [esp + 0x3c]
push eax
push str._s.nsisbin
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea eax, [esp + 0x3c]
push 3
push 0x80000000
push eax
call fcn.00406e22
mov dword [0x40b014], eax
cmp eax, 0xffffffff
jne 0x403a34
cmp dword [0x42ad04], 0
je 0x403b39
push 1
call fcn.00403793
cmp dword [0x42ad10], 0
pop ecx
je 0x403b39
cmp dword [0x40d928], 0
je 0x403aaf
mov eax, dword [0x40d930]
add eax, 0xfffffffc
push 0
push eax
call fcn.00403332
push 4
lea eax, [esp + 0x18]
push eax
push dword [0x40b010]
call fcn.00406e4f
test eax, eax
je 0x403b39
push 4
lea eax, [esp + 0x18]
push eax
push ebx
call fcn.0040732a
mov esi, eax
lea eax, [esp + 0x10]
push 4
push eax
push dword [0x40b010]
call fcn.00406e4f
test eax, eax
je 0x403b39
cmp esi, dword [esp + 0x10]
jne 0x403b39
push dword [esp + 0x2c]
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ecx, dword [0x42ad10]
mov esi, eax
add ecx, 0x24
push ecx
call fcn.0040334a
push dword [esp + 0x14]
push dword [esp + 0x30]
push esi
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 1
call fcn.00403361
mov ecx, eax
mov edi, edx
mov eax, dword [esp + 0x2c]
cdq
cmp ecx, eax
jne 0x403b39
cmp edi, edx
jne 0x403b39
mov dword [0x42ad18], esi
mov eax, dword [esi]
push 8
mov dword [0x42ad14], eax
lea eax, [esi + 0x44]
pop ecx
lea eax, [eax - 8]
add dword [eax], esi
sub ecx, 1
jne 0x403b06
push 1
push ecx
push ecx
push ebp
call fcn.004032e8
mov dword [esi + 0x3c], eax
lea eax, [esi + 4]
push 0x40
push eax
push 0x42ad20
call fcn.00406bb7
xor eax, eax
jmp 0x403b3e
push 1
call fcn.00403793
pop ecx
mov eax, 0x409300
pop esi
pop edi
pop ebp
pop ebx
add esp, 0x234
ret 4