Function at 0x401a60
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x258
push esi
mov byte [ebp - 0xd9], 0x32
mov byte [ebp - 0x102], 0x10
mov byte [ebp - 0x101], 2
mov byte [ebp - 0x91], 9
mov byte [ebp - 0x1a], 0x25
mov byte [ebp - 0x19], 0xb
mov byte [ebp - 7], 0x1d
mov byte [ebp - 0x112], 0xb
mov byte [ebp - 0x111], 0xe
mov byte [ebp - 0xbd], 0x27
mov byte [ebp - 6], 0x1d
mov byte [ebp - 0x251], 6
mov byte [ebp - 0x1ad], 0x2b
mov byte [ebp - 0xe5], 0x29
mov byte [ebp - 0x19d], 0
mov byte [ebp - 5], 0x1a
mov eax, 7
mov word [ebp - 0x100], ax
mov ecx, 0x23
mov word [ebp - 0xd8], cx
mov edx, 0x11
mov word [ebp - 0xd4], dx
mov eax, 0x17
mov word [ebp - 0xfc], ax
mov ecx, 0x13
mov word [ebp - 0x19c], cx
mov edx, 0xc
mov word [ebp - 0x190], dx
mov eax, 0x1b
mov word [ebp - 0xac], ax
mov ecx, 0x1d
mov word [ebp - 0x90], cx
mov edx, 0xf
mov word [ebp - 0x1b8], dx
mov eax, 0x2a
mov word [ebp - 0x18], ax
mov ecx, 4
mov word [ebp - 0x14], cx
mov edx, 0x30
mov word [ebp - 0x110], dx
mov eax, 5
mov word [ebp - 0xd0], ax
mov ecx, 0xd
mov word [ebp - 0xbc], cx
mov edx, 0x30
mov word [ebp - 0x244], dx
mov eax, 8
mov word [ebp - 0x240], ax
mov dword [ebp - 0x1ac], 0x19
mov dword [ebp - 0x10c], 0x2e
mov dword [ebp - 0x250], 0x1e
mov dword [ebp - 0xe4], 0x11
mov dword [ebp - 0x10], 0x25
mov dword [ebp - 0x198], 0x1f
mov dword [ebp - 0x23c], 0x31
mov dword [ebp - 0x9c], 2
mov dword [ebp - 0xf8], 0x1a
mov dword [ebp - 4], 0x24
mov dword [ebp - 0xa8], 0x1d
mov dword [ebp - 0xa4], 0x13
mov dword [ebp - 0xb8], 3
mov dword [ebp - 0x238], 3
mov dword [ebp - 0xcc], 0x12
mov dword [ebp - 0x8c], 0x2f
mov ecx, 4
mov word [ebp - 0xc8], cx
mov edx, 0x32
mov word [ebp - 0x1a8], dx
mov eax, 0x29
mov word [ebp - 0xc4], ax
mov ecx, 0x29
mov word [ebp - 0xf4], cx
mov edx, 0x29
mov word [ebp - 0x18c], dx
mov eax, 0x11
mov word [ebp - 0xf0], ax
mov ecx, 0x2c
mov word [ebp - 0x188], cx
mov edx, 0x1e
mov word [ebp - 0xa0], dx
mov eax, 0x31
mov word [ebp - 0xc], ax
mov ecx, 0x17
mov word [ebp - 0x234], cx
mov edx, 1
mov word [ebp - 0xb4], dx
mov eax, 0x13
mov word [ebp - 0x230], ax
mov ecx, 0x26
mov word [ebp - 0x194], cx
mov edx, 9
mov word [ebp - 0x108], dx
mov eax, 0xd
mov word [ebp - 0x184], ax
mov ecx, 0x27
mov word [ebp - 0x22c], cx
cmp dword [ebp - 0x248], 0x43
jle 0x401d1f
mov edx, dword [ebp - 0x10]
sub edx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x98]
sub eax, 0x24
and edx, eax
or edx, 0x11
mov byte [ebp - 0xbd], dl
movzx ecx, word [ebp - 0xbc]
sub ecx, dword [ebp - 0x23c]
movzx edx, word [ebp - 0xbc]
sub ecx, edx
sub ecx, 0x12
mov word [ebp - 0xac], cx
movzx eax, word [ebp - 0x190]
add eax, 0x30
and eax, 0x36
mov dword [ebp - 0xa4], eax
mov dword [ebp + 8], 0x31
movzx esi, byte [ebp - 0x19d]
add esi, dword [ebp - 0x8c]
mov ecx, dword [ebp + 8]
push ecx
push 0x13
push 0x1f
call dword [sym.imp.KERNEL32.dll_GetFileAttributesExW]
lea edx, [esi + eax - 0x5b]
mov word [ebp - 0xd8], dx
movzx eax, word [ebp - 0xc4]
sub eax, dword [ebp - 0xb0]
mov word [ebp - 0xc4], ax
movzx ecx, byte [ebp - 0x112]
add ecx, 0x23
mov dword [ebp - 0xec], ecx
mov dword [ebp - 0xb0], 0x2d
mov dword [ebp + 0xc], 0x18
mov edx, dword [ebp - 0xb0]
sub edx, 0x2c
mov dword [ebp - 0x8c], edx
mov eax, dword [ebp - 0x1bc]
sub eax, 0x3f
xor eax, 0x5a
mov dword [ebp - 0x10], eax
movzx ecx, byte [ebp - 0x111]
add ecx, 0x3e
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0xe0]
mov dword [ebp - 0x1bc], edx
mov eax, dword [ebp - 0xcc]
add eax, dword [ebp - 0xa8]
mov ecx, dword [ebp + 0xc]
add ecx, 0x54
or eax, ecx
or eax, dword [ebp - 0x248]
mov byte [ebp - 0x101], al
mov edx, dword [ebp - 0x250]
add edx, dword [ebp - 0xec]
mov eax, dword [ebp + 0x10]
lea ecx, [edx + eax + 0x2f]
and ecx, 0xd
mov byte [ebp - 0xbd], cl
mov edx, dword [ebp - 0xec]
mov eax, dword [ebp - 0x9c]
lea ecx, [eax + edx - 0x35]
mov dword [ebp - 0x8c], ecx
movzx edx, word [ebp - 0xd8]
sub edx, dword [ebp - 0xec]
add edx, dword [ebp - 0xa4]
and edx, 0xfffffffb
mov byte [ebp - 0x112], dl
mov al, byte [ebp + 8]
mov byte [ebp - 0x248], al
mov dword [ebp - 0x12c], 0x52
mov ecx, dword [ebp - 0x238]
add ecx, 0x22
mov dword [ebp - 0x98], ecx
mov edx, dword [ebp - 0xe0]
mov dword [ebp - 0x258], edx
cmp dword [ebp - 0x258], 0
je 0x401e8b
cmp dword [ebp - 0x258], 1
je 0x401eca
cmp dword [ebp - 0x258], 2
je 0x401f51
jmp 0x401fe2
movzx eax, byte [ebp - 0x19]
add eax, 2
movzx ecx, word [ebp - 0x194]
sub ecx, eax
mov word [ebp - 0x194], cx
mov edx, 0x52
sub edx, dword [ebp - 0x98]
sub edx, dword [ebp - 0xf8]
and edx, 0x4b
movzx eax, word [ebp - 0xbc]
or edx, eax
mov byte [ebp - 0xe5], dl
jmp 0x401ff8
mov ecx, 0x53
sub ecx, dword [ebp + 0xc]
add ecx, dword [0x415060]
mov dword [0x415060], ecx
cmp dword [0x41501c], 0x46
jle 0x401f27
movzx edx, byte [ebp - 0x111]
xor edx, dword [ebp - 0x98]
or edx, 0x42
mov dword [ebp - 0x250], edx
push 0x28
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ecx, 0x57
sub ecx, eax
movzx edx, word [ebp - 0xd8]
lea eax, [ecx + edx - 0x2c]
xor eax, dword [ebp - 0x10c]
mov byte [ebp - 0x111], al
movzx ecx, word [ebp - 0xac]
add ecx, dword [0x415060]
mov dword [0x415060], ecx
mov edx, dword [ebp - 0x1bc]
and edx, 0x4c
movzx eax, byte [ebp - 6]
and edx, eax
mov byte [ebp - 6], dl
jmp 0x401ff8
movzx ecx, word [ebp - 0xd0]
add ecx, 0x4c
movzx edx, word [ebp - 0x1b8]
sub edx, ecx
mov word [ebp - 0x1b8], dx
cmp dword [ebp - 0x24c], 0x11
jg 0x401f9f
mov eax, dword [ebp - 0x248]
add eax, 0x4d
or eax, 0x50
mov dword [ebp - 0x250], eax
movzx ecx, byte [ebp - 0x251]
movzx edx, byte [ebp - 0x1a]
add ecx, edx
sub ecx, dword [ebp - 0x8c]
mov dword [ebp - 0x23c], ecx
movzx eax, word [ebp - 0x230]
and eax, 0x63
movzx ecx, word [ebp - 0x234]
and ecx, eax
mov word [ebp - 0x234], cx
mov edx, dword [0x415008]
cmp edx, dword [ebp - 0x24c]
jl 0x401fe0
movzx eax, word [ebp - 0x100]
mov dword [ebp - 0x248], eax
mov ecx, dword [ebp - 0x238]
add ecx, 0x3f
mov dword [ebp + 0xc], ecx
jmp 0x401ff8
mov edx, dword [ebp - 0x248]
mov eax, dword [ebp - 0xec]
lea ecx, [eax + edx - 0x57]
mov dword [ebp - 0x10c], ecx
mov edx, dword [ebp - 0x1bc]
mov dword [ebp - 0xb0], edx
movzx eax, word [ebp - 0x190]
sub eax, 0x5e
mov word [ebp - 0x190], ax
movzx esi, byte [ebp - 0xd9]
sub esi, dword [ebp - 0xec]
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 0xb0]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp - 0xec]
push ecx
call fcn.004052f0
add esp, 0x10
lea edx, [esi + eax - 0xb]
mov word [ebp - 0xd4], dx
movzx eax, word [ebp - 0x190]
movzx ecx, word [ebp - 0x244]
and eax, ecx
movzx edx, byte [ebp - 0x19]
add edx, eax
mov byte [ebp - 0x19], dl
movzx eax, byte [ebp - 7]
mov dword [ebp - 0xb0], eax
mov ecx, dword [0x415048]
add ecx, 0x40
mov dword [0x415048], ecx
mov dword [str._Y__B], 0x50
movzx edx, word [ebp - 0xfc]
add edx, 0x3f
mov word [ebp - 0xfc], dx
mov eax, dword [ebp - 0xb0]
pop esi
mov esp, ebp
pop ebp
ret