Function at 0x4ad03f04
Capabilities:
Get file size

Disassembly:
sub esp, 0x21c
push ebx
push ebp
push esi
push edi
mov edi, dword [0x4ad1cf40]
push 1
xor ebx, ebx
pop ebp
cmp edi, ebx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebx
je 0x4ad03f7a
mov esi, dword [esp + 0x230]
mov eax, dword [esi + 0x3c]
cmp eax, ebx
jne 0x4ad03f53
push edi
call fcn.4ad04731
mov eax, dword [edi + 0xf0]
push ebx
push 0x2330
mov dword [0x4ad1cf40], eax
call fcn.4ad1393b
pop ecx
pop ecx
jmp 0x4ad03f7a
push ebp
lea ecx, [esp + 0x30]
push 0x100
push ecx
push eax
call fcn.4ad1421d
mov eax, dword [edi + 4]
push edi
mov dword [esp + 0x2c], eax
call fcn.4ad02b2b
cmp eax, 0xffffffff
mov dword [esp + 0x10], eax
jne 0x4ad03f81
mov eax, ebp
jmp 0x4ad04250
mov ebp, dword [sym.imp.MSVCRT.dll__get_osfhandle]
push ebx
push eax
call ebp
pop ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push ebx
push dword [esi + 0x3c]
mov dword [esp + 0x28], eax
call fcn.4ad142ce
cmp byte [0x4ad1cf7c], bl
mov esi, eax
je 0x4ad03fe7
push 4
push str.:EOF
push esi
call dword [sym.imp.MSVCRT.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x4ad03fe7
mov si, word [esi + 8]
cmp si, bx
je 0x4ad03fd4
push esi
call dword [sym.imp.MSVCRT.dll_iswspace]
test eax, eax
pop ecx
je 0x4ad03fe7
mov eax, dword [esp + 0x20]
mov dword [edi + 4], eax
mov byte [0x4ad1cf44], 1
jmp 0x4ad04243
call fcn.4ad12d3c
push 1
push ebx
push ebx
push dword [esp + 0x1c]
call ebp
mov esi, dword [sym.imp.KERNEL32.dll_SetFilePointer]
pop ecx
push eax
call esi
mov dword [edi + 4], eax
cmp eax, dword [esp + 0x28]
jl 0x4ad04013
cmp dword [esp + 0x18], ebx
je 0x4ad041f4
lea eax, [esp + 0x14]
push eax
push 0x200
push 0x4ad24320
push dword [esp + 0x1c]
call ebp
pop ecx
push eax
call fcn.4ad04e27
test eax, eax
je 0x4ad041f4
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x4ad041fc
cmp eax, 0xffffffff
je 0x4ad041f8
cmp word [0x4ad24320], bx
je 0x4ad041f8
cmp word [esp + 0x2c], bx
je 0x4ad041f8
push 0x3a
push 0x4ad24320
mov word [eax*2 + 0x4ad24320], bx
call fcn.4ad19418
mov esi, eax
cmp esi, ebx
je 0x4ad03fe7
mov ebp, esi
inc esi
inc esi
cmp word [ebp], 0xa
je 0x4ad04099
cmp ebp, 0x4ad24320
je 0x4ad04099
dec ebp
dec ebp
jmp 0x4ad04086
cmp word [ebp], 0x3a
je 0x4ad040a2
inc ebp
inc ebp
push ebx
push ebp
call fcn.4ad142ce
cmp word [eax], 0x3a
mov dword [esp + 0x24], eax
jne 0x4ad04118
push 0xa
push ebp
call fcn.4ad19418
mov esi, eax
cmp esi, ebx
jne 0x4ad040e8
push 1
push ebx
push ebx
push dword [esp + 0x1c]
call dword [sym.imp.MSVCRT.dll__get_osfhandle]
pop ecx
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, dword [esp + 0x20]
je 0x4ad040e8
mov eax, dword [esp + 0x14]
cmp eax, 0x200
jne 0x4ad0412f
push ebx
lea eax, [esp + 0x130]
push 0x100
push eax
push dword [esp + 0x30]
call fcn.4ad1421d
lea eax, [esp + 0x12c]
push eax
lea eax, [esp + 0x30]
push eax
call dword [sym.imp.MSVCRT.dll__wcsicmp]
pop ecx
test eax, eax
pop ecx
je 0x4ad04174
push 0x3a
push esi
call fcn.4ad19418
mov esi, eax
cmp esi, ebx
je 0x4ad041e0
jmp 0x4ad04082
mov esi, 0x4ad24320
sub ebp, esi
sar ebp, 1
sub eax, ebp
mov ebp, eax
call fcn.4ad0e6fd
test al, al
je 0x4ad0415a
push ebx
push ebx
push ebx
push ebx
push ebp
push esi
push ebx
push dword [0x4ad22874]
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ebp, eax
push 1
push ebx
neg ebp
push ebp
push dword [esp + 0x1c]
call dword [sym.imp.MSVCRT.dll__get_osfhandle]
pop ecx
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
jmp 0x4ad041e0
mov eax, dword [esp + 0x230]
mov al, byte [eax + 0x40]
and al, 1
cmp esi, ebx
mov byte [0x4ad1cf44], al
jne 0x4ad041a7
call fcn.4ad0e6fd
test al, al
je 0x4ad041a1
push ebx
push ebx
push ebx
push ebx
push dword [esp + 0x24]
push 0x4ad24320
jmp 0x4ad041c1
mov eax, dword [esp + 0x14]
jmp 0x4ad041ce
call fcn.4ad0e6fd
test al, al
je 0x4ad041d3
mov eax, 0x4ad24320
push ebx
sub esi, eax
push ebx
inc esi
push ebx
inc esi
push ebx
sar esi, 1
push esi
push eax
push ebx
push dword [0x4ad22874]
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
add dword [edi + 4], eax
jmp 0x4ad041e0
sub esi, 0x4ad24320
inc esi
inc esi
sar esi, 1
add dword [edi + 4], esi
cmp byte [0x4ad1cf44], 1
je 0x4ad04243
mov ebp, dword [sym.imp.MSVCRT.dll__get_osfhandle]
jmp 0x4ad03fe7
mov eax, dword [esp + 0x14]
cmp eax, ebx
jne 0x4ad04218
cmp dword [esp + 0x18], ebx
je 0x4ad04218
push ebx
push ebx
push ebx
push dword [esp + 0x1c]
call ebp
pop ecx
push eax
call esi
mov dword [esp + 0x18], ebx
jmp 0x4ad03fe7
push edi
call fcn.4ad04731
mov eax, dword [edi + 0xf0]
mov dword [0x4ad1cf40], eax
lea eax, [esp + 0x2c]
push eax
push 1
pop esi
push esi
push 0x23ab
call fcn.4ad1393b
add esp, 0xc
mov dword [esp + 0x1c], esi
push dword [esp + 0x10]
call fcn.4ad1408a
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x21c
ret 4