Function at 0x9619b0
Capabilities:
Get file size

Disassembly:
sub esp, 0x92c
mov eax, dword [0xb196ec]
xor eax, esp
mov dword [esp + 0x924], eax
push ebx
push ebp
push esi
push edi
push 0x207
lea eax, [esp + 0x1d]
mov esi, ecx
push 0
push eax
mov dword [esp + 0x1c], esi
mov byte [esp + 0x24], 0
call fcn.00a7ffb0
add esp, 0xc
push 0x207
lea ecx, [esp + 0x225]
push 0
push ecx
mov byte [esp + 0x22c], 0
call fcn.00a7ffb0
add esp, 0xc
test esi, esi
je 0x962087
mov al, byte [esi]
test al, al
je 0x962087
cmp byte [esi + 1], 0x3a
jne 0x961a8a
movsx edx, al
push edx
call fcn.00a7c649
add esp, 4
cmp eax, 0x41
je 0x961a40
movsx eax, byte [esi]
push eax
call fcn.00a7c649
add esp, 4
cmp eax, 0x42
jne 0x961a8a
mov eax, 0xaeacb0
mov ecx, esi
call fcn.0094c330
test eax, eax
je 0x961a80
mov eax, 0xaeacb4
mov ecx, esi
call fcn.0094c330
test eax, eax
je 0x961a80
mov eax, 0xaeacb8
mov ecx, esi
call fcn.0094c330
test eax, eax
je 0x961a80
mov eax, 0xaeacbc
mov ecx, esi
call fcn.0094c330
test eax, eax
jne 0x961a8a
mov eax, 1
jmp 0x962089
push 0
push 0
xor edx, edx
mov ecx, esi
call fcn.0095a0f0
add esp, 8
test eax, eax
jne 0x961aaa
mov esi, 1
mov eax, esi
jmp 0x962089
push 0x208
lea ecx, [esp + 0x1c]
push esi
push ecx
call fcn.00a7b9de
mov eax, esi
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x961ac2
sub eax, edx
cmp eax, 0x208
jb 0x961ad9
mov byte [esp + 0x21f], cl
lea edx, [esp + 0x18]
push 0x2c
push edx
mov byte [esp + 0x228], 0
call fcn.00a7a2c0
mov esi, eax
add esp, 8
test esi, esi
je 0x961b0f
push 0
push 0
xor edx, edx
lea ecx, [esp + 0x20]
call fcn.0095a0f0
add esp, 8
test eax, eax
je 0x961b0f
mov byte [esi], 0
lea esi, [esp + 0x18]
call fcn.00977580
call fcn.00977650
mov eax, esi
push 0x22
push eax
call fcn.00a7baf4
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcpyA]
add esp, 8
test eax, eax
je 0x961c3d
cmp byte [esp + 0x18], 0x22
jne 0x961c3d
add eax, 1
je 0x962087
cmp byte [eax], 0
je 0x962087
mov edi, 0x208
mov esi, eax
lea ebx, [esp + 0x18]
call fcn.009653b0
mov ecx, ebx
push 0x22
push ecx
call fcn.00a7baf4
mov esi, eax
add esp, 8
test esi, esi
je 0x961c3d
push 0x103
lea edx, [esp + 0x42d]
push 0
push edx
mov byte [esp + 0x434], 0
call fcn.00a7ffb0
add esp, 0xc
mov eax, ebx
push eax
mov byte [esi], 0
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 4
jle 0x961c3d
cmp byte [esp + eax + 0x14], 0x2e
je 0x961c3d
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatA]
xor esi, esi
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x42c]
push edx
call ebp
test esi, esi
jne 0x961be5
push 0xae30c8
lea eax, [esp + 0x42c]
push eax
jmp 0x961c0b
cmp esi, 1
jne 0x961bf9
push 0xad8680
lea ecx, [esp + 0x42c]
push ecx
jmp 0x961c0b
cmp esi, 2
jne 0x961c0d
push 0xae0f20
lea edx, [esp + 0x42c]
push edx
call edi
push 0
push 0
xor edx, edx
lea ecx, [esp + 0x430]
call fcn.0095a0f0
add esp, 8
test eax, eax
je 0x961c2e
inc esi
cmp esi, 3
jl 0x961bc3
jmp 0x961c3d
lea eax, [esp + 0x428]
push eax
lea ecx, [esp + 0x1c]
push ecx
call ebp
lea ecx, [esp + 0x18]
call fcn.00977400
lea ecx, [esp + 0x18]
call fcn.00971e30
push 1
lea edx, [esp + 0x1c]
push edx
call fcn.00977760
call fcn.00968110
test eax, eax
je 0x961cb0
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x224]
push ecx
call ebp
lea edx, [esp + 0x220]
push str.__x86_
push edx
call fcn.00a7a220
add esp, 8
test eax, eax
je 0x961ca8
push 0xaa1543
lea eax, [esp + 0x224]
push str.__x86_
push eax
call fcn.0095e130
add esp, 0xc
jmp 0x961cb0
mov byte [esp + 0x220], 0
lea esi, [esp + 0x18]
call fcn.00960fc0
cmp byte [esp + 0x220], 0
je 0x961ccf
lea esi, [esp + 0x220]
call fcn.00960fc0
lea ecx, [esp + 0x18]
push 0x20
push ecx
call fcn.00a7a2c0
add esp, 8
test eax, eax
je 0x961db8
lea edx, [esp + 0x18]
push 0x2f
push edx
call fcn.00a7a2c0
add esp, 8
test eax, eax
je 0x961db8
push 0
push 0
xor edx, edx
lea ecx, [esp + 0x20]
call fcn.0095a0f0
add esp, 8
test eax, eax
je 0x961db8
lea eax, [esp + 0x18]
push 0x20
push eax
call fcn.00a7a2c0
lea ecx, [esp + 0x20]
push 0x2f
push ecx
mov edi, eax
call fcn.00a7a2c0
add esp, 0x10
cmp edi, eax
jbe 0x961db8
push 0x3ff
lea edx, [esp + 0x535]
push 0
push edx
mov byte [esp + 0x53c], 0
call fcn.00a7ffb0
add esp, 0xc
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x534]
push ecx
call ebp
push 0xaa1564
lea edx, [esp + 0x534]
push 0xaa1560
push edx
call fcn.0095e130
add esp, 0xc
lea esi, [esp + 0x530]
call fcn.00960fc0
push 0
push 0
xor edx, edx
mov ecx, esi
call fcn.0095a0f0
add esp, 8
test eax, eax
je 0x961da9
mov byte [edi], 0
jmp 0x961db8
lea eax, [esp + 0x530]
push eax
lea ecx, [esp + 0x1c]
push ecx
call ebp
cmp byte [esp + 0x220], 0
je 0x961ec4
lea edx, [esp + 0x220]
push 0x20
push edx
call fcn.00a7a2c0
add esp, 8
test eax, eax
je 0x961ec4
lea eax, [esp + 0x220]
push 0x2f
push eax
call fcn.00a7a2c0
add esp, 8
test eax, eax
je 0x961ec4
push 0
push 0
xor edx, edx
lea ecx, [esp + 0x228]
call fcn.0095a0f0
add esp, 8
test eax, eax
je 0x961ec4
lea ecx, [esp + 0x220]
push 0x20
push ecx
call fcn.00a7a2c0
lea edx, [esp + 0x228]
push 0x2f
push edx
mov edi, eax
call fcn.00a7a2c0
add esp, 0x10
cmp edi, eax
jbe 0x961ec4
push 0x3ff
lea eax, [esp + 0x535]
push 0
push eax
mov byte [esp + 0x53c], 0
call fcn.00a7ffb0
add esp, 0xc
lea ecx, [esp + 0x220]
push ecx
lea edx, [esp + 0x534]
push edx
call ebp
push 0xaa1564
lea eax, [esp + 0x534]
push 0xaa1560
push eax
call fcn.0095e130
add esp, 0xc
lea esi, [esp + 0x530]
call fcn.00960fc0
push 0
push 0
xor edx, edx
mov ecx, esi
call fcn.0095a0f0
add esp, 8
test eax, eax
je 0x961eb2
mov byte [edi], 0
jmp 0x961ec4
lea ecx, [esp + 0x530]
push ecx
lea edx, [esp + 0x224]
push edx
call ebp
push 0
push 0
xor edx, edx
lea ecx, [esp + 0x20]
call fcn.0095a0f0
add esp, 8
test eax, eax
jne 0x961f24
mov edi, dword [esp + 0x10]
lea eax, [esp + 0x18]
mov edx, edi
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x961ee8
push 0x2f
push edi
mov esi, 1
call fcn.00a7a2c0
add esp, 8
test eax, eax
je 0x962083
push 0xaa1564
push 0xaa1560
push edi
call fcn.0095e130
add esp, 0xc
mov eax, esi
jmp 0x962089
push 0x2000000
push 3
push 3
push 0x80000000
lea edi, [esp + 0x28]
call fcn.0094db00
mov ebx, dword [sym.imp.KERNEL32.dll_GetFileSize]
add esp, 0x10
mov dword [esp + 0x14], eax
cmp eax, 0xffffffff
jne 0x961faf
mov ebp, dword [esp + 0x10]
mov edx, ebp
mov ecx, edi
xor esi, esi
mov eax, edi
sub edx, ecx
jmp 0x961f60
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x961f60
cmp byte [esp + 0x220], 0
je 0x962083
push 0
push 0
xor edx, edx
lea ecx, [esp + 0x228]
call fcn.0095a0f0
add esp, 8
test eax, eax
jne 0x961ff5
lea eax, [esp + 0x220]
mov edx, ebp
mov ecx, eax
sub edx, ecx
mov edi, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x961fa0
jmp 0x96205c
push 0
push eax
call ebx
lea edx, [esp + 0x14]
push edx
call fcn.00985290
lea eax, [esp + 0x18]
call fcn.0095a560
cmp eax, 0xffffffff
je 0x961fd8
test al, 0x10
je 0x961fd8
mov ebp, dword [esp + 0x10]
xor esi, esi
jmp 0x961f6a
mov edi, dword [esp + 0x10]
lea eax, [esp + 0x18]
mov edx, edi
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x961fe6
jmp 0x961ef2
push 0x2000000
push 3
push 3
push 0x80000000
lea edi, [esp + 0x230]
call fcn.0094db00
add esp, 0x10
mov dword [esp + 0x14], eax
cmp eax, 0xffffffff
jne 0x962021
xor esi, esi
mov eax, esi
jmp 0x962089
push 0
push eax
call ebx
lea edx, [esp + 0x14]
push edx
call fcn.00985290
lea eax, [esp + 0x220]
call fcn.0095a560
cmp eax, 0xffffffff
je 0x962045
test al, 0x10
jne 0x96201b
lea eax, [esp + 0x220]
mov edx, ebp
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x962052
push 0x2f
push ebp
mov esi, 1
call fcn.00a7a2c0
add esp, 8
test eax, eax
je 0x962083
push 0xaa1564
push 0xaa1560
push ebp
call fcn.0095e130
add esp, 0xc
mov eax, esi
jmp 0x962089
xor eax, eax
mov ecx, dword [esp + 0x934]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00a78f21
add esp, 0x92c
ret