Function at 0x10039d4
Capabilities:
Check if file exists

Disassembly:
push 0xe0
mov eax, 0x1019cb8
call fcn.01014600
mov ebx, ecx
mov dword [ebp - 0x9c], ebx
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0xb0], eax
xor esi, esi
mov dword [ebp - 0x94], esi
push 0x7c
push esi
lea eax, [ebp - 0x90]
push eax
call sub.msvcrt.dll_memset
mov dword [ebp - 0xa4], esi
mov dword [ebp - 0xa8], esi
mov dword [ebp - 0xac], esi
mov dword [ebp - 0xa0], esi
mov esi, dword [ebx + 0x64]
neg esi
sbb esi, esi
and esi, 0xfffffffd
add esi, 0xc
mov dword [ebp - 0xb4], esi
xor ecx, ecx
mov eax, esi
push 0x50
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call sub.msvcrt.dll_void____cdecl_operator_new___unsigned_int_
add esp, 0x10
mov edi, eax
mov dword [ebp - 0x98], edi
test edi, edi
jne 0x1003a7e
push 0x8007000e
call dword [sym.imp.KERNEL32.dll_SetLastError]
call fcn.01014cc4
xor eax, eax
call fcn.0101466b
ret 0xc
and dword [ebp - 4], 0
lea ecx, [ebx + 0x24]
mov esi, 0xfe
push esi
call sub.framedynos.dll_public:_unsigned_short_int____thiscall_CHString::GetBufferSetLength_int_
mov dword [ebp - 0xc4], eax
lea ecx, [ebx + 0x1c]
push esi
call sub.framedynos.dll_public:_unsigned_short_int____thiscall_CHString::GetBufferSetLength_int_
mov dword [ebp - 0xbc], eax
lea ecx, [ebx + 0x20]
push esi
call sub.framedynos.dll_public:_unsigned_short_int____thiscall_CHString::GetBufferSetLength_int_
mov dword [ebp - 0xc8], eax
lea ecx, [ebx + 0x2c]
push 0x100
call sub.framedynos.dll_public:_unsigned_short_int____thiscall_CHString::GetBufferSetLength_int_
mov dword [ebp - 0xb8], eax
push esi
push 0x1001440
push dword [ebp - 0xbc]
call fcn.0101570a
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0xb4]
imul eax, eax, 0x50
mov ecx, edi
test eax, eax
je 0x1003af2
mov byte [ecx], 0
inc ecx
dec eax
jne 0x1003aeb
xor esi, esi
inc esi
mov dword [edi + 0x18], esi
mov dword [edi + 0x10], 0x20000
and dword [edi + 0x14], 0
mov dword [edi + 8], 0xa
lea eax, [ebx + 0x70]
mov dword [edi + 0x2c], eax
mov dword [edi + 0x20], 0x100143c
push 8
mov ebx, 0x1001434
push ebx
push edi
call fcn.010156c7
lea eax, [edi + 0x50]
mov dword [eax + 0x18], esi
mov ecx, dword [ebp - 0xc4]
mov dword [eax + 0x2c], ecx
mov dword [eax + 8], esi
mov dword [eax + 0x10], 0x2000
and dword [eax + 0x14], 0
push 8
push ebx
push eax
call fcn.010156c7
mov dword [edi + 0x70], 0x1001430
mov dword [edi + 0x80], 0xfe
lea eax, [edi + 0xa0]
mov dword [eax + 0x18], esi
xor ecx, ecx
mov dword [eax + 0x1c], ecx
mov dword [eax + 8], esi
mov dword [eax + 0x10], 0x12000
mov dword [eax + 0x14], ecx
mov dword [eax + 0x2c], ecx
mov dword [eax + 0x34], ecx
mov dword [eax + 0x38], ecx
mov dword [eax + 0x20], 0x100142c
push 8
push ebx
push eax
call fcn.010156c7
lea eax, [edi + 0xf0]
mov dword [eax + 0x18], esi
mov dword [eax + 8], esi
mov dword [eax + 0x10], 0x10
and dword [eax + 0x14], 0
mov ecx, dword [ebp - 0xbc]
mov dword [eax + 0x2c], ecx
mov dword [eax + 0x20], 0x1001428
mov dword [eax + 0x30], 0xfe
push 8
push ebx
push eax
call fcn.010156c7
lea eax, [edi + 0x140]
mov dword [eax + 0x18], esi
mov dword [eax + 8], 0xa
mov ecx, dword [ebp - 0x9c]
add ecx, 0x34
mov dword [eax + 0x2c], ecx
mov dword [eax + 0x20], 0x1001424
push 8
push ebx
push eax
call fcn.010156c7
lea eax, [edi + 0x190]
mov dword [eax + 0x18], esi
mov dword [eax + 8], 0xa
mov ecx, dword [ebp - 0x9c]
add ecx, 0x38
mov dword [eax + 0x2c], ecx
mov dword [eax + 0x20], 0x1001420
push 8
push ebx
push eax
call fcn.010156c7
lea eax, [edi + 0x1e0]
mov dword [eax + 0x18], esi
mov dword [eax + 8], esi
mov dword [eax + 0x10], 0x2000
and dword [eax + 0x14], 0
mov ecx, dword [ebp - 0xc8]
mov dword [eax + 0x2c], ecx
mov dword [eax + 0x30], 0xfe
mov dword [eax + 0x20], 0x1001414
push 8
push ebx
push eax
call fcn.010156c7
lea eax, [edi + 0x230]
mov dword [eax + 0x18], esi
and dword [eax + 0x1c], 0
mov dword [eax + 8], esi
mov dword [eax + 0x10], 0x2002
and dword [eax + 0x14], 0
lea ecx, [ebp - 0x94]
mov dword [eax + 0x2c], ecx
mov dword [eax + 0x30], 0xfe
mov dword [eax + 0x28], 0x10013f8
mov dword [eax + 0x20], 0x10013ec
push 8
push ebx
push eax
call fcn.010156c7
lea eax, [edi + 0x280]
mov dword [eax + 0x18], esi
mov dword [eax + 8], 0xa
lea ecx, [ebp - 0xa0]
mov dword [eax + 0x2c], ecx
mov dword [eax + 0x20], 0x10013e8
push 8
push ebx
push eax
call fcn.010156c7
mov eax, dword [ebp - 0x9c]
cmp dword [eax + 0x64], 0
jne 0x1003d80
lea eax, [edi + 0x2d0]
mov dword [eax + 0x18], esi
mov dword [eax + 8], esi
mov dword [eax + 0x10], 0x2000
and dword [eax + 0x14], 0
mov ecx, dword [ebp - 0xb8]
mov dword [eax + 0x2c], ecx
mov dword [eax + 0x30], 0x100
mov dword [eax + 0x20], 0x10013e4
push 8
push ebx
push eax
call fcn.010156c7
lea eax, [edi + 0x2d0]
mov dword [ebp - 0xa4], eax
lea eax, [edi + 0x320]
mov dword [eax + 0x18], esi
mov dword [eax + 8], esi
mov dword [eax + 0x10], 0x2000
and dword [eax + 0x14], 0
mov ecx, dword [ebp - 0xb8]
mov dword [eax + 0x2c], ecx
mov dword [eax + 0x30], 0x100
mov dword [eax + 0x20], 0x10013e0
push 8
push ebx
push eax
call fcn.010156c7
lea eax, [edi + 0x320]
mov dword [ebp - 0xa8], eax
lea eax, [edi + 0x370]
mov dword [eax + 0x18], esi
mov dword [eax + 8], 0xa
lea ecx, [ebp - 0xac]
mov dword [eax + 0x2c], ecx
mov dword [eax + 0x20], 0x10013dc
push 8
push ebx
push eax
call fcn.010156c7
push 0
push edi
push dword [ebp - 0xb4]
push 0xffffffffffffffff
push dword [ebp - 0xc0]
push dword [ebp + 8]
call fcn.010180e3
test eax, eax
jne 0x1003da9
push edi
call sub.msvcrt.dll_void___cdecl_operator_delete___void__
pop ecx
jmp 0x1003a74
mov ebx, dword [ebp - 0x9c]
lea ecx, [ebx + 0x18]
push dword [edi + 0xcc]
call sub.framedynos.dll_public:_class_CHString_const____thiscall_CHString::operator_unsigned_short_int_const__
mov eax, dword [ebp - 0xb0]
mov dword [eax], esi
push 0xffffffffffffffff
lea ecx, [ebx + 0x24]
call sub.framedynos.dll_public:_void___thiscall_CHString::ReleaseBuffer_int_
push 0xffffffffffffffff
lea ecx, [ebx + 0x1c]
call sub.framedynos.dll_public:_void___thiscall_CHString::ReleaseBuffer_int_
push 0xffffffffffffffff
lea ecx, [ebx + 0x20]
call sub.framedynos.dll_public:_void___thiscall_CHString::ReleaseBuffer_int_
push 0xffffffffffffffff
lea ecx, [ebx + 0x2c]
call sub.framedynos.dll_public:_void___thiscall_CHString::ReleaseBuffer_int_
mov eax, dword [ebx + 0x70]
test eax, eax
je 0x1003e17
cmp dword [ebp + 8], 2
jbe 0x1003e17
push 0x57
call fcn.01017157
push eax
call fcn.01014c5d
xor esi, esi
push edi
call sub.msvcrt.dll_void___cdecl_operator_delete___void__
pop ecx
mov eax, esi
jmp 0x1003a76
cmp eax, esi
je 0x1003e09
push 0
push esi
push 0x10013d0
lea eax, [ebp - 0x94]
push eax
call fcn.01014f64
test eax, eax
jne 0x1003e38
mov dword [ebx + 0x3c], esi
jmp 0x1003e57
push 0
push esi
push 0x10013bc
lea eax, [ebp - 0x94]
push eax
call fcn.01014f64
test eax, eax
jne 0x1003e57
mov dword [ebx + 0x3c], 2
xor eax, eax
cmp dword [edi + 0x15c], eax
je 0x1003e6d
cmp dword [edi + 0x1ac], eax
je 0x1003e6d
push 0x5d
jmp 0x1003dfc
mov ecx, dword [edi + 0x6c]
cmp ecx, eax
jne 0x1003e83
cmp dword [edi + 0xbc], eax
je 0x1003e8b
push 0x51
jmp 0x1003dfc
cmp dword [edi + 0xbc], eax
jne 0x1003e9a
cmp dword [edi + 0x10c], eax
je 0x1003e9a
push 0x52
jmp 0x1003dfc
cmp ecx, eax
je 0x1003eb5
lea ecx, [ebx + 0x24]
call sub.framedynos.dll_protected:_struct_CHStringData____thiscall_CHString::GetData_void_const
cmp dword [eax + 4], 0
jne 0x1003eb3
push 0x55
jmp 0x1003dfc
xor eax, eax
cmp dword [edi + 0xbc], eax
je 0x1003ed4
lea ecx, [ebx + 0x18]
call sub.framedynos.dll_protected:_struct_CHStringData____thiscall_CHString::GetData_void_const
cmp dword [eax + 4], 0
jne 0x1003ed2
push 0x54
jmp 0x1003dfc
xor eax, eax
cmp dword [edi + 0x1fc], eax
je 0x1003ef3
lea ecx, [ebx + 0x20]
call sub.framedynos.dll_protected:_struct_CHStringData____thiscall_CHString::GetData_void_const
cmp dword [eax + 4], 0
jne 0x1003ef1
push 0x59
jmp 0x1003dfc
xor eax, eax
mov ecx, dword [ebx + 0x64]
mov dword [ebp - 0xb0], ecx
cmp ecx, eax
jne 0x1004056
mov ecx, dword [ebp - 0xa4]
mov ecx, dword [ecx + 0x1c]
cmp ecx, eax
jne 0x1003f20
mov edx, dword [ebp - 0xa8]
cmp dword [edx + 0x1c], eax
je 0x1004056
mov dword [ebp - 0x98], eax
cmp dword [edi + 0xbc], eax
jne 0x100404c
cmp dword [edi + 0x10c], eax
jne 0x100404c
cmp dword [ebp - 0xa0], eax
jne 0x100404c
cmp dword [edi + 0x15c], eax
jne 0x100404c
cmp dword [edi + 0x1ac], eax
jne 0x100404c
cmp ecx, eax
je 0x1003f7b
mov ecx, dword [ebp - 0xa8]
cmp dword [ecx + 0x1c], eax
je 0x1003f7b
push 0x1e7
jmp 0x1003dfc
lea eax, [ebp - 0x98]
push eax
push 0x7fffffff
push dword [ebx + 0x2c]
call fcn.0100396e
mov eax, dword [ebx + 0x2c]
mov ecx, dword [ebp - 0x98]
cmp word [eax + ecx*2 - 2], 0x5c
jne 0x1003faa
push 0x1e3
jmp 0x1003dfc
lea ecx, [ebp - 0xec]
push ecx
push 0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesExW]
test eax, eax
je 0x1003fdc
cmp dword [ebp - 0xac], 0
jne 0x1003fec
push 0xb7
call dword [sym.imp.KERNEL32.dll_SetLastError]
push 0x1e2
jmp 0x1003dfc
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x1003fec
cmp eax, 3
jne 0x1003fa0
cmp dword [edi + 0x1fc], 0
je 0x1004010
push 0x1001440
lea ecx, [ebx + 0x20]
call sub.framedynos.dll_public:_int___thiscall_CHString::Compare_unsigned_short_int_const__const
test eax, eax
jne 0x1004010
push 0x17f
jmp 0x1003dfc
xor eax, eax
mov ecx, dword [ebp - 0xa4]
cmp dword [ecx + 0x1c], eax
sete al
inc eax
mov dword [ebx + 0x60], eax
xor eax, eax
mov dword [ebx + 0x40], eax
cmp dword [edi + 0x10c], eax
je 0x10040c2
push 0x1001440
lea ecx, [ebx + 0x1c]
call sub.framedynos.dll_public:_int___thiscall_CHString::Compare_unsigned_short_int_const__const
test eax, eax
jne 0x10040b8
mov dword [ebx + 0x40], esi
jmp 0x10040da
push 0x1e1
jmp 0x1003dfc
cmp dword [ebp - 0xa0], eax
jne 0x1004024
cmp dword [edi + 0x15c], eax
jne 0x1004024
cmp dword [edi + 0x1ac], eax
jne 0x1004024
cmp dword [ebp - 0xac], eax
je 0x1004080
push 0x1e8
jmp 0x1003dfc
cmp dword [ebx + 0x3c], eax
jne 0x100409c
cmp dword [edi + 0x1fc], eax
jne 0x100409c
cmp dword [edi + 0x6c], eax
jne 0x100409c
push 0x1e5
jmp 0x1003dfc
cmp dword [ebp - 0xb0], eax
je 0x10040ae
push 0x1ea
jmp 0x1003dfc
push 0x1e9
jmp 0x1003dfc
xor eax, eax
cmp dword [edi + 0x10c], eax
jne 0x10040dc
cmp dword [edi + 0x6c], eax
jne 0x10040cf
cmp dword [edi + 0xbc], eax
je 0x10040dc
mov dword [ebx + 0x40], esi
lea ecx, [ebx + 0x1c]
call sub.framedynos.dll_public:_void___thiscall_CHString::Empty_void_
xor eax, eax
cmp dword [edi + 0x6c], eax
jne 0x1003e09
mov dword [ebx + 0x44], esi
jmp 0x1003e09