Function at 0x401d76
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2f0
mov eax, dword [0x412030]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov dword [ebp - 0x28c], eax
mov eax, dword [ebp + 0xc]
xor ebx, ebx
push 0x2c
mov dword [ebp - 0x298], eax
lea eax, [ebp - 0x2c4]
mov esi, ecx
push ebx
push eax
mov dword [ebp - 0x280], esi
mov dword [ebp - 0x288], 0x800b0100
mov dword [ebp - 0x2c8], ebx
call fcn.004060c0
add esp, 0xc
push 8
pop ecx
push ebx
push ebx
push 3
push ebx
push 1
xor eax, eax
mov dword [ebp - 0x2ec], ebx
lea edi, [ebp - 0x2e8]
rep stosd dword es:[edi], eax
push 0x80000000
push dword [ebp - 0x28c]
mov dword [ebp - 0x294], ebx
lea edi, [ebp - 0x290]
mov dword [ebp - 0x64], 0xf750e6c3
mov word [ebp - 0x60], 0x38ee
mov word [ebp - 0x5e], 0x11d1
mov byte [ebp - 0x5c], 0x85
mov byte [ebp - 0x5b], 0xe5
mov byte [ebp - 0x5a], bl
mov byte [ebp - 0x59], 0xc0
mov byte [ebp - 0x58], 0x4f
mov byte [ebp - 0x57], 0xc2
mov byte [ebp - 0x56], 0x95
mov byte [ebp - 0x55], 0xee
stosd dword es:[edi], eax
mov dword [ebp - 0x278], ebx
mov dword [ebp - 0x284], ebx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
je 0x402117
cmp edi, ebx
je 0x402117
lea eax, [ebp - 0x294]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x402110
cmp dword [ebp - 0x290], ebx
jg 0x402110
jl 0x401e87
cmp dword [ebp - 0x294], 0x2000000
ja 0x402110
mov eax, 0x100
push eax
mov dword [ebp - 0x278], eax
call fcn.004068fe
pop ecx
push ebx
push eax
mov dword [ebp - 0x27c], eax
lea eax, [ebp - 0x278]
push eax
push edi
call dword [esi + 0x10c4]
test eax, eax
jne 0x401efd
push dword [ebp - 0x27c]
call fcn.004064a5
push dword [ebp - 0x278]
call fcn.004068fe
pop ecx
pop ecx
push ebx
push eax
mov dword [ebp - 0x27c], eax
lea eax, [ebp - 0x278]
push eax
push edi
call dword [esi + 0x10c4]
test eax, eax
jne 0x401efd
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0x27c]
call fcn.004064a5
pop ecx
jmp 0x402117
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x284]
push eax
call dword [esi + 0x10c8]
test eax, eax
je 0x401eec
mov eax, dword [ebp - 0x278]
push 0x11
pop ecx
push 2
mov esi, str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_________._:_________
lea edi, [ebp - 0x54]
rep movsd dword es:[edi], dword [esi]
xor ecx, ecx
lea eax, [eax + eax + 1]
pop edx
mul edx
seto cl
movsw word es:[edi], word [esi]
neg ecx
or ecx, eax
push ecx
call fcn.004068fe
pop ecx
xor ecx, ecx
cmp dword [ebp - 0x278], ebx
mov edi, eax
jbe 0x401f86
mov eax, dword [ebp - 0x27c]
add eax, ecx
movzx edx, byte [eax]
shr edx, 4
movsx dx, byte [ebp + edx - 0x54]
mov word [edi + ecx*4], dx
movzx eax, byte [eax]
and eax, 0xf
movsx ax, byte [ebp + eax - 0x54]
mov word [edi + ecx*4 + 2], ax
inc ecx
cmp ecx, dword [ebp - 0x278]
jb 0x401f54
mov eax, dword [ebp - 0x278]
mov esi, dword [ebp - 0x280]
push ebx
push ebx
mov word [edi + eax*4], bx
push dword [ebp - 0x278]
push dword [ebp - 0x27c]
push dword [ebp - 0x284]
call dword [esi + 0x10cc]
push dword [ebp - 0x27c]
mov dword [ebp - 0x280], eax
call fcn.004064a5
cmp dword [ebp - 0x280], ebx
pop ecx
je 0x4020ef
push 0x208
lea eax, [ebp - 0x270]
push ebx
push eax
mov dword [ebp - 0x274], ebx
call fcn.004060c0
add esp, 0xc
push ebx
lea eax, [ebp - 0x274]
push eax
push dword [ebp - 0x280]
call dword [esi + 0x10d0]
test eax, eax
je 0x4020dc
lea eax, [ebp - 0x270]
mov dword [ebp - 0x2e4], eax
mov eax, dword [ebp - 0x28c]
mov dword [ebp - 0x2dc], eax
push 2
pop eax
xor ecx, ecx
inc ecx
cmp byte [esi + 0x1032], bl
mov dword [ebp - 0x2bc], eax
mov dword [ebp - 0x2b4], eax
lea eax, [ebp - 0x2ec]
mov dword [ebp - 0x2ec], 0x24
mov dword [ebp - 0x2e0], edi
mov dword [ebp - 0x2c8], 0x30
mov dword [ebp - 0x2b8], ecx
mov dword [ebp - 0x2ac], ecx
mov dword [ebp - 0x2b0], eax
je 0x402075
or dword [ebp - 0x2a0], 0x1200
jmp 0x40207c
or dword [ebp - 0x2a0], 0x10
lea eax, [ebp - 0x2c8]
push eax
lea eax, [ebp - 0x64]
push eax
push 0xffffffffffffffff
call dword [esi + 0x10e4]
mov dword [ebp - 0x288], eax
mov eax, dword [ebp - 0x298]
cmp eax, ebx
je 0x4020bf
cmp dword [ebp - 0x288], 0x800b0100
mov word [eax], bx
je 0x4020bf
push dword [ebp + 0x10]
mov ecx, esi
push eax
push dword [ebp - 0x2a8]
call fcn.00401b8b
lea eax, [ebp - 0x2c8]
push eax
lea eax, [ebp - 0x64]
push eax
push 0xffffffffffffffff
mov dword [ebp - 0x2ac], 2
call dword [esi + 0x10e4]
push ebx
push dword [ebp - 0x280]
push dword [ebp - 0x284]
call dword [esi + 0x10d4]
push edi
call fcn.004064a5
pop ecx
push ebx
push dword [ebp - 0x284]
call dword [esi + 0x10d8]
mov eax, dword [ebp - 0x288]
call fcn.00401603
jmp 0x40211a
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
inc eax
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004058de
leave
ret 0xc