Function at 0x40a215
Capabilities:
Get file size

Disassembly:
mov eax, 0x4231cd
call fcn.00415c8c
sub esp, 0x124
push ebx
push ebp
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov dword [esp + 0x10], esi
mov dword [esi], ebx
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
mov dword [esp + 0x13c], ebx
lea edi, [esi + 0x10]
mov dword [edi + 0x14], 0xf
mov dword [edi + 0x10], ebx
mov byte [edi], bl
mov byte [esp + 0x13c], 1
push 0x105
lea eax, [esp + 0x31]
or ebp, 0xffffffff
push ebx
push eax
mov dword [esi + 0x28], ebx
mov dword [esi + 0x2c], ebx
mov word [esi + 0x30], bx
mov dword [esi + 0x34], ebp
mov dword [esi + 0x38], ebp
mov byte [esp + 0x38], bl
call fcn.00415370
add esp, 0xc
cmp dword [esp + 0x148], ebx
jne 0x40a415
mov ecx, dword [0x4316a8]
lea eax, [ecx + 0x3b0]
push eax
push 1
call fcn.0040fb3c
cmp dword [eax], ebx
je 0x40a2c2
mov ecx, dword [0x4316a8]
lea eax, [ecx + 0x3b0]
push eax
push 1
call fcn.0040fb3c
push ebx
call dword [eax]
mov ebx, eax
mov ecx, dword [0x4316a8]
lea eax, [ecx + 0x88]
push eax
push 1
call fcn.0040fb3c
cmp dword [eax], 0
je 0x40a300
mov ecx, dword [0x4316a8]
lea eax, [ecx + 0x88]
push eax
push 1
call fcn.0040fb3c
push 0x105
lea ecx, [esp + 0x30]
push ecx
push ebx
call dword [eax]
xor ebx, ebx
jmp 0x40a304
xor ebx, ebx
mov eax, ebx
test eax, eax
je 0x40a560
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x18]
push eax
call fcn.0041311c
pop ecx
pop ecx
mov byte [esp + 0x13c], 2
push eax
mov ecx, edi
call fcn.00411237
mov byte [esp + 0x13c], 1
lea ecx, [esp + 0x14]
call fcn.00401530
mov ecx, dword [0x4301a0]
mov eax, ecx
not eax
and eax, 0x3b9
neg eax
sbb eax, eax
shr ecx, 1
mov edx, 0x80000000
and eax, edx
add eax, edx
or ecx, eax
mov eax, ecx
not eax
mov edx, 0x3b9
and eax, edx
neg eax
sbb eax, eax
neg eax
add ecx, ecx
or ecx, eax
mov eax, ecx
not eax
and eax, edx
mov edx, dword [0x4301a4]
neg eax
sbb eax, eax
neg eax
add ecx, ecx
or ecx, eax
mov eax, 0xa2
cmp edx, eax
cmove edx, eax
mov dword [0x4301a0], ecx
mov dword [0x4301a4], edx
test edx, edx
jne 0x40a3c2
push 0x398
mov eax, 0x43169c
push eax
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
mov ecx, dword [0x4301a0]
mov edx, dword [0x4301a4]
mov eax, ecx
not eax
and eax, 0x3b9
neg eax
sbb eax, eax
and eax, 0x80000000
add eax, 0x80000000
shr ecx, 1
or ecx, eax
mov eax, ecx
not eax
and eax, 0x3b9
neg eax
sbb eax, eax
and eax, 0x80000000
add eax, 0x80000000
shr ecx, 1
or ecx, eax
or edx, 0x20c
mov dword [0x4301a0], ecx
mov dword [0x4301a4], edx
jne 0x40a449
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
jmp 0x40a449
push dword [esp + 0x148]
lea eax, [esp + 0x18]
push eax
call fcn.0041311c
pop ecx
pop ecx
mov byte [esp + 0x13c], 3
push eax
mov ecx, edi
call fcn.00411237
mov byte [esp + 0x13c], 1
lea ecx, [esp + 0x14]
call fcn.00401530
mov ecx, dword [0x4316a8]
lea eax, [ecx + 0x164]
push eax
push 1
call fcn.0040fb3c
cmp dword [eax], ebx
je 0x40a492
cmp dword [edi + 0x14], 0x10
jb 0x40a469
mov edi, dword [edi]
mov ecx, dword [0x4316a8]
lea eax, [ecx + 0x164]
push eax
push 1
call fcn.0040fb3c
push ebx
push 0x80
push 3
push ebx
push 1
push 0x80000000
push edi
call dword [eax]
jmp 0x40a494
mov eax, ebx
mov dword [esi + 0x34], eax
cmp eax, ebp
je 0x40a535
mov ecx, dword [0x4316a8]
lea eax, [ecx + 0x478]
push eax
push 1
call fcn.0040fb3c
cmp dword [eax], ebx
je 0x40a4d8
mov ecx, dword [0x4316a8]
lea eax, [ecx + 0x478]
push eax
push 1
call fcn.0040fb3c
push ebx
push ebx
push ebx
push 2
push ebx
push dword [esi + 0x34]
call dword [eax]
jmp 0x40a4da
mov eax, ebx
mov dword [esi + 0x38], eax
cmp eax, ebp
je 0x40a535
mov ecx, dword [0x4316a8]
lea eax, [ecx + 0x2a4]
push eax
push 1
call fcn.0040fb3c
cmp dword [eax], ebx
je 0x40a519
mov ecx, dword [0x4316a8]
lea eax, [ecx + 0x2a4]
push eax
push 1
call fcn.0040fb3c
push ebx
push ebx
push ebx
push 4
push dword [esi + 0x38]
call dword [eax]
jmp 0x40a51b
mov eax, ebx
or dword [0x4301a4], 0x3d3
push ebx
push dword [esi + 0x34]
mov dword [esi + 0x2c], eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [esi + 0x28], eax
mov edx, dword [esi + 0x2c]
test edx, edx
je 0x40a560
mov ecx, dword [edx + 0x3c]
mov eax, dword [ecx + edx + 0x9c]
add eax, dword [ecx + edx + 0x98]
cmp eax, dword [esi + 0x28]
jne 0x40a560
push dword [esi + 0x28]
mov ecx, esi
push edx
call fcn.0040ae3a
mov byte [esi + 0x30], al
mov dword [esp + 0x13c], ebp
mov ecx, dword [esp + 0x134]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
leave
ret 4