Function at 0x508f66
Capabilities:
Get common file path
Get file attributes
Set file attributes

Disassembly:
mov eax, 0x5add92
call fcn.00591b5c
sub esp, 0x458
mov eax, dword [0x6c0bc0]
xor eax, dword [ebp + 4]
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0x458], ecx
mov eax, dword [ebp - 0x458]
movzx eax, byte [eax + 8]
cmp eax, 0xcf
je 0x508fa3
push 0
call fcn.004d177c
pop ecx
cmp dword [ebp + 8], 0
jne 0x508fc0
push str.No_output_object_for_file_entry_
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov ecx, dword [ebp + 0x14]
call dword [eax + 0x10]
xor al, al
jmp 0x509d5c
movzx eax, byte [ebp + 0x28]
test eax, eax
jne 0x508feb
mov eax, dword [ebp - 0x458]
cmp dword [eax + 0x24], 0
jne 0x508feb
push str.Internal_Error:_Full_filename_is_missing_for_file_entry.
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov ecx, dword [ebp + 0x14]
call dword [eax + 0x10]
xor al, al
jmp 0x509d5c
mov byte [ebp - 0x93], 1
push 0
mov ecx, dword [ebp - 0x458]
call fcn.005074b7
mov eax, dword [ebp - 0x458]
cmp dword [eax + 0x20], 0
je 0x50905a
mov eax, dword [ebp - 0x458]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x444], eax
mov eax, dword [ebp - 0x444]
mov dword [ebp - 0x440], eax
cmp dword [ebp - 0x440], 0
je 0x509049
push 1
mov eax, dword [ebp - 0x440]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x440]
call dword [eax]
mov dword [ebp - 0x45c], eax
jmp 0x509050
and dword [ebp - 0x45c], 0
mov eax, dword [ebp - 0x458]
and dword [eax + 0x20], 0
mov eax, dword [ebp - 0x458]
cmp dword [eax + 0x1c], 0
jne 0x50907d
push str.Failed_to_Zip:_reason__1__no_back_ref_
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov ecx, dword [ebp + 0x14]
call dword [eax + 0x10]
xor al, al
jmp 0x509d5c
mov eax, dword [ebp - 0x458]
cmp dword [eax + 0x14], 0
jne 0x5090a0
push str.Failed_to_Zip:_reason__2
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov ecx, dword [ebp + 0x14]
call dword [eax + 0x10]
xor al, al
jmp 0x509d5c
mov eax, dword [ebp - 0x458]
mov ecx, dword [eax + 0x14]
call fcn.004ccbf8
test eax, eax
jne 0x5090c9
push str.Failed_to_Zip:_reason__3
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov ecx, dword [ebp + 0x14]
call dword [eax + 0x10]
xor al, al
jmp 0x509d5c
movzx eax, byte [ebp + 0x28]
test eax, eax
jne 0x5090f4
mov eax, dword [ebp - 0x458]
cmp dword [eax + 0x24], 0
jne 0x5090f4
push str.Failed_to_Zip:_reason__4
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov ecx, dword [ebp + 0x14]
call dword [eax + 0x10]
xor al, al
jmp 0x509d5c
mov eax, dword [ebp - 0x458]
cmp dword [eax + 0x24], 0
je 0x509129
mov eax, dword [ebp - 0x458]
mov ecx, dword [eax + 0x24]
call fcn.004ccbf8
test eax, eax
jne 0x509129
push str.Failed_to_Zip:_reason__5
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov ecx, dword [ebp + 0x14]
call dword [eax + 0x10]
xor al, al
jmp 0x509d5c
mov eax, dword [ebp - 0x458]
mov ecx, dword [eax + 0x1c]
call fcn.00503014
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0x458]
mov ecx, dword [eax + 0x1c]
call fcn.00503026
mov byte [ebp - 0xe], al
cmp dword [ebp - 0xbc], 4
jne 0x50915b
and byte [ebp - 0xe], 0
cmp dword [ebp - 0xbc], 0
je 0x509181
cmp dword [ebp - 0xbc], 4
je 0x509181
mov eax, dword [ebp - 0x458]
mov byte [eax + 0xa], 8
mov eax, dword [ebp - 0x458]
mov byte [eax + 0xb], 6
lea ecx, [ebp - 0x6c]
call fcn.0052d5ce
and dword [ebp - 4], 0
movzx eax, byte [ebp + 0x28]
test eax, eax
jne 0x509288
push dword [ebp + 0x14]
mov eax, dword [ebp - 0x458]
mov ecx, dword [eax + 0x24]
call fcn.0055420c
push eax
lea ecx, [ebp - 0x6c]
call fcn.0052d71b
movzx eax, al
test eax, eax
jne 0x509288
lea eax, [ebp - 0x1cc]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov eax, dword [ebp + 0x24]
mov cl, byte [ebp - 0x64]
mov byte [eax], cl
mov eax, dword [ebp + 0x24]
movzx eax, byte [eax]
test eax, eax
jne 0x50925d
lea eax, [ebp - 0x1cc]
push eax
push str.curDir
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov ecx, dword [ebp + 0x14]
call dword [eax + 0x28]
push str.Failed_to_obtain_file_information
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov ecx, dword [ebp + 0x14]
call dword [eax + 0x10]
lea ecx, [ebp - 0x22c]
call fcn.004d00b6
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x458]
mov ecx, dword [eax + 0x14]
call fcn.0055420c
push eax
lea ecx, [ebp - 0x22c]
call fcn.004d0448
lea ecx, [ebp - 0x22c]
call fcn.004d0c2d
push eax
push str.filename
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov ecx, dword [ebp + 0x14]
call dword [eax + 0x28]
and byte [ebp - 4], 0
lea ecx, [ebp - 0x22c]
call fcn.004d018e
push 0
mov ecx, dword [ebp - 0x458]
call fcn.005074b7
and byte [ebp - 0x445], 0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x6c]
call fcn.0052d69f
mov al, byte [ebp - 0x445]
jmp 0x509d5c
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
call fcn.004e8183
pop ecx
pop ecx
movzx eax, al
test eax, eax
je 0x5092e9
push str.File_too_large_for_32_bit_zip.
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov ecx, dword [ebp + 0x14]
call dword [eax + 0x10]
mov eax, dword [ebp - 0x458]
mov ecx, dword [eax + 0x14]
call fcn.0055420c
push eax
push str.filename
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov ecx, dword [ebp + 0x14]
call dword [eax + 0x28]
and byte [ebp - 0x446], 0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x6c]
call fcn.0052d69f
mov al, byte [ebp - 0x446]
jmp 0x509d5c
mov eax, dword [ebp - 0x458]
mov ecx, dword [eax + 0x1c]
call fcn.00501f3d
mov byte [ebp - 0x92], al
movzx eax, byte [ebp - 0x92]
test eax, eax
je 0x509365
movzx eax, byte [ebp + 0x28]
test eax, eax
jne 0x509365
mov eax, dword [ebp - 0x458]
mov ecx, dword [eax + 0x24]
call fcn.0055420c
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov dword [ebp - 0x234], eax
mov dword [ebp - 0x230], 0x20
mov eax, dword [ebp - 0x230]
not eax
mov dword [ebp - 0x230], eax
mov eax, dword [ebp - 0x234]
and eax, dword [ebp - 0x230]
push eax
mov eax, dword [ebp - 0x458]
mov ecx, dword [eax + 0x24]
call fcn.0055420c
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
movzx eax, byte [ebp + 0x28]
test eax, eax
jne 0x50940a
mov eax, dword [ebp - 0x458]
mov eax, dword [eax + 0x24]
fld qword [eax + 0x20]
fcomp qword [0x63ce58]
fnstsw ax
test ah, 0x44
jnp 0x5093f5
lea ecx, [ebp - 0x240]
call fcn.004d4b5e
mov byte [ebp - 4], 2
lea eax, [ebp - 0x250]
push eax
mov eax, dword [ebp - 0x458]
mov eax, dword [eax + 0x24]
add eax, 0x20
push eax
lea ecx, [ebp - 0x240]
call fcn.004d4160
lea eax, [ebp - 0x23c]
push eax
lea eax, [ebp - 0x250]
push eax
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x23c]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToDosDateTime]
and byte [ebp - 4], 0
lea ecx, [ebp - 0x240]
call fcn.004d61fd
jmp 0x509408
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x70]
push eax
lea ecx, [ebp - 0x6c]
call fcn.0052d6dd
jmp 0x509443
lea eax, [ebp - 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
lea eax, [ebp - 0x258]
push eax
lea eax, [ebp - 0x268]
push eax
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x258]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToDosDateTime]
movzx eax, byte [ebp + 0x28]
test eax, eax
je 0x50945e
mov dword [ebp - 0x34], 0x10
and dword [ebp - 0x40], 0
and dword [ebp - 0x3c], 0
and dword [ebp - 0x38], 0
push 0x1c
call fcn.00565bb9
pop ecx
mov dword [ebp - 0x450], eax
mov byte [ebp - 4], 3
cmp dword [ebp - 0x450], 0
je 0x50948c
mov ecx, dword [ebp - 0x450]
call fcn.005316f9
mov dword [ebp - 0x460], eax
jmp 0x509493
and dword [ebp - 0x460], 0
mov eax, dword [ebp - 0x460]
mov dword [ebp - 0x44c], eax
and byte [ebp - 4], 0
mov eax, dword [ebp - 0x458]
mov ecx, dword [ebp - 0x44c]
mov dword [eax + 0x20], ecx
mov eax, dword [ebp - 0x458]
mov eax, dword [eax + 0x20]
mov cx, word [ebp - 0x70]
mov word [eax + 6], cx
mov eax, dword [ebp - 0x458]
mov eax, dword [eax + 0x20]
mov cx, word [ebp - 0x90]
mov word [eax + 4], cx
mov eax, dword [ebp - 0x458]
mov eax, dword [eax + 0x20]
mov ecx, dword [ebp - 0x34]
mov dword [eax + 0x10], ecx
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x458]
mov ecx, dword [ecx + 0x20]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp - 0x458]
mov eax, dword [eax + 0x20]
mov eax, dword [eax + 0x10]
and eax, 0x10
test eax, eax
je 0x509548
push 1
mov ecx, dword [ebp - 0x458]
call fcn.00507676
mov eax, dword [ebp - 0x458]
mov ecx, dword [eax + 0x1c]
call fcn.00501f4f
movzx eax, al
test eax, eax
je 0x509548
mov byte [ebp - 0x451], 1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x6c]
call fcn.0052d69f
mov al, byte [ebp - 0x451]
jmp 0x509d5c
mov ecx, dword [ebp - 0x458]
call fcn.005076c1
mov byte [ebp - 0xd], al
movzx eax, byte [ebp - 0xd]
test eax, eax
je 0x509591
mov eax, dword [ebp - 0x458]
mov ecx, dword [eax + 0x1c]
call fcn.00501f4f
movzx eax, al
test eax, eax
je 0x509591
mov byte [ebp - 0x452], 1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x6c]
call fcn.0052d69f
mov al, byte [ebp - 0x452]
jmp 0x509d5c
lea ecx, [ebp - 0x8c]
call fcn.004cde9c
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x458]
mov ecx, dword [eax + 0x14]
call fcn.0055420c
push eax
lea ecx, [ebp - 0x8c]
call fcn.004cd951
push dword [ebp + 0x20]
push 0xfde9
lea ecx, [ebp - 0x8c]
call fcn.004ce993
movzx eax, byte [ebp - 0xd]
test eax, eax
jne 0x50969a
lea ecx, [ebp - 0x2cc]
call fcn.004d00b6
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x458]
mov ecx, dword [eax + 0x24]
call fcn.0055420c
push eax
lea ecx, [ebp - 0x2cc]
call fcn.004d0448
push dword [ebp + 0x14]
lea eax, [ebp - 0x2cc]
push eax
call fcn.004d5a6a
pop ecx
pop ecx
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0x26c], 0xffffffff
jne 0x50967b
push str.Open_failure_1
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov ecx, dword [ebp + 0x14]
call dword [eax + 0x10]
push 0
mov ecx, dword [ebp - 0x458]
call fcn.005074b7
and byte [ebp - 0x453], 0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2cc]
call fcn.004d018e
and byte [ebp - 4], 0
lea ecx, [ebp - 0x8c]
call fcn.004ce1b7
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x6c]
call fcn.0052d69f
mov al, byte [ebp - 0x453]
jmp 0x509d5c
push dword [ebp + 0x14]
push dword [ebp - 0x26c]
call fcn.004e81eb
pop ecx
pop ecx
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2cc]
call fcn.004d018e
lea ecx, [ebp - 0xb8]
call fcn.005088b2
and byte [ebp - 0x91], 0
push 0x1e
push 0
lea eax, [ebp - 0xb8]
push eax
call fcn.0058ee10
add esp, 0xc
mov dword [ebp - 0xb8], 0x4034b50
movzx eax, byte [ebp - 0xd]
test eax, eax
je 0x5096e6
mov word [ebp - 0xb4], 0xa
mov eax, dword [ebp - 0x458]
and byte [eax + 0xa], 0
jmp 0x5096ef
mov word [ebp - 0xb4], 0x14
movzx eax, byte [ebp - 0xe]
test eax, eax
je 0x50971d
cmp dword [ebp - 0xbc], 0
jne 0x50971d
movzx eax, byte [ebp - 0xd]
test eax, eax
jne 0x50971d
mov eax, dword [ebp - 0x3c]
or eax, dword [ebp - 0x38]
test eax, eax
je 0x50971d
mov word [ebp - 0xb2], 1
jmp 0x509741
cmp dword [ebp - 0xbc], 4
jne 0x509739
movzx eax, byte [ebp - 0xd]
test eax, eax
jne 0x509739
mov word [ebp - 0xb2], 1
jmp 0x509741
and word [ebp - 0xb2], 0
and byte [ebp - 0xf], 0
cmp dword [ebp - 0xbc], 4
jne 0x50975e
movzx eax, word [ebp - 0xb2]
cmp eax, 1
jne 0x50975e
mov byte [ebp - 0xf], 1
movzx eax, byte [ebp - 0xf]
test eax, eax
je 0x509772
mov dword [ebp - 0x464], 0x63
jmp 0x509782
mov eax, dword [ebp - 0x458]
movzx eax, byte [eax + 0xa]
mov dword [ebp - 0x464], eax
mov ax, word [ebp - 0x464]
mov word [ebp - 0xb0], ax
mov ax, word [ebp - 0x70]
mov word [ebp - 0xac], ax
mov ax, word [ebp - 0x90]
mov word [ebp - 0xae], ax
push 0x2f
push 0x5c
lea ecx, [ebp - 0x8c]
call fcn.004ccf9f
movzx eax, byte [ebp - 0xd]
test eax, eax
je 0x5097e0
lea ecx, [ebp - 0x8c]
call fcn.004cf91c
movsx eax, al
cmp eax, 0x2f
je 0x5097e0
push 0x2f
lea ecx, [ebp - 0x8c]
call fcn.004cd146
lea ecx, [ebp - 0x8c]
call fcn.004ccbf8
mov word [ebp - 0x9e], ax
and word [ebp - 0x9c], 0
movzx eax, byte [ebp - 0xf]
test eax, eax
je 0x50980d
mov word [ebp - 0x9c], 0xb
jmp 0x509827
cmp dword [ebp - 0xbc], 0
je 0x509827
movzx eax, byte [ebp - 0xd]
test eax, eax
jne 0x509827
mov word [ebp - 0x9c], 0x14
and dword [ebp - 0xa6], 0
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0xa2], eax
and dword [ebp - 0xaa], 0
movzx eax, byte [ebp - 0xd]
test eax, eax
jne 0x50986a
mov eax, dword [ebp - 0x3c]
or eax, dword [ebp - 0x38]
test eax, eax
jne 0x50986a
movzx eax, byte [ebp - 0xf]
test eax, eax
jne 0x50986a
and word [ebp - 0xb0], 0
mov eax, dword [ebp - 0x458]
and byte [eax + 0xa], 0
mov eax, dword [ebp - 0x458]
mov eax, dword [eax + 0x20]
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx]
mov dword [eax + 0x14], ecx
and dword [ebp - 0x14], 0
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov ecx, dword [ebp + 8]
call dword [eax + 0x14]
mov dword [ebp - 0x14], eax
push 1
push 0x1e
lea eax, [ebp - 0xb8]
push eax
mov ecx, dword [ebp + 8]
call fcn.00522bd1
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
add eax, 0x1e
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
push 1
lea ecx, [ebp - 0x8c]
call fcn.004ccbf8
push eax
lea ecx, [ebp - 0x8c]
call fcn.0055420c
push eax
mov ecx, dword [ebp + 8]
call fcn.00522bd1
lea ecx, [ebp - 0x8c]
call fcn.004ccbf8
mov ecx, dword [ebp + 0xc]
add eax, dword [ecx]
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
and dword [ebp - 0x98], 0
movzx eax, byte [ebp - 0xf]
test eax, eax
je 0x5099e1
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov ecx, dword [ebp + 8]
call dword [eax + 0x14]
mov dword [ebp - 0x98], eax
mov byte [ebp - 0x2dc], 1
mov byte [ebp - 0x2db], 0x99
mov byte [ebp - 0x2da], 7
and byte [ebp - 0x2d9], 0
mov byte [ebp - 0x2d8], 2
and byte [ebp - 0x2d7], 0
mov byte [ebp - 0x2d6], 0x41
mov byte [ebp - 0x2d5], 0x45
mov eax, dword [ebp - 0x458]
mov ecx, dword [eax + 0x1c]
call fcn.00503038
mov dword [ebp - 0x2e0], eax
mov dword [ebp - 0x2d0], 1
cmp dword [ebp - 0x2e0], 0xc0
jne 0x509976
mov dword [ebp - 0x2d0], 2
jmp 0x50998c
cmp dword [ebp - 0x2e0], 0x100
jne 0x50998c
mov dword [ebp - 0x2d0], 3
mov al, byte [ebp - 0x2d0]
mov byte [ebp - 0x2d4], al
mov eax, dword [ebp - 0x458]
mov al, byte [eax + 0xa]
mov byte [ebp - 0x2d3], al
mov eax, dword [ebp - 0x3c]
or eax, dword [ebp - 0x38]
test eax, eax
jne 0x5099b8
and byte [ebp - 0x2d3], 0
and byte [ebp - 0x2d2], 0
push 1
push 0xb
lea eax, [ebp - 0x2dc]
push eax
mov ecx, dword [ebp + 8]
call fcn.00522bd1
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
add eax, 0xb
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
jmp 0x509a23
cmp dword [ebp - 0xbc], 0
je 0x509a23
movzx eax, byte [ebp - 0xd]
test eax, eax
jne 0x509a23
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov ecx, dword [ebp + 8]
call dword [eax + 0x14]
mov dword [ebp - 0x98], eax
push 1
push 0x14
lea eax, [ebp - 0x2f4]
push eax
mov ecx, dword [ebp + 8]
call fcn.00522bd1
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
add eax, 0x14
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
movzx eax, byte [ebp - 0xd]
test eax, eax
jne 0x509d22
lea ecx, [ebp - 0x3fc]
call fcn.0053191c
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x458]
movzx eax, byte [eax + 0xb]
push eax
lea ecx, [ebp - 0x3fc]
call fcn.0053175d
push dword [ebp + 0x10]
lea ecx, [ebp - 0x3fc]
call fcn.00531882
push 0
lea ecx, [ebp - 0x3fc]
call fcn.005317c4
push dword [ebp + 8]
lea ecx, [ebp - 0x3fc]
call fcn.00531899
mov eax, dword [ebp - 0x458]
mov ecx, dword [eax + 0x24]
call fcn.0055420c
push eax
lea ecx, [ebp - 0x3fc]
call fcn.005317a4
mov eax, dword [ebp - 0x3c]
or eax, dword [ebp - 0x38]
test eax, eax
jne 0x509aac
lea ecx, [ebp - 0x3fc]
call fcn.00533410
push 0
lea ecx, [ebp - 0x3fc]
call fcn.0053182d
mov eax, dword [ebp - 0x458]
movzx eax, byte [eax + 0xa]
test eax, eax
jne 0x509ad6
push 0
lea ecx, [ebp - 0x3fc]
call fcn.00531841
jmp 0x509ae3
push 1
lea ecx, [ebp - 0x3fc]
call fcn.00531841
lea ecx, [ebp - 0x42c]
call fcn.00529db7
mov byte [ebp - 4], 7
lea eax, [ebp - 0x42c]
push eax
mov ecx, dword [ebp - 0x458]
call fcn.00507b4b
lea eax, [ebp - 0x42c]
push eax
lea ecx, [ebp - 0x3fc]
call fcn.00529e5d
lea ecx, [ebp - 0x314]
call fcn.004cde9c
mov byte [ebp - 4], 8
lea eax, [ebp - 0x314]
push eax
mov eax, dword [ebp - 0x458]
mov ecx, dword [eax + 0x1c]
call fcn.005067b0
lea ecx, [ebp - 0x314]
call fcn.0055420c
push eax
lea ecx, [ebp - 0x3fc]
call fcn.00531741
push 0x49db
push dword [ebp + 0x14]
push dword [ebp + 0x1c]
lea ecx, [ebp - 0x3fc]
call fcn.00533dd2
mov byte [ebp - 0x93], al
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov ecx, dword [ebp + 8]
call dword [eax + 0xc]
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax]
mov dword [ebp - 0xaa], eax
mov eax, dword [ebp - 0x458]
mov eax, dword [eax + 0x20]
mov ecx, dword [ebp - 0xaa]
mov dword [eax + 0x18], ecx
lea ecx, [ebp - 0x3fc]
call fcn.0053178c
mov dword [ebp - 0xa6], eax
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp - 0xa6]
mov dword [eax], ecx
mov eax, dword [ebp - 0x458]
mov eax, dword [eax + 0x20]
mov ecx, dword [ebp - 0xa6]
mov dword [eax + 8], ecx
lea ecx, [ebp - 0x3fc]
call fcn.00531774
mov dword [ebp - 0xa2], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
add eax, dword [ebp - 0xa6]
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov ecx, dword [ebp + 8]
call dword [eax + 0x14]
mov dword [ebp - 0x2f8], eax
push dword [ebp - 0x14]
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov ecx, dword [ebp + 8]
call dword [eax + 0x10]
push 1
push 0x1e
lea eax, [ebp - 0xb8]
push eax
mov ecx, dword [ebp + 8]
call fcn.00522bd1
movzx eax, byte [ebp - 0xf]
test eax, eax
jne 0x509ce4
cmp dword [ebp - 0x98], 0
je 0x509ce4
cmp dword [ebp - 0xbc], 0
je 0x509ce4
movzx eax, byte [ebp - 0xd]
test eax, eax
jne 0x509ce4
push dword [ebp - 0x98]
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov ecx, dword [ebp + 8]
call dword [eax + 0x10]
mov dword [ebp - 0x434], 0xab39f277
push 1
push 4
lea eax, [ebp - 0x434]
push eax
mov ecx, dword [ebp + 8]
call fcn.00522bd1
and dword [ebp - 0x43c], 0
push 1
push 4
lea eax, [ebp - 0x43c]
push eax
mov ecx, dword [ebp + 8]
call fcn.00522bd1
push 1
push 4
lea eax, [ebp - 0xbc]
push eax
mov ecx, dword [ebp + 8]
call fcn.00522bd1
mov eax, dword [ebp - 0x458]
mov ecx, dword [eax + 0x1c]
call fcn.00503038
mov dword [ebp - 0x438], eax
push 1
push 4
lea eax, [ebp - 0x438]
push eax
mov ecx, dword [ebp + 8]
call fcn.00522bd1
and dword [ebp - 0x430], 0
push 1
push 4
lea eax, [ebp - 0x430]
push eax
mov ecx, dword [ebp + 8]
call fcn.00522bd1
push dword [ebp - 0x2f8]
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov ecx, dword [ebp + 8]
call dword [eax + 0x10]
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x314]
call fcn.004ce1b7
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x42c]
call fcn.00529e40
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x3fc]
call fcn.00531a71
push 1
mov ecx, dword [ebp - 0x458]
call fcn.005074b7
mov al, byte [ebp - 0x93]
mov byte [ebp - 0x454], al
and byte [ebp - 4], 0
lea ecx, [ebp - 0x8c]
call fcn.004ce1b7
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x6c]
call fcn.0052d69f
mov al, byte [ebp - 0x454]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0xc0]
xor ecx, dword [ebp + 4]
call fcn.0058cc82
leave
ret 0x24