Function at 0x40fa2b
Capabilities:
Get file size

Disassembly:
mov byte [ebp - 0x53], 0xe5
mov byte [ebp - 0x52], 0
mov byte [ebp - 0x51], 0xc0
mov byte [ebp - 0x50], 0x4f
mov byte [ebp - 0x4f], 0xc2
mov byte [ebp - 0x4e], 0x95
mov byte [ebp - 0x4d], 0xee
mov dword [ebp - 0x278], 0
mov dword [ebp - 0x294], 0
xor ecx, ecx
mov dword [ebp - 0x290], ecx
mov dword [ebp - 0x26c], 0
mov dword [ebp - 0x274], 0
mov dword [ebp - 0x280], 0
mov dword [ebp - 0x288], 0
mov dword [ebp - 0x284], 0
push 0
push 0
push 3
push 0
push 1
push 0x80000000
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x278], eax
cmp dword [ebp - 0x278], 0xffffffff
je 0x40fac6
cmp dword [ebp - 0x278], 0
jne 0x40fad0
mov eax, 0x800b0100
jmp 0x41ee1c
lea eax, [ebp - 0x294]
push eax
mov ecx, dword [ebp - 0x278]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x40faff
cmp dword [ebp - 0x290], 0
jl 0x40fb16
jg 0x40faff
cmp dword [ebp - 0x294], 0x2000000
jbe 0x40fb16
mov edx, dword [ebp - 0x278]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0x800b0100
jmp fcn.0041ee62
mov dword [ebp - 0x274], pe_nt_image_headers32
mov eax, dword [ebp - 0x274]
push eax
call fcn.004189da
add esp, 4
mov dword [ebp - 0x29c], eax
mov ecx, dword [ebp - 0x29c]
mov dword [ebp - 0x26c], ecx
push 0
mov edx, dword [ebp - 0x26c]
push edx
lea eax, [ebp - 0x274]
push eax
mov ecx, dword [ebp - 0x278]
push ecx
mov edx, dword [ebp - 0x270]
mov eax, dword [edx + 0x408]
call eax
test eax, eax
jne 0x40fc05
mov ecx, dword [ebp - 0x26c]
mov dword [ebp - 0x2b0], ecx
mov edx, dword [ebp - 0x2b0]
push edx
call fcn.0041fc52
add esp, 4
mov eax, dword [ebp - 0x274]
push eax
call fcn.00418a43
add esp, 4
mov dword [ebp - 0x298], eax
mov ecx, dword [ebp - 0x298]
mov dword [ebp - 0x26c], ecx
push 0
mov edx, dword [ebp - 0x26c]
mov ecx, dword [ebp - 0x278]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0
lea edx, [ebp - 0x5c]
push edx
lea eax, [ebp - 0x288]
push eax
mov ecx, dword [ebp - 0x270]
mov edx, dword [ecx + 0x40c]
call edx
test eax, eax
jne 0x40fc56
mov eax, dword [ebp - 0x26c]
mov dword [ebp - 0x2a8], eax
mov ecx, dword [ebp - 0x2a8]
push ecx
call 0x41fd15
add esp, 4
mov eax, 0x800b0100
jmp 0x41efa2
mov ecx, 0x11
mov esi, str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_________._:_________
lea edi, [ebp - 0x4c]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov edx, dword [ebp - 0x274]
lea eax, [edx + edx + 1]
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00418b35
add esp, 4
mov dword [ebp - 0x2a0], eax
mov eax, dword [ebp - 0x2a0]
mov dword [ebp - 0x280], eax
mov dword [ebp - 0x27c], 0
jmp 0x40fcb7
mov ecx, dword [ebp - 0x27c]
add ecx, 1
mov dword [ebp - 0x27c], ecx
mov edx, dword [ebp - 0x27c]
cmp edx, dword [ebp - 0x274]
jae 0x40fd1c
mov eax, dword [ebp - 0x26c]
add eax, dword [ebp - 0x27c]
movzx ecx, byte [eax]
sar ecx, 4
movsx dx, byte [ebp + ecx - 0x4c]
mov eax, dword [ebp - 0x27c]
shl eax, 1
mov ecx, dword [ebp - 0x280]
mov word [ecx + eax*2], dx
mov edx, dword [ebp - 0x26c]
add edx, dword [ebp - 0x27c]
movzx eax, byte [edx]
and eax, 0xf
movsx cx, byte [ebp + eax - 0x4c]
mov edx, dword [ebp - 0x27c]
shl edx, 1
mov eax, dword [ebp - 0x280]
mov word [eax + edx*2 + 2], cx
jmp 0x40fca8
mov ecx, dword [ebp - 0x274]
shl ecx, 1
xor edx, edx
mov eax, dword [ebp - 0x280]
mov word [eax + ecx*2], dx
push 0
push 0
mov ecx, dword [ebp - 0x274]
push ecx
mov edx, dword [ebp - 0x26c]
push edx
mov eax, dword [ebp - 0x288]
push eax
mov ecx, dword [ebp - 0x270]
mov edx, dword [ecx + 0x410]
call edx
mov dword [ebp - 0x284], eax
mov eax, dword [ebp - 0x26c]
mov dword [ebp - 0x2a4], eax
mov ecx, dword [ebp - 0x2a4]
push ecx
call 0x41fe41
add esp, 4
mov dword [ebp - 0x26c], 0
cmp dword [ebp - 0x284], 0
je 0x40ff0a
mov dword [ebp - 0x268], 0
push 0x208
push 0
lea edx, [ebp - 0x264]
push edx
call 0x4216bc
add esp, 0xc
push 0
lea eax, [ebp - 0x268]
push eax
mov ecx, dword [ebp - 0x284]
push ecx
mov edx, dword [ebp - 0x270]
mov eax, dword [edx + 0x414]
call eax
test eax, eax
je 0x40feec
mov dword [ebp - 0x2d8], 0x24
lea ecx, [ebp - 0x264]
mov dword [ebp - 0x2d0], ecx
mov edx, dword [ebp + 8]
mov dword [ebp - 0x2c8], edx
mov eax, dword [ebp - 0x280]
mov dword [ebp - 0x2cc], eax
mov dword [ebp - 0x308], 0x30
mov dword [ebp - 0x2fc], 2
mov dword [ebp - 0x2f8], 1
mov dword [ebp - 0x2f4], 2
test dword [edi*8 + 0x2ffff], ecx
add byte [eax], al
mov dword [ebp - 0x2ec], 1
lea ecx, [ebp - 0x2d8]
mov dword [ebp - 0x2f0], ecx
mov edx, dword [ebp - 0x270]
push 0
mov ecx, dword [ebp - 0x284]
push ecx
mov edx, dword [ebp - 0x288]
push edx
mov eax, dword [ebp - 0x270]
mov ecx, dword [eax + 0x418]
call ecx
mov edx, dword [ebp - 0x280]
mov dword [ebp - 0x2ac], edx
mov eax, dword [ebp - 0x2ac]
push eax
call fcn.0041ffee
add esp, 4
mov dword [ebp - 0x280], 0
push 0
mov ecx, dword [ebp - 0x288]
push ecx
mov edx, dword [ebp - 0x270]
mov eax, dword [edx + 0x41c]
call eax
mov eax, dword [ebp - 0x28c]
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041f544
mov esp, ebp
pop ebp
ret 0xc
clc
fldcw word [ebp - 8]
wait
fnstcw word [ebp - 8]
jge 0x41ee1c
mov eax, dword [ebp - 8]
xor esi, esi
test al, 1
je 0x41ee30
push 0x10
pop esi
test al, 4
je 0x41ee37
or esi, 8
test al, 8
je 0x41ee3e
or esi, 4
test al, 0x10
je 0x41ee45
or esi, 2
test al, 0x20
je 0x41ee4c
or esi, 1
test al, 2
je 0x41ee56
or esi, 0x80000
movzx edx, ax
mov ecx, edx
and ecx, ebx
je 0x41ee89
cmp ecx, 0x400
je 0x41ee83
cmp ecx, 0x800
je 0x41ee7b
cmp ecx, ebx
jne 0x41ee89
or esi, 0x300
jmp 0x41ee89
or esi, 0x200
jmp 0x41ee89
or esi, 0x100
and edx, 0x300
je 0x41eea1
cmp edx, 0x200
jne 0x41eea7
or esi, 0x10000
jmp 0x41eea7
or esi, 0x20000
mov edx, 0x1000
test edx, eax
je 0x41eeb6
or esi, 0x40000
cmp dword [0x42d9e0], 1
jl 0x41f04c
and edi, 0x308031f
stmxcsr dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
xor ecx, ecx
test al, al
jns 0x41eed9
push 0x10
pop ecx
test eax, 0x200
je 0x41eee3
or ecx, 8
test eax, 0x400
je 0x41eeed
or ecx, 4
test eax, 0x800
je 0x41eef7
or ecx, 2
test edx, eax
je 0x41eefe
or ecx, 1
test eax, 0x100
je 0x41ef0b
or ecx, 0x80000
mov edx, eax
mov ebx, 0x6000
and edx, ebx
je 0x41ef40
cmp edx, 0x2000
je 0x41ef3a
cmp edx, 0x4000
je 0x41ef32
cmp edx, ebx
jne 0x41ef40
or ecx, 0x300
jmp 0x41ef40
or ecx, 0x200
jmp 0x41ef40
or ecx, 0x100
push 0x40
and eax, 0x8040
pop ebx
sub eax, ebx
je 0x41ef67
sub eax, 0x7fc0
je 0x41ef5f
sub eax, ebx
jne 0x41ef6d
or ecx, 0x1000000
jmp 0x41ef6d
or ecx, 0x3000000
jmp 0x41ef6d
or ecx, 0x2000000
mov eax, edi
and edi, dword [ebp + 8]
not eax
and eax, ecx
or eax, edi
cmp eax, ecx
je 0x41f035
push eax
call 0x43d030
push eax
mov dword [ebp + 0xc], eax
call 0x43310b
pop ecx
pop ecx
stmxcsr dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
xor ecx, ecx
test al, al
jns 0x41efa1
push 0x10
pop ecx
test eax, 0x200
add byte [edx], al
add byte [eax], al
je 0x41efab
or ecx, 8
test eax, 0x400
je 0x41efb5
or ecx, 4
test eax, 0x800
je 0x41efbf
or ecx, 2
test eax, 0x1000
je 0x41efc9
or ecx, 1
test eax, 0x100
je 0x41efd6
or ecx, 0x80000
mov edx, eax
mov edi, 0x6000
and edx, edi
je 0x41f00b
cmp edx, 0x2000
je 0x41f005
cmp edx, 0x4000
je 0x41effd
cmp edx, edi
jne 0x41f00b
or ecx, 0x300
jmp 0x41f00b
or ecx, 0x200
jmp 0x41f00b
or ecx, 0x100
and eax, 0x8040
sub eax, ebx
je 0x41f02f
sub eax, 0x7fc0
je 0x41f027
sub eax, ebx
jne 0x41f035
or ecx, 0x1000000
jmp 0x41f035
or ecx, 0x3000000
jmp 0x41f035
or ecx, 0x2000000
mov eax, ecx
or ecx, esi
xor eax, esi
test eax, 0x8031f
je 0x41f048
or ecx, 0x80000000
mov eax, ecx
jmp 0x41f04e
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret