Function at 0x454aa0
Capabilities:
Get file size

Disassembly:
push 0xffffffffffffffff
push 0x4a7fd8
mov eax, dword fs:[0]
push eax
sub esp, 0x2e8
mov eax, dword [0x4e0c44]
xor eax, esp
mov dword [esp + 0x2e4], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4e0c44]
xor eax, esp
push eax
lea eax, [esp + 0x2fc]
mov dword fs:[0], eax
mov edi, dword [esp + 0x314]
mov eax, dword [esp + 0x30c]
xor ebx, ebx
cmp edi, ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], edi
push ebx
je 0x454b1f
mov edx, dword [edi]
push SysReAllocString
push eax
mov eax, dword [edx + 0x2c]
mov ecx, edi
call eax
mov edx, dword [edi]
push ebx
mov dword [esp + 0x1c], eax
push eax
mov eax, dword [edx + 0x8c]
mov ecx, edi
call eax
jmp 0x454b41
push 0x80
push 3
push ebx
push 1
push SysReAllocString
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
push ebx
push eax
mov dword [esp + 0x20], eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
push esi
call fcn.0045f695
mov ecx, dword [esp + 0x1c]
mov ebp, eax
add esp, 4
cmp edi, ebx
mov dword [esp + 0x14], ebp
lea eax, [esp + 0x28]
je 0x454b6d
mov edx, dword [edi]
mov edx, dword [edx + 0x48]
push eax
push esi
push ebp
push ecx
mov ecx, edi
call edx
jmp 0x454b78
push ebx
push eax
push esi
push ebp
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push ebx
push ebx
push ebx
push ebx
shr esi, 1
lea edi, [esi - 1]
push edi
add ebp, 2
push ebp
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov esi, eax
lea edx, [esi + 1]
push edx
call fcn.0045f695
add esp, 4
push ebx
push ebx
push esi
push eax
push edi
push ebp
push ebx
push ebx
mov dword [esp + 0x40], eax
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
push eax
mov byte [edi + esi], bl
call fcn.0045f690
add esp, 4
mov dword [esp + 0x48], vtable.CStringProcess.0
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], 1
cmp edi, ebx
sete cl
mov ebp, 0xf
mov dword [esp + 0x304], ebx
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], esi
mov byte [esp + 0x5c], cl
mov dword [esp + 0x40], esi
mov byte [esp + 0x5d], bl
mov dword [esp + 0x60], ebx
mov byte [esp + 0x64], bl
mov dword [esp + 0xb0], ebp
mov dword [esp + 0xac], ebx
mov byte [esp + 0x9c], bl
push ebx
push ebx
lea ecx, [esp + 0x12c]
mov dword [esp + 0x1f8], ebx
mov byte [esp + 0x12c], bl
call fcn.004350d0
push ebx
push 9
lea ecx, [esp + 0x12c]
call fcn.004350d0
push ebx
push 0xd
lea ecx, [esp + 0x12c]
call fcn.004350d0
mov eax, dword [esp + 0x310]
cmp eax, 0xb
ja case.0x454c6e.4
jmp dword [eax*4 + 0x4551a8]
mov dword [esp + 0x14], 1
jmp 0x454ce1
mov dword [esp + 0x14], 4
jmp 0x454ce1
mov dword [esp + 0x14], 5
jmp 0x454ce1
mov dword [esp + 0x14], 6
jmp 0x454ce1
mov dword [esp + 0x14], 8
jmp 0x454ce1
mov dword [esp + 0x14], 9
jmp 0x454ce1
mov dword [esp + 0x14], 0xa
jmp 0x454ce1
mov dword [esp + 0x14], 0xb
jmp 0x454ce1
mov dword [esp + 0x14], 0xc
jmp 0x454ce1
mov dword [esp + 0x14], 0xe
jmp 0x454ce1
mov dword [esp + 0x14], 7
mov dword [esp + 0x94], ebp
mov dword [esp + 0x90], ebx
mov byte [esp + 0x80], bl
cmp dword [esp + 0x318], ebx
mov byte [esp + 0x304], 2
je 0x454d85
mov esi, dword [esp + 0x2c]
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x454d10
sub eax, edx
push eax
push esi
lea ecx, [esp + 0x84]
call fcn.00406230
push 1
push 0xffffffffffffffff
push 0x4c4e7c
lea ecx, [esp + 0x88]
call fcn.00451800
cmp eax, ebx
jge 0x454d56
push ebx
push 0x4c4e85
lea ecx, [esp + 0x84]
call fcn.00406230
jmp 0x454d85
mov ecx, dword [esp + 0x90]
add eax, 1
cmp eax, ecx
ja 0x454d75
push 0xffffffffffffffff
push eax
lea ecx, [esp + 0x84]
call fcn.004063e0
jmp 0x454d85
sub eax, ecx
push ebx
push eax
lea ecx, [esp + 0x84]
call fcn.0040ecf0
lea ecx, [esp + 0x34]
call fcn.00450cf0
mov esi, eax
cmp esi, ebx
je 0x455104
jmp 0x454da0
cmp dword [esp + 0x318], ebx
je 0x454e8c
push ebx
push 1
lea edx, [esp + 0x12c]
push edx
lea eax, [esp + 0xa4]
push eax
mov ecx, esi
call fcn.00450d40
lea ecx, [esp + 0x98]
push ecx
lea edx, [esp + 0x80]
push edx
lea eax, [esp + 0xbc]
push eax
call fcn.004430c0
push 0x103
lea ecx, [esp + 0x205]
push ebx
push ecx
mov byte [esp + 0x31c], 3
mov byte [esp + 0x20c], bl
call fcn.0047ec20
mov eax, dword [esp + 0xd0]
add esp, 0x18
cmp dword [esp + 0xcc], 0x10
jae 0x454e21
lea eax, [esp + 0xb8]
push eax
push 0x4c52e4
lea edx, [esp + 0x1fc]
push 0x104
push edx
call fcn.0047ebe5
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x320]
add esp, 0x10
push ebx
push eax
push ecx
lea edx, [esp + 0x200]
push edx
call fcn.0048237a
mov ecx, dword [esp + 0x2c]
add esp, 4
push eax
call fcn.00454aa0
mov eax, dword [esp + 0xcc]
cmp eax, 0x10
mov byte [esp + 0x304], 2
jb 0x454e8c
add eax, 1
push eax
mov eax, dword [esp + 0xbc]
push eax
call fcn.00406140
add esp, 8
push 1
push ebx
mov ecx, esi
call fcn.004508d0
cmp eax, 1
jne 0x4550f1
push eax
push ebx
mov ecx, esi
call fcn.004508d0
push ebx
push 1
lea ecx, [esp + 0x12c]
push ecx
lea edx, [esp + 0xa4]
push edx
mov ecx, esi
call fcn.00450d40
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0x114]
mov dword [esp + 0x12c], ebp
mov dword [esp + 0x128], ebx
mov byte [esp + 0x118], bl
call fcn.00406300
xor edx, edx
cmp dword [esp + 0x14], ebx
jle 0x454f2e
mov edi, dword [esi + 0xc]
lea esp, [esp]
mov eax, dword [esi + 8]
cmp eax, edi
jge 0x454f2a
mov ecx, dword [esi + 4]
mov cl, byte [eax + ecx]
cmp cl, bl
je 0x454f1c
add eax, 1
cmp cl, 9
mov dword [esi + 8], eax
jne 0x454f00
cmp dword [esi + 8], edi
jge 0x454f2a
add edx, 1
cmp edx, dword [esp + 0x14]
jl 0x454f00
mov edi, dword [esp + 0x20]
mov dword [esp + 0x104], ebp
mov dword [esp + 0x100], ebx
mov byte [esp + 0xf0], bl
mov edx, dword [esi + 8]
cmp edx, dword [esi + 0xc]
mov byte [esp + 0x304], 5
push ebx
jge 0x454f97
push ebx
lea eax, [esp + 0x12c]
push eax
lea ecx, [esp + 0xa4]
push ecx
mov ecx, esi
call fcn.00450d40
cmp dword [esp + 0xb0], 0x10
mov eax, dword [esp + 0x9c]
jae 0x454f84
lea eax, [esp + 0x9c]
push eax
lea edx, [esp + 0xf0]
push edx
call fcn.00451fd0
add esp, 8
jmp 0x454fa8
push 0x4c4e85
lea ecx, [esp + 0xf4]
call fcn.00406230
mov esi, dword [esp + 0x1c]
lea eax, [esp + 0x108]
push eax
lea ecx, [esp + 0x30]
add esi, 4
push ecx
mov ecx, esi
call fcn.00453540
push 0xffffffffffffffff
push ebx
lea edx, [esp + 0x110]
push edx
lea ecx, [esp + 0xc0]
mov dword [esp + 0xd8], ebp
mov dword [esp + 0xd4], ebx
mov byte [esp + 0xc4], bl
call fcn.00406300
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0xf4]
push eax
lea ecx, [esp + 0xdc]
mov byte [esp + 0x310], 6
mov dword [esp + 0xf4], ebp
mov dword [esp + 0xf0], ebx
mov byte [esp + 0xe0], bl
call fcn.00406300
lea ecx, [esp + 0xb4]
push ecx
lea edx, [esp + 0x74]
push edx
mov ecx, esi
mov byte [esp + 0x30c], 7
call fcn.00454560
mov eax, dword [esp + 0xe8]
cmp eax, 0x10
jb 0x45505f
add eax, 1
push eax
mov eax, dword [esp + 0xd8]
push eax
call fcn.00406140
add esp, 8
mov eax, dword [esp + 0xcc]
cmp eax, 0x10
mov dword [esp + 0xe8], ebp
mov dword [esp + 0xe4], ebx
mov byte [esp + 0xd4], bl
jb 0x455094
mov ecx, dword [esp + 0xb8]
add eax, 1
push eax
push ecx
call fcn.00406140
add esp, 8
mov eax, dword [esp + 0x104]
cmp eax, 0x10
jb 0x4550b4
mov edx, dword [esp + 0xf0]
add eax, 1
push eax
push edx
call fcn.00406140
add esp, 8
mov eax, dword [esp + 0x120]
cmp eax, 0x10
mov dword [esp + 0x104], ebp
mov dword [esp + 0x100], ebx
mov byte [esp + 0xf0], bl
mov byte [esp + 0x304], 2
jb 0x4550f1
add eax, 1
push eax
mov eax, dword [esp + 0x110]
push eax
call fcn.00406140
add esp, 8
lea ecx, [esp + 0x34]
call fcn.00450cf0
mov esi, eax
cmp esi, ebx
jne 0x454da0
push edi
call fcn.0045f690
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
add esp, 4
cmp ecx, ebx
push eax
je 0x455123
mov edx, dword [ecx]
mov edx, dword [edx + 0x44]
call edx
jmp 0x455129
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x94]
cmp eax, 0x10
jb 0x455149
mov ecx, dword [esp + 0x80]
add eax, 1
push eax
push ecx
call fcn.00406140
add esp, 8
mov eax, dword [esp + 0xb0]
cmp eax, 0x10
mov dword [esp + 0x94], ebp
mov dword [esp + 0x90], ebx
mov byte [esp + 0x80], bl
jb 0x45517e
mov edx, dword [esp + 0x9c]
add eax, 1
push eax
push edx
call fcn.00406140
add esp, 8
mov ecx, dword [esp + 0x2fc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x2e4]
xor ecx, esp
call fcn.0047e4dd
add esp, 0x2f4
ret 0x10