Function at 0x455906
Capabilities:
Check if file exists
Contain obfuscated stackstrings
Get file attributes
Move file

Disassembly:
push 0xe4
mov eax, 0x51a508
call fcn.004d8abf
mov esi, edx
mov dword [ebp - 0x98], esi
mov ebx, ecx
mov dword [ebp - 0x48], ebx
and dword [ebp - 0x94], 0
and dword [ebp - 4], 0
call fcn.0044e82b
test al, al
je 0x45597c
push 0x9b9
push 0x80004005
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x30]
call fcn.00406620
mov byte [ebp - 4], 1
lea eax, [ebp - 0x30]
mov ecx, ebx
push eax
call fcn.0040121b
mov ecx, dword [ebp - 0x28]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, ebx
jmp 0x456544
xor eax, eax
inc eax
mov dword [ebp - 0x9c], eax
mov byte [ebp - 0xd], al
mov eax, dword [0x57d3ec]
add eax, 0x54
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push 2
pop eax
push esi
mov edx, str.Checking_cache_for
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], al
call fcn.004093b4
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x68]
mov edx, eax
mov dword [esp], 0x552df4
call fcn.00409442
pop ecx
push eax
mov byte [ebp - 4], 4
call fcn.0044f24f
lea ecx, [eax + 0x44]
call fcn.00405d6e
mov ecx, dword [ebp - 0x68]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x50]
lea ecx, [ecx - 0x10]
call fcn.00407189
call fcn.0044f24f
xor ecx, ecx
inc ecx
mov byte [eax + 0x1a9], cl
call fcn.0044f24f
imul ecx, dword [ebp + 0x14], 0xa8
mov esi, dword [eax + 0x1ac]
push ecx
mov dword [ebp - 0x54], ecx
add esi, ecx
mov ecx, esp
push str.Checking_cache
call fcn.00406fea
mov ecx, esi
call fcn.0044eeac
lea ecx, [ebp - 0xd]
mov byte [ebp - 4], 0
call fcn.0044f694
mov edi, dword [ebp + 8]
cmp dword [edi + 0x38], 0
jne 0x455a61
push 0x9c3
push 0x80004005
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x30]
call fcn.00406620
mov byte [ebp - 4], 5
jmp 0x455954
mov eax, dword [edi + 0x4c]
mov ecx, dword [eax + 0x48]
cmp dword [ecx - 0xc], 0
jne 0x455a90
push 0x9c4
push 0x80004005
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x30]
call fcn.00406620
mov byte [ebp - 4], 6
jmp 0x455954
add ecx, 0xfffffff0
call fcn.004070e7
add eax, 0x10
mov dword [ebp - 0xa0], eax
lea esi, [eax - 0x10]
mov byte [ebp - 4], 7
cmp dword [esi + 4], 0
mov dword [ebp - 0x34], esi
jne 0x455aec
push 0x9c6
push 0x80004005
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x30]
call fcn.00406620
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 8
push eax
mov ecx, ebx
call fcn.0040121b
mov ecx, dword [ebp - 0x28]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, esi
jmp 0x455965
mov ecx, dword [edi + 0x4c]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x78], eax
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x10]
sub ecx, 0x10
mov dword [ebp - 0x7c], eax
call fcn.004070e7
mov dword [ebp - 0x24], eax
add eax, 0x10
mov dword [ebp - 0x50], eax
and dword [ebp - 0x60], 0
lea ecx, [ebp - 0x90]
and dword [ebp - 0x5c], 0
call fcn.0042d1df
lea ecx, [ebp - 0xf0]
mov byte [ebp - 4], 0xa
call fcn.0042ce1d
push ecx
mov ecx, dword [ebp - 0x34]
mov esi, esp
mov byte [ebp - 4], 0xb
mov dword [ebp - 0x14], esi
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0xf0]
mov dword [esi], eax
lea eax, [ebp - 0x30]
push eax
call fcn.0042cf31
mov byte [ebp - 4], 0xc
cmp dword [ebp - 0x30], 0
jge 0x455bdb
cmp dword [ebp - 0x2c], 0
mov eax, 0x9d0
cmovne eax, dword [ebp - 0x2c]
push eax
push dword [ebp - 0x30]
push ecx
mov esi, esp
mov dword [ebp - 0x14], esi
mov ecx, dword [ebp - 0x28]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x64]
mov dword [esi], eax
call fcn.00406620
lea eax, [ebp - 0x64]
mov byte [ebp - 4], 0xd
push eax
mov ecx, ebx
call fcn.0040121b
mov ecx, dword [ebp - 0x5c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x28]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0xf0]
call fcn.0042cff5
lea ecx, [ebp - 0x90]
call fcn.0042dcf9
mov ecx, dword [ebp - 0x24]
call fcn.00407189
mov ecx, dword [ebp - 0x34]
jmp 0x455965
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x28]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x60]
push eax
push dword [0x57d3f8]
lea edx, [ebp - 0xf0]
push dword [0x57d3f4]
lea ecx, [ebp - 0x74]
push dword [0x57d3f0]
call fcn.0043f458
add esp, 0x14
mov byte [ebp - 4], 0xe
cmp dword [ebp - 0x74], 0
jge 0x455c35
lea eax, [ebp - 0x74]
mov ecx, ebx
push eax
call fcn.0040121b
mov ecx, dword [ebp - 0x6c]
jmp 0x455bad
mov ecx, dword [ebp - 0x8c]
add ecx, 0xfffffff0
call fcn.004070e7
mov dword [ebp - 0x20], eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x68], esi
mov eax, dword [ebp - 0x78]
mov byte [ebp - 4], 0xf
cmp dword [ebp - 0x60], eax
jne 0x455cfe
mov eax, dword [ebp - 0x7c]
cmp dword [ebp - 0x5c], eax
jne 0x455cfe
mov byte [ebp - 0xd], 0
mov edx, dword [edi + 0x4c]
lea ecx, [ebp - 0x68]
add edx, 0x20
call fcn.00405d14
mov cl, al
mov eax, dword [ebp - 0x24]
mov byte [ebp - 0x42], cl
cmp dword [eax + 4], 0
je 0x455c98
cmp byte [ebp - 0xd], 0
jne 0x455c98
cmp byte [edi + 0x3d], 0
je 0x455ca2
test cl, cl
jne 0x455ca2
cmp byte [edi + 0x3c], 0
mov byte [ebp - 0xd], 1
jne 0x455ca6
mov byte [ebp - 0xd], 0
lea ecx, [ebp - 0x4c]
call fcn.0040687a
lea ecx, [ebp - 0x38]
call fcn.0040687a
lea ecx, [ebp - 0x40]
call fcn.0040687a
mov byte [ebp - 4], 0x12
cmp byte [ebp - 0xd], 0
je 0x455f61
lea ecx, [ebp - 0x20]
call fcn.0040687a
mov byte [ebp - 4], 0x13
cmp byte [edi + 0x3d], 0
je 0x455d37
lea ecx, [esi - 0x10]
call fcn.004070e7
lea edi, [eax + 0x10]
mov dword [ebp - 0x1c], edi
mov byte [ebp - 4], 0x14
mov ecx, edi
mov dword [ebp - 0x94], 2
jmp 0x455d57
cmp byte [edi + 0x3c], 0
mov byte [ebp - 0xd], 1
jne 0x455c6c
push 0x9de
push 0x80004005
push ecx
mov ecx, esp
push str.Invalid_file_length
call fcn.00406fea
mov ecx, ebx
call fcn.00406620
mov ecx, dword [ebp - 0x20]
call fcn.00407189
jmp 0x455c2d
lea ecx, [ebp - 0x3c]
call fcn.0040687a
mov dword [ebp - 4], 0x15
mov edi, dword [ebp - 0x1c]
push 4
pop ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x94], ecx
mov ecx, dword [eax]
add ecx, 0xfffffff0
call fcn.004070e7
mov ebx, eax
lea eax, [ebx + 0x10]
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], 0x16
mov eax, dword [ebp - 0x18]
test al, 4
je 0x455d89
mov ecx, dword [ebp - 0x3c]
and eax, 0xfffffffb
add ecx, 0xfffffff0
mov dword [ebp - 0x18], eax
call fcn.00407189
mov eax, dword [ebp - 0x18]
mov byte [ebp - 4], 0x18
test al, 2
je 0x455d99
lea ecx, [edi - 0x10]
call fcn.00407189
lea eax, [ebp - 0x38]
push eax
push ecx
mov edi, esp
mov dword [ebp - 0x58], esp
mov dword [ebp - 0x80], edi
mov ecx, ebx
mov dword [ebp - 0x18], ebx
call fcn.004070e7
add eax, 0x10
mov dword [edi], eax
mov byte [ebp - 4], 0x19
push dword [ebp - 0x5c]
push dword [ebp - 0x60]
push ecx
mov ecx, dword [ebp - 0x34]
mov edi, esp
mov dword [ebp - 0x80], esp
mov dword [ebp - 0x1c], edi
call fcn.004070e7
add eax, 0x10
mov dword [edi], eax
mov eax, dword [ebp + 0x10]
push ecx
add eax, 4
mov byte [ebp - 4], 0x1a
mov edi, esp
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x1c], eax
mov ecx, dword [eax]
sub ecx, 0x10
call fcn.004070e7
add eax, 0x10
lea edx, [ebp - 0x20]
mov dword [edi], eax
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x18
call fcn.0043c136
add esp, 0x18
mov byte [ebp - 4], 0x1b
cmp dword [ebp - 0x30], 0
jge 0x455ea5
mov ecx, dword [ebp - 0x48]
lea eax, [ebp - 0x30]
push eax
call fcn.0040121b
mov ecx, dword [ebp - 0x28]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, ebx
call fcn.00407189
mov ecx, dword [ebp - 0x20]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x40]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x38]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x4c]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [esi - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x6c]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0xf0]
call fcn.0042cff5
lea ecx, [ebp - 0x90]
call fcn.0042dcf9
mov ecx, dword [ebp - 0x24]
call fcn.00407189
mov ecx, dword [ebp - 0x34]
call fcn.00407189
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx - 0x10]
jmp 0x45653c
mov edi, dword [ebp - 0x1c]
lea ecx, [ebp - 0x1c]
push 0x545b68
mov edx, edi
call fcn.00409442
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x1c
push ecx
mov edx, eax
lea ecx, [ebp - 0x18]
call fcn.0040a037
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x1d
call fcn.00405d6e
mov ecx, dword [ebp - 0x18]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 0x1b
mov ecx, dword [ebp - 0x1c]
lea ecx, [ecx - 0x10]
call fcn.00407189
push 0x53d64c
mov edx, edi
lea ecx, [ebp - 0x1c]
call fcn.00409442
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0x1e
push ecx
mov edx, eax
lea ecx, [ebp - 0x18]
call fcn.0040a037
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x1f
call fcn.00405d6e
mov ecx, dword [ebp - 0x18]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x1c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x28]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, ebx
call fcn.00407189
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x20]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ebx, dword [ebp - 0x48]
jmp 0x45600e
mov eax, dword [ebp - 0x24]
cmp dword [eax + 4], 0
jne 0x455fa5
and dword [ebx + 4], 0
lea ecx, [ebx + 8]
mov dword [ebx], 0x80004005
call fcn.0040687a
mov ecx, dword [ebp - 0x40]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x38]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x4c]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [esi - 0x10]
jmp 0x455d2d
mov edx, dword [ebp + 0x10]
lea ecx, [ebp - 0x20]
push 0x53d64c
lea edx, [edx + 4]
call fcn.00409442
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x20
push ecx
mov edx, eax
lea ecx, [ebp - 0x18]
call fcn.0040a037
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x21
call fcn.00405d6e
mov ecx, dword [ebp - 0x18]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x20]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x38]
call fcn.00405d6e
mov eax, dword [edi + 0x4c]
mov ecx, dword [ebp - 0x78]
mov dword [eax + 0x28], ecx
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 0x2c], ecx
mov edi, dword [ebp - 0x4c]
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x45604d
mov dword [ebx], 0x80004005
and dword [ebx + 4], 0
lea ecx, [ebx + 8]
call fcn.0040687a
mov ecx, dword [ebp - 0x40]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x38]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [edi - 0x10]
jmp 0x455f98
cmp byte [ebp + 0x18], 0
je 0x45606a
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x38]
push eax
mov ecx, dword [ecx + 0x4c]
add ecx, 0x30
call fcn.00405d6e
and dword [ebx], 0
jmp 0x456023
mov eax, dword [0x57d3ec]
xor ebx, ebx
add eax, 0x54
inc ebx
push eax
mov byte [ebp - 0x41], bl
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push dword [ebp - 0x98]
mov edx, 0x5486f8
mov byte [ebp - 4], 0x22
lea ecx, [ebp - 0x20]
call fcn.004093b4
mov byte [ebp - 4], 0x23
lea ecx, [ebp - 0x18]
mov edx, eax
mov dword [esp], 0x552df4
call fcn.00409442
pop ecx
push eax
mov byte [ebp - 4], 0x24
call fcn.0044f24f
lea ecx, [eax + 0x44]
call fcn.00405d6e
mov ecx, dword [ebp - 0x18]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 0x22
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.00407189
call fcn.0044f24f
mov byte [eax + 0x1a9], bl
call fcn.0044f24f
push ecx
mov ecx, esp
push str.Retrieving_from_cache
mov ebx, dword [eax + 0x1ac]
add ebx, dword [ebp - 0x54]
call fcn.00406fea
mov ecx, ebx
call fcn.0044eeac
lea ecx, [ebp - 0x41]
mov byte [ebp - 4], 0x12
call fcn.0044f694
lea ecx, [ebp - 0x14]
call fcn.004282f6
mov dword [ebp - 0x54], eax
push 0x53d64c
push ecx
mov byte [ebp - 4], 0x25
mov ebx, esp
mov dword [ebp - 0x18], ebx
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff0
mov ecx, eax
mov dword [ebp - 0x18], eax
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x58]
mov dword [ebx], eax
call fcn.004295ad
pop ecx
mov edx, eax
mov byte [ebp - 4], 0x26
lea ecx, [ebp - 0x80]
call fcn.00409442
push dword [ebp - 0x54]
mov edx, eax
mov byte [ebp - 4], 0x27
lea ecx, [ebp - 0x1c]
call fcn.0040a037
mov byte [ebp - 4], 0x28
mov edx, eax
push 0x5444ec
lea ecx, [ebp - 0x3c]
call fcn.00409442
add esp, 0xc
mov ecx, dword [ebp - 0x1c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x80]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x58]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 0x2d
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
call fcn.00407189
push ecx
mov ecx, dword [ebp - 0x3c]
mov ebx, esp
mov dword [ebp - 0x54], ebx
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x20]
mov dword [ebx], eax
call fcn.0042bab1
push ecx
mov byte [ebp - 4], 0x2e
mov ebx, esp
mov dword [ebp - 0x58], ebx
mov ecx, dword [ebp - 0x3c]
add ecx, 0xfffffff0
mov dword [ebp - 0x14], esp
call fcn.004070e7
add eax, 0x10
mov dword [ebx], eax
push ecx
lea eax, [edi - 0x10]
mov byte [ebp - 4], 0x2f
mov ebx, esp
mov ecx, eax
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x1c], eax
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x30]
mov dword [ebx], eax
mov dl, 1
mov byte [ebp - 4], 0x2e
call fcn.00428edd
pop ecx
pop ecx
mov byte [ebp - 4], 0x30
cmp dword [ebp - 0x30], 0
jge 0x456279
cmp dword [ebp - 0x2c], 0
mov eax, 0xa1b
cmovne eax, dword [ebp - 0x2c]
push eax
push dword [ebp - 0x30]
push ecx
mov edi, esp
mov dword [ebp - 0x14], edi
mov ecx, dword [ebp - 0x28]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x64]
mov dword [edi], eax
call fcn.00406620
mov byte [ebp - 4], 0x31
mov ecx, dword [ebp - 0x48]
lea eax, [ebp - 0x64]
push eax
call fcn.0040121b
mov ecx, dword [ebp - 0x5c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x28]
lea ecx, [ecx - 0x10]
call fcn.00407189
jmp 0x4564cf
mov byte [ebp - 4], 0x2e
mov ecx, dword [ebp - 0x28]
add ecx, 0xfffffff0
call fcn.00407189
push ecx
mov edi, esp
mov dword [ebp - 0x14], edi
mov ecx, dword [ebp - 0x3c]
lea ecx, [ecx - 0x10]
call fcn.004070e7
mov ebx, dword [ebp + 8]
lea ecx, [ebp - 0x30]
mov edx, dword [ebp - 0x98]
add eax, 0x10
push ebx
mov dword [edi], eax
call fcn.00454535
pop ecx
pop ecx
mov byte [ebp - 4], 0x32
cmp dword [ebp - 0x30], 0
jge 0x4562f4
cmp dword [ebp - 0x2c], 0
mov eax, 0xa22
cmovne eax, dword [ebp - 0x2c]
push eax
push dword [ebp - 0x30]
push ecx
mov edi, esp
mov dword [ebp - 0x14], edi
mov ecx, dword [ebp - 0x28]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x64]
mov dword [edi], eax
call fcn.00406620
mov byte [ebp - 4], 0x33
jmp 0x456252
mov byte [ebp - 4], 0x2e
mov ecx, dword [ebp - 0x28]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebx + 0x4c]
mov ecx, dword [ebp - 0x60]
cmp ecx, dword [eax + 0x28]
jne 0x4564b0
mov ecx, dword [ebp - 0x5c]
cmp ecx, dword [eax + 0x2c]
jne 0x4564b0
push 0
push dword [ebp + 0xc]
push dword [ebp - 0x3c]
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne 0x456379
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
push 0xa2f
cmovle ecx, eax
mov eax, 0x80004005
test ecx, ecx
cmovs eax, ecx
push eax
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x30]
call fcn.00406620
mov ecx, dword [ebp - 0x48]
lea eax, [ebp - 0x30]
push eax
mov byte [ebp - 4], 0x34
call fcn.0040121b
jmp 0x456269
lea ecx, [ebp - 0x20]
call fcn.0042bae8
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x3c]
add ecx, 0xfffffff0
call fcn.00407189
cmp byte [ebp - 0xd], 0
mov edi, dword [ebp - 0x40]
je 0x4563c0
push ecx
mov ebx, esp
lea ecx, [edi - 0x10]
mov dword [ebp - 0x14], ebx
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x30]
mov dword [ebx], eax
call fcn.0042b82a
pop ecx
mov ecx, dword [ebp - 0x28]
add ecx, 0xfffffff0
call fcn.00407189
push ecx
mov ebx, esp
mov dword [ebp - 0x14], ebx
mov ecx, dword [ebp - 0x1c]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x30]
mov dword [ebx], eax
call fcn.0042b82a
pop ecx
mov ecx, dword [ebp - 0x28]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x68]
push eax
mov ecx, dword [ebx + 0x4c]
add ecx, 0x40
call fcn.00405d6e
mov edx, dword [ebx + 0x4c]
mov eax, dword [ebp - 0x78]
cmp dword [edx + 0x28], eax
jne 0x456437
mov eax, dword [ebp - 0x7c]
cmp dword [edx + 0x2c], eax
jne 0x456437
mov eax, dword [ebp - 0x24]
cmp dword [eax + 4], 0
je 0x456424
add edx, 0x30
lea ecx, [ebp - 0x50]
call fcn.00405d14
test al, al
je 0x456437
cmp byte [ebx + 0x3d], 0
je 0x456430
cmp byte [ebp - 0x42], 0
je 0x456437
mov byte [ebp - 0x9c], 0
mov eax, dword [ebx + 0x4c]
mov ebx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x9c]
mov byte [eax], cl
and dword [ebx], 0
lea ecx, [ebx + 8]
and dword [ebx + 4], 0
call fcn.0040687a
lea ecx, [edi - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x38]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x1c]
call fcn.00407189
lea ecx, [esi - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x6c]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0xf0]
call fcn.0042cff5
lea ecx, [ebp - 0x90]
call fcn.0042dcf9
mov ecx, dword [ebp - 0x24]
call fcn.00407189
mov ecx, dword [ebp - 0x34]
call fcn.00407189
mov ecx, dword [ebp - 0x18]
jmp 0x455970
push 0xa2b
push 0x80004005
push ecx
mov ecx, esp
push str.Unexpected_file_size
call fcn.00406fea
mov ecx, dword [ebp - 0x48]
call fcn.00406620
lea ecx, [ebp - 0x20]
call fcn.0042bae8
mov ecx, dword [ebp - 0x3c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x40]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x38]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x1c]
call fcn.00407189
lea ecx, [esi - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x6c]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0xf0]
call fcn.0042cff5
lea ecx, [ebp - 0x90]
call fcn.0042dcf9
mov ecx, dword [ebp - 0x24]
call fcn.00407189
mov ecx, dword [ebp - 0x34]
call fcn.00407189
mov ecx, dword [ebp - 0x18]
call fcn.00407189
mov eax, dword [ebp - 0x48]
call fcn.004d8a8d
ret