Function at 0x4ae880
Capabilities:
Check if file exists
Get file attributes
Move file
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6fcea2
mov eax, dword fs:[0]
push eax
mov eax, 0x15394
call fcn.006b59e0
mov eax, dword [0x7e6410]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x15380], ecx
mov edx, dword [ebp + 0xc]
lea esi, [ebp - 0x610]
sub esi, edx
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [esi + edx - 1], al
test al, al
jne 0x4ae8c3
mov ecx, dword [ebp + 0x10]
lea edx, [ebp - 0x1a10]
sub edx, ecx
jmp 0x4ae8e0
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + edx - 2], ax
test ax, ax
jne 0x4ae8e0
lea ecx, [ebp - 0x610]
call fcn.004a9010
mov ebx, dword [ebp + 8]
mov esi, eax
mov byte [ebp - 0x15388], 0
test esi, esi
je 0x4aebcd
mov edx, 0x78b720
mov ecx, esi
call fcn.004a2f00
test eax, eax
jne 0x4aebcd
lea eax, [ebp - 0x610]
mov byte [ebp - 0x15381], 1
xor edi, edi
cmp esi, eax
jbe 0x4ae982
cmp edi, 3
jge 0x4ae982
movsx eax, byte [esi]
push eax
call fcn.006b4c2f
add esp, 4
test eax, eax
jne 0x4ae96e
movsx eax, byte [esi - 1]
push eax
call fcn.006b4c2f
add esp, 4
test eax, eax
je 0x4ae969
cmp byte [esi], 0x5f
je 0x4ae966
cmp edi, 2
jge 0x4ae96e
inc edi
jmp 0x4ae96e
cmp edi, 2
jl 0x4ae97b
dec esi
lea eax, [ebp - 0x610]
cmp esi, eax
ja 0x4ae936
jmp 0x4ae982
mov byte [ebp - 0x15388], 1
movsx eax, byte [esi]
push eax
call fcn.006b4c2f
add esp, 4
test eax, eax
je 0x4ae9ae
lea eax, [ebp - 0x60f]
cmp esi, eax
jbe 0x4ae9ae
movsx eax, byte [esi - 1]
dec esi
push eax
call fcn.006b4c2f
add esp, 4
test eax, eax
jne 0x4ae992
xor eax, eax
mov dword [esi], 0x2a2e2a
mov byte [ebp - 0x2628], 0
mov word [ebp - 0x2228], ax
mov dword [ebp - 0x1a28], 1
mov dword [ebp - 0x1a24], 0xffffffff
mov dword [ebp - 4], eax
xor ecx, ecx
lea ecx, [ecx]
mov al, byte [ebp + ecx - 0x610]
lea ecx, [ecx + 1]
mov byte [ebp + ecx - 0x2629], al
test al, al
jne 0x4ae9e0
cmp word [ebp - 0x2228], 0
jne 0x4aea1e
push 0x10000000
lea eax, [ebp - 0x2228]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x610]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov dword [ebp - 0x1a28], 1
mov dword [ebp - 0xb9f0], 0
mov dword [ebp - 0xb9c0], 0
mov dword [ebp - 0xb990], 0
jmp 0x4aea50
cmp byte [ebp - 0x2628], 0
mov byte [ebp - 0xb548], 0
jne 0x4aea64
xor al, al
jmp 0x4aea76
lea eax, [ebp - 0xc608]
push eax
lea ecx, [ebp - 0x2628]
call fcn.004ad280
test al, al
je 0x4aebb9
push ebx
lea ecx, [ebp - 0xb538]
call fcn.004a6ac0
push 0
push 0
lea eax, [ebp - 0xc208]
mov byte [ebp - 4], 1
push eax
lea eax, [ebp - 0xc608]
push eax
lea ecx, [ebp - 0xb538]
call fcn.004a56b0
test al, al
je 0x4aeac4
push 1
lea ecx, [ebp - 0xb538]
call fcn.004a6db0
test al, al
jne 0x4aeb8d
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x5d10]
test eax, eax
je 0x4aeadb
push eax
call fcn.006b31f8
add esp, 4
mov eax, dword [ebp - 0x6a50]
test eax, eax
je 0x4aeaee
push eax
call fcn.006b31f8
add esp, 4
push 0x2aa0
lea eax, [ebp - 0xa1a0]
push 0
push eax
call fcn.006b47d0
mov eax, dword [ebp - 0x80d0]
add esp, 0xc
test eax, eax
je 0x4aeb17
push eax
call fcn.006b31f8
add esp, 4
cmp dword [ebp - 0xb534], 0xffffffff
mov dword [ebp - method.File.virtual_0], vtable.File.0
je 0x4aea50
cmp byte [ebp - 0xb528], 0
jne 0x4aea50
cmp byte [ebp - 0xb526], 0
je 0x4aeb7d
cmp dword [ebp - 0xb52c], 0
jne 0x4aea50
cmp byte [ebp - 0xb525], 0
je 0x4aea50
lea ecx, [ebp - 0xb538]
call fcn.004a5a60
lea eax, [ebp - 0xb521]
push eax
call fcn.006c036d
add esp, 4
jmp 0x4aea50
lea ecx, [ebp - 0xb538]
call fcn.004a5a60
jmp 0x4aea50
xor ecx, ecx
nop
mov al, byte [ebp + ecx - 0xc608]
lea ecx, [ecx + 1]
mov byte [ebp + ecx - 0x611], al
test al, al
jne 0x4aeb90
xor eax, eax
lea ecx, [ebp - 0xb538]
mov word [ebp - 0x1a10], ax
call fcn.0048de80
mov eax, dword [ebp - 0x1a24]
cmp eax, 0xffffffff
je 0x4aebd4
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x4aebd4
mov byte [ebp - 0x15381], 0
push ebx
lea ecx, [ebp - 0x15370]
call fcn.004a6ac0
push 0
push 0
lea eax, [ebp - 0x1a10]
mov dword [ebp - 4], 2
push eax
lea eax, [ebp - 0x610]
push eax
lea ecx, [ebp - 0x15370]
call fcn.004a56b0
test al, al
je 0x4afa4d
push 0
lea ecx, [ebp - 0x15370]
call fcn.004a6db0
lea ecx, [ebp - 0x15370]
test al, al
jne 0x4aec2d
call fcn.004a5a60
jmp 0x4afa4d
cmp byte [ebp - 0xed76], 0
je 0x4afa53
mov al, byte [ebp - 0x114c8]
shr al, 4
and al, 1
mov byte [ebp - 0x1538c], al
call fcn.004a5a60
push dword [ebp - 0x1538c]
lea edx, [ebp - 0x610]
mov ecx, edx
call fcn.004a9590
add esp, 4
mov ebx, eax
xor edx, edx
lea ebx, [ebx]
mov cl, byte [ebp + edx - 0x610]
lea edx, [edx + 1]
mov byte [ebp + edx - 0xe11], cl
test cl, cl
jne 0x4aec70
lea eax, [ebp - 0x610]
mov byte [ebp - 0x3248], cl
sub ebx, eax
mov dword [ebp - 0x2648], 1
mov eax, dword [str..rev]
mov dword [ebp - 0x15394], ebx
mov dword [ebp - 0x2644], 0xffffffff
mov dword [ebp + ebx - 0xe10], eax
mov ax, word [0x78b72c]
mov word [ebp + ebx - 0xe0c], ax
xor eax, eax
mov word [ebp - 0x2e48], ax
lea eax, [ebp - 0xe10]
mov byte [ebp - 4], 3
push eax
lea ecx, [ebp - 0x3248]
call fcn.004ad230
xor ebx, ebx
mov dword [ebp - 0x36f8], 0
mov dword [ebp - 0x36c8], 0
mov dword [ebp - 0x3698], 0
mov dword [ebp - 0x15390], 0
mov dword [ebp - 0x1539c], ebx
mov dword [ebp - 0x15398], ebx
mov dword [ebp - 0x15378], ebx
cmp byte [ebp - 0x3248], 0
mov byte [ebp - 0x3250], 0
je 0x4af1cf
lea eax, [ebp - 0x4310]
push eax
lea ecx, [ebp - 0x3248]
call fcn.004ad280
test al, al
je 0x4af1cf
cmp byte [ebp - 0x15381], 0
mov eax, dword [ebp - 0x15388]
jne 0x4aedbd
test al, al
jne 0x4aedc5
lea ecx, [ebp - 0x4310]
mov byte [ebp - 0x15388], 1
call fcn.004a9010
test eax, eax
je 0x4aedb7
dec eax
lea ecx, [ebp - 0x4310]
xor edx, edx
cmp eax, ecx
jbe 0x4aedb7
mov cl, byte [eax]
cmp cl, 0x2e
je 0x4aed9e
cmp cl, 0x5f
jne 0x4aed93
inc edx
dec eax
lea ecx, [ebp - 0x4310]
cmp eax, ecx
ja 0x4aed86
mov eax, dword [ebp - 0x15388]
xor ecx, ecx
cmp edx, 2
movzx eax, al
cmove eax, ecx
mov dword [ebp - 0x15388], eax
jmp 0x4aedbd
mov eax, dword [ebp - 0x15388]
test al, al
je 0x4af03f
xor eax, eax
mov dword [ebp - method.File.virtual_0], vtable.File.0
mov dword [ebp - 0x263c], 0xffffffff
mov word [ebp - 0x262a], 0
mov word [ebp - 0x2228], ax
mov dword [ebp - 0x262f], 0x1010000
mov byte [ebp - 0x2638], al
mov dword [ebp - 0x2634], eax
mov byte [ebp - 0x2630], al
mov dword [ebp - 0x1a28], eax
mov dword [ebp - 0x1a24], eax
mov byte [ebp - 0x262b], al
push eax
push eax
push eax
lea eax, [ebp - 0x4310]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x2640]
call fcn.004a56b0
test al, al
je 0x4af19b
push 2
push 0
push 0
lea ecx, [ebp - 0x2640]
call fcn.004a5de0
push 1
lea eax, [ebp - 0x1537c]
mov dword [ebp - 0x1537c], 0
push eax
push 0
push dword [ebp - 0x263c]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov esi, eax
cmp esi, 0xffffffff
jne 0x4aee8c
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x4aee8c
cmp byte [ebp - 0x262c], 0
jne 0x4aee8c
or ebx, esi
or eax, esi
jmp 0x4aee9a
mov eax, dword [ebp - 0x1537c]
xor ebx, ebx
add ebx, esi
cdq
adc eax, 0
mov ecx, ebx
mov dword [ebp - 0x1537c], eax
sub ecx, 7
push 0
sbb eax, 0
push eax
push ecx
lea ecx, [ebp - 0x2640]
call fcn.004a5de0
lea esi, [ebp - 0x1a14]
mov edi, 3
jmp 0x4aeed0
push 1
lea eax, [ebp - 0x15374]
mov byte [ebp - 0x15374], 0
push eax
lea ecx, [ebp - 0x2640]
call fcn.004a5c20
movzx eax, byte [ebp - 0x15374]
lea esi, [esi - 4]
inc eax
mov dword [esi + 4], eax
dec edi
jne 0x4aeed0
xor esi, esi
mov edi, edi
push 1
lea eax, [ebp - 0x15374]
mov byte [ebp - 0x15374], 0
push eax
lea ecx, [ebp - 0x2640]
call fcn.004a5c20
movzx eax, byte [ebp - 0x15374]
mov ecx, esi
shl eax, cl
add esi, 8
or edi, eax
cmp esi, 0x20
jl 0x4aef00
mov eax, dword [ebp - 0x1537c]
lea ecx, [ebp - 0x2640]
sub ebx, 4
sbb eax, 0
push eax
push ebx
call fcn.004ae140
add esp, 8
mov byte [ebp - 4], 3
mov dword [ebp - method.File.virtual_0], vtable.File.0
cmp edi, eax
je 0x4aefd6
cmp dword [ebp - 0x263c], 0xffffffff
mov ebx, dword [ebp - 0x15378]
je 0x4aed22
cmp byte [ebp - 0x2630], 0
jne 0x4aed22
cmp byte [ebp - 0x262e], 0
je 0x4aefc0
cmp dword [ebp - 0x2634], 0
jne 0x4aed22
cmp byte [ebp - 0x262d], 0
je 0x4aed22
lea ecx, [ebp - 0x2640]
call fcn.004a5a60
lea eax, [ebp - 0x2629]
push eax
call fcn.006c036d
add esp, 4
jmp 0x4aed22
lea ecx, [ebp - 0x2640]
call fcn.004a5a60
mov ebx, dword [ebp - 0x15378]
jmp 0x4aed22
cmp dword [ebp - 0x263c], 0xffffffff
je 0x4af0af
cmp byte [ebp - 0x2630], 0
jne 0x4af0af
cmp byte [ebp - 0x262e], 0
je 0x4af032
cmp dword [ebp - 0x2634], 0
jne 0x4af0af
cmp byte [ebp - 0x262d], 0
je 0x4af0af
lea ecx, [ebp - 0x2640]
call fcn.004a5a60
lea eax, [ebp - 0x2629]
push eax
call fcn.006c036d
add esp, 4
jmp 0x4af0af
lea ecx, [ebp - 0x2640]
call fcn.004a5a60
jmp 0x4af0af
lea ecx, [ebp - 0x4310]
call fcn.004a9010
mov esi, eax
test esi, esi
je 0x4aed22
xor bl, bl
xor edi, edi
movsx eax, byte [esi - 1]
dec esi
push eax
call fcn.006b4c2f
add esp, 4
test eax, eax
je 0x4af07b
mov eax, dword [ebp - 0x15394]
lea eax, [ebp + eax - 0x4310]
cmp esi, eax
jae 0x4af058
lea eax, [esi + 1]
push eax
call fcn.006b6050
add esp, 4
mov dword [ebp + edi*4 - 0x1a1c], eax
test eax, eax
je 0x4af099
cmp eax, 0xff
jle 0x4af09b
mov bl, 1
inc edi
cmp edi, 3
jb 0x4af058
test bl, bl
mov ebx, dword [ebp - 0x15378]
jne 0x4aed22
mov ecx, dword [ebp - 0x1a18]
mov edi, dword [ebp - 0x1a14]
mov ebx, dword [ebp - 0x15378]
lea eax, [ecx + edi]
cmp eax, 0xff
jg 0x4aed22
mov eax, dword [ebp - 0x1539c]
test eax, eax
je 0x4af0e1
cmp eax, ecx
jne 0x4afa3a
mov eax, dword [ebp - 0x15390]
test eax, eax
je 0x4af0f3
cmp eax, edi
jne 0x4afa3a
mov dword [ebp - 0x1539c], ecx
xor ecx, ecx
mov dword [ebp - 0x15390], edi
mov al, byte [ebp + ecx - 0x4310]
lea ecx, [ecx + 1]
mov byte [ebp + ecx - 0xa11], al
test al, al
jne 0x4af101
push 0xc20
call fcn.006b6815
mov esi, eax
add esp, 4
test esi, esi
je 0x4af1b7
xor eax, eax
mov dword [esi], vtable.File.0
push eax
push eax
mov dword [esi + 4], 0xffffffff
mov ecx, esi
mov word [esi + 0x16], 0
mov word [esi + 0x418], ax
push eax
mov byte [esi + 8], al
mov dword [esi + 0xc], eax
mov byte [esi + 0x10], al
mov dword [esi + 0xc18], eax
mov dword [esi + 0xc1c], eax
mov byte [esi + 0x15], al
lea eax, [ebp - 0x4310]
push eax
mov dword [esi + 0x11], 0x1010000
call fcn.004a56b0
test al, al
je 0x4af19b
mov eax, dword [ebp - 0x1a1c]
mov ecx, dword [ebp - 0x15380]
add eax, edi
mov ebx, dword [ebp - 0x15378]
inc ebx
mov dword [ecx + eax*4 - 4], esi
jmp 0x4aed1c
inc dword [0x7e85a8]
mov dword [0x7e85a4], 6
call fcn.004a6170
push 6
call fcn.006c0359
push 0x7da8d8
lea eax, [ebp - 0x15374]
mov byte [ebp - 0x15374], 0
push eax
call fcn.006b4394
test ebx, ebx
je 0x4afa3a
push 0x100
lea eax, [ebp - 0x210]
push 0
push eax
call fcn.006b47d0
xor edi, edi
mov byte [ebp - 0x1210], 0
add esp, 0xc
cmp dword [ebp - 0x15390], edi
jle 0x4afa3a
xor ebx, ebx
push 0x7228
call fcn.006b6815
add esp, 4
test eax, eax
je 0x4af1b7
push 0
mov ecx, eax
call fcn.004a6ac0
cmp dword [0x7e8a20], 0xffffffff
mov esi, eax
jne 0x4af257
lea eax, [ebp - 0xa8]
mov dword [ebp - 0xa8], 0x94
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov ecx, dword [ebp - 0x98]
mov eax, dword [ebp - 0xa4]
mov dword [0x7e8a20], ecx
mov dword [0x80abac], eax
lea eax, [ebp - 0x610]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
setne al
test al, al
je 0x4af3e6
push 0
push 0
push 0
lea eax, [ebp - 0x610]
mov ecx, esi
push eax
call fcn.004a56b0
test al, al
je 0x4af19b
push 0
mov ecx, esi
call fcn.004a6db0
mov bl, al
mov dword [ebp - 0x1537c], ebx
test bl, bl
je 0x4af372
xor bl, bl
mov byte [ebp - 0x15374], bl
nop
mov ecx, esi
call fcn.004a7360
test eax, eax
je 0x4af35c
mov eax, dword [esi + 0x3e8c]
cmp eax, 0x74
jne 0x4af2f7
cmp byte [esi + 0x3ed8], 0x1d
jb 0x4af2dc
mov byte [ebp - 0x15374], 1
jmp 0x4af2f7
cmp byte [ebp - 0x15374], 0
jne 0x4af2f7
test byte [esi + 0x3ec0], 2
mov ecx, 1
movzx ebx, bl
cmovne ebx, ecx
cmp eax, 0x7b
jne 0x4af337
test byte [esi + 0x4bd8], 2
je 0x4af335
push dword [esi + 0x65ec]
mov ecx, esi
push dword [esi + 0x65e8]
call fcn.004ae140
mov ecx, dword [ebp - 0x1537c]
xor edx, edx
add esp, 8
movzx ecx, cl
cmp dword [esi + 0x4bdc], eax
cmovne ecx, edx
mov dword [ebp - 0x1537c], ecx
mov bl, 1
push 0
push dword [esi + 0x65f4]
mov ecx, esi
push dword [esi + 0x65f0]
call fcn.004a5de0
test bl, bl
je 0x4af2b0
mov ebx, dword [ebp - 0x1537c]
jmp 0x4af36e
mov eax, dword [ebp - 0x1537c]
xor ecx, ecx
test bl, bl
movzx eax, al
cmove eax, ecx
mov bl, al
test bl, bl
jne 0x4af3cf
mov ecx, esi
call fcn.004a5a60
xor ecx, ecx
jmp 0x4af380
mov al, byte [ebp + ecx - 0x610]
lea ecx, [ecx + 1]
mov byte [ebp + ecx - 0xa11], al
test al, al
jne 0x4af380
lea ecx, [ebp - 0xa10]
dec ecx
lea esp, [esp]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x4af3a0
mov eax, dword [str..bad]
mov dword [ecx], eax
mov al, byte [0x78b734]
mov byte [ecx + 4], al
lea eax, [ebp - 0xa10]
push eax
lea eax, [ebp - 0x610]
push eax
call fcn.006bfcf0
add esp, 8
push 0
push 0
push 0
mov ecx, esi
call fcn.004a5de0
test bl, bl
mov ebx, dword [ebp - 0x15398]
jne 0x4af435
push 0
lea eax, [ebp - 0x610]
mov ecx, esi
push eax
call fcn.004a58d0
test al, al
je 0x4afa1d
mov eax, dword [ebp - 0x15390]
inc ebx
dec eax
mov byte [ebp + edi - 0x210], 1
mov dword [ebp - 0x15398], ebx
cmp edi, eax
jne 0x4af435
xor ecx, ecx
lea ebx, [ebx]
mov al, byte [ebp + ecx - 0x610]
lea ecx, [ecx + 1]
mov byte [ebp + ecx - 0x1211], al
test al, al
jne 0x4af420
mov eax, dword [ebp - 0x15380]
lea ecx, [ebp - 0x610]
cmp byte [ebp - 0x1538c], 0
sete dl
mov dword [eax + edi*4], esi
call fcn.004a9220
inc edi
cmp edi, dword [ebp - 0x15390]
jl 0x4af204
test ebx, ebx
je 0x4afa3a
cmp ebx, dword [ebp - 0x15378]
jg 0x4afa3a
mov ebx, dword [ebp - 0x1539c]
mov eax, 1
mov dword [ebp - 0xbd44], ebx
xor ecx, ecx
mov byte [ebp - 0xb540], 0
mov edi, edi
mov dword [ebp + eax*4 - 0xd948], ecx
mov dword [ebp + ecx*4 - 0xe148], eax
add eax, eax
test eax, 0x100
je 0x4af4ac
xor eax, 0x11d
inc ecx
cmp ecx, 0xff
jl 0x4af490
mov ecx, 0x101
lea esi, [ebp - 0xe148]
lea edi, [ebp - 0xdd4c]
rep movsd dword es:[edi], dword [esi]
lea ecx, [ebp - 0xe148]
call fcn.004bbf40
mov esi, dword [ebp - 0x15390]
xor eax, eax
add esi, ebx
xor ebx, ebx
mov dword [ebp - 0x15378], esi
mov dword [ebp - 0x1538c], ebx
test esi, esi
jle 0x4af519
nop
cmp byte [ebp + eax - 0x210], 0
jne 0x4af506
mov ecx, dword [ebp - 0x15380]
cmp dword [ecx + eax*4], 0
jne 0x4af50e
mov dword [ebp + ebx*4 - 0xa10], eax
inc ebx
inc eax
cmp eax, esi
jl 0x4af4f0
mov dword [ebp - 0x1538c], ebx
xor eax, eax
jmp 0x4af520
inc eax
mov dword [ebp - 0x15394], eax
test al, 0xf
jne 0x4af53b
mov eax, dword [0x805440]
test eax, eax
je 0x4af53b
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
xor edi, edi
mov dword [ebp - 0x1537c], 0
test esi, esi
jle 0x4af6ed
xor ebx, ebx
cmp byte [ebp + edi - 0x210], 0
mov eax, dword [ebp - 0x15380]
jne 0x4af6ca
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x4af6ca
mov eax, dword [eax + 0x400]
add eax, ebx
push 0x800
push eax
call fcn.004a5c20
mov esi, eax
cmp esi, 0x800
je 0x4af5af
mov eax, dword [ebp - 0x15380]
mov ecx, 0x800
sub ecx, esi
push ecx
lea ecx, [ebx + esi]
add ecx, dword [eax + 0x400]
push 0
push ecx
call fcn.006b47d0
add esp, 0xc
mov eax, dword [ebp - 0x1537c]
cmp esi, eax
jle 0x4af5c1
mov eax, esi
mov dword [ebp - 0x1537c], eax
mov esi, dword [ebp - 0x15378]
inc edi
add ebx, 0x800
cmp edi, esi
jl 0x4af551
test eax, eax
je 0x4af6ed
xor edi, edi
test eax, eax
jle 0x4af67e
mov ebx, dword [ebp - 0x1538c]
mov edi, edi
mov eax, dword [ebp - 0x15380]
xor ecx, ecx
mov edx, dword [eax + 0x400]
add edx, edi
mov al, byte [edx]
lea edx, [edx + 0x800]
mov byte [ebp + ecx - 0x110], al
inc ecx
cmp ecx, esi
jl 0x4af600
push ebx
lea eax, [ebp - 0xa10]
push eax
push esi
lea eax, [ebp - 0x110]
push eax
lea ecx, [ebp - 0xe148]
call fcn.004bc150
xor esi, esi
test ebx, ebx
jle 0x4af669
jmp 0x4af640
mov eax, dword [ebp + esi*4 - 0xa10]
mov edx, eax
mov ecx, dword [ebp - 0x15380]
inc esi
shl edx, 0xb
add edx, edi
mov al, byte [ebp + eax - 0x110]
mov ecx, dword [ecx + 0x400]
mov byte [edx + ecx], al
cmp esi, ebx
jl 0x4af640
mov eax, dword [ebp - 0x1537c]
inc edi
mov esi, dword [ebp - 0x15378]
cmp edi, eax
jl 0x4af5f0
xor esi, esi
xor edi, edi
cmp byte [ebp + esi - 0x210], 0
je 0x4af6a4
mov ecx, dword [ebp - 0x15380]
push eax
mov eax, dword [ecx + 0x400]
mov ecx, dword [ecx + esi*4]
add eax, edi
push eax
call fcn.004a5b30
mov eax, dword [ebp - 0x1537c]
inc esi
add edi, 0x800
cmp esi, dword [ebp - 0x15390]
jl 0x4af682
mov esi, dword [ebp - 0x15378]
mov eax, dword [ebp - 0x15394]
jmp 0x4af520
mov eax, dword [eax + 0x400]
push 0x800
add eax, ebx
push 0
push eax
call fcn.006b47d0
mov eax, dword [ebp - 0x1537c]
add esp, 0xc
jmp 0x4af5c7
xor ebx, ebx
test esi, esi
jle 0x4af7d3
mov eax, dword [ebp - 0x15378]
mov ecx, dword [ebp - 0x15380]
mov esi, dword [ecx + ebx*4]
test esi, esi
je 0x4af7ca
cmp byte [ebp - 0x15388], 0
je 0x4af7aa
cmp byte [ebp + ebx - 0x210], 0
je 0x4af7aa
push 1
lea eax, [ebp - 0x1538c]
mov dword [ebp - 0x1538c], 0
push eax
push 0
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov edi, eax
cmp edi, 0xffffffff
jne 0x4af764
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x4af764
cmp byte [esi + 0x14], 0
jne 0x4af764
or ecx, edi
or eax, edi
jmp 0x4af772
mov eax, dword [ebp - 0x1538c]
xor ecx, ecx
add ecx, edi
cdq
adc eax, 0
sub ecx, 7
push 0
sbb eax, 0
push eax
push ecx
mov ecx, esi
call fcn.004a5de0
mov edi, 7
jmp 0x4af790
push 1
lea eax, [ebp - 0x15374]
mov byte [ebp - 0x15374], 0
push eax
mov ecx, esi
call fcn.004a5b30
dec edi
jne 0x4af790
mov ecx, esi
call fcn.004a5a60
mov eax, dword [ebp - 0x15380]
mov ecx, dword [ebp - 0x15380]
mov dword [eax + ebx*4], 0
mov eax, dword [ebp - 0x15378]
inc ebx
cmp ebx, eax
jl 0x4af703
cmp byte [ebp - 0x1210], 0
je 0x4af957
push dword [ebp + 8]
lea ecx, [ebp - 0xb538]
call fcn.004a6ac0
push 1
push 0
push 0
lea eax, [ebp - 0x1210]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0xb538]
call fcn.004a56b0
test al, al
je 0x4af8aa
push 1
lea ecx, [ebp - 0xb538]
call fcn.004a6db0
test al, al
je 0x4af8aa
push 0x7b
lea ecx, [ebp - 0xb538]
call fcn.004a7250
test eax, eax
je 0x4af8aa
push 0
push dword [ebp - 0x4f44]
lea ecx, [ebp - 0xb538]
push dword [ebp - 0x4f48]
call fcn.004a5de0
push 0x2000
lea eax, [ebp - 0xd540]
push eax
lea ecx, [ebp - 0xb538]
call fcn.004a5c20
xor ecx, ecx
test eax, eax
jle 0x4af881
cmp byte [ebp + ecx - 0xd540], 0
jne 0x4af881
inc ecx
cmp ecx, eax
jl 0x4af872
cmp ecx, eax
jne 0x4af8aa
push 0
push dword [ebp - 0x4f44]
lea ecx, [ebp - 0xb538]
push dword [ebp - 0x4f48]
call fcn.004a5de0
push dword [ebp - 0xb534]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
mov eax, dword [ebp - 0x5d10]
test eax, eax
je 0x4af8bd
push eax
call fcn.006b31f8
add esp, 4
mov eax, dword [ebp - 0x6a50]
test eax, eax
je 0x4af8d0
push eax
call fcn.006b31f8
add esp, 4
push 0x2aa0
lea eax, [ebp - 0xa1a0]
push 0
push eax
call fcn.006b47d0
mov eax, dword [ebp - 0x80d0]
add esp, 0xc
test eax, eax
je 0x4af8f9
push eax
call fcn.006b31f8
add esp, 4
cmp dword [ebp - 0xb534], 0xffffffff
mov dword [ebp - method.File.virtual_0], vtable.File.0
je 0x4af957
cmp byte [ebp - 0xb528], 0
jne 0x4af957
cmp byte [ebp - 0xb526], 0
je 0x4af94c
cmp dword [ebp - 0xb52c], 0
jne 0x4af957
cmp byte [ebp - 0xb525], 0
je 0x4af957
lea ecx, [ebp - 0xb538]
call fcn.004a5a60
lea eax, [ebp - 0xb521]
push eax
call fcn.006c036d
add esp, 4
jmp 0x4af957
lea ecx, [ebp - 0xb538]
call fcn.004a5a60
mov eax, dword [ebp - 0x2644]
cmp eax, 0xffffffff
je 0x4af96a
push eax
mov eax, dword [sym.imp.KERNEL32.dll_FindClose]
call eax
mov eax, dword [ebp - 0xfb48]
test eax, eax
je 0x4af97d
push eax
call fcn.006b31f8
add esp, 4
mov eax, dword [ebp - 0x10888]
test eax, eax
je 0x4af990
push eax
call fcn.006b31f8
add esp, 4
push 0x2aa0
lea eax, [ebp - 0x13fd8]
push 0
push eax
call fcn.006b47d0
mov eax, dword [ebp - 0x11f08]
add esp, 0xc
test eax, eax
je 0x4af9b9
push eax
call fcn.006b31f8
add esp, 4
cmp dword [ebp - 0x1536c], 0xffffffff
mov dword [ebp - method.File.virtual_0], vtable.File.0
je 0x4afa19
cmp byte [ebp - 0x15360], 0
jne 0x4afa19
cmp byte [ebp - 0x1535e], 0
je 0x4afa0e
cmp dword [ebp - 0x15364], 0
jne 0x4afa19
cmp byte [ebp - 0x1535d], 0
je 0x4afa19
lea ecx, [ebp - 0x15370]
call fcn.004a5a60
lea eax, [ebp - 0x15359]
push eax
call fcn.006c036d
add esp, 4
mov al, 1
jmp 0x4afa5a
lea ecx, [ebp - 0x15370]
call fcn.004a5a60
mov al, 1
jmp 0x4afa5a
add dword [0x7e85a8], 2
mov dword [0x7e85a4], 9
call fcn.004a6170
push 2
call fcn.006c0359
mov eax, dword [ebp - 0x2644]
cmp eax, 0xffffffff
je 0x4afa4d
push eax
mov eax, dword [sym.imp.KERNEL32.dll_FindClose]
call eax
lea ecx, [ebp - 0x15370]
call fcn.0048de80
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.006b3266
mov esp, ebp
pop ebp
ret 0x10