Function at 0x438360
Capabilities:
Delete file

Disassembly:
push 0xffffffffffffffff
push 0x48a1b4
mov eax, dword fs:[0]
push eax
sub esp, 0x248
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4bdbb0]
xor eax, esp
push eax
lea eax, [esp + 0x25c]
mov dword fs:[0], eax
xor edi, edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x14], edi
call fcn.00449852
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x4383b1
push 0x80004005
call fcn.004108b0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov dword [esp + 0x264], edi
call fcn.00439670
mov ebp, dword [esp + 0x270]
push ebp
call fcn.00431920
add esp, 4
test eax, eax
jne 0x43847f
push ebp
call fcn.00431c70
add esp, 4
test al, al
jne 0x43847f
push ebp
lea ecx, [esp + 0x18]
call fcn.00411f40
mov ecx, dword [esp + 0x14]
push ecx
lea edx, [esp + 0x1c]
push str._r_nDisengageODMFileContent_1:_s_is_not_a_directory_and_CreateMultiDirecrory_false_r_n
push edx
mov byte [esp + 0x270], 1
call fcn.004135e0
mov esi, dword [esp + 0x24]
push esi
call fcn.00427230
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
add esp, 0x10
mov byte [esp + 0x264], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x438451
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [esi - 0x10]
mov dword [esp + 0x264], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x438478
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
jmp 0x438711
lea ecx, [esp + 0x1c]
call fcn.0041f1a0
mov byte [esp + 0x264], 2
mov dword [esp + 0x38], 1
mov dword [esp + 0x3c], 0x64
xor esi, esi
push 0x216
lea ecx, [esp + 0x48]
push edi
push ecx
call fcn.00463850
mov edx, dword [esp + esi*4 + 0x44]
add esp, 0xc
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x20]
mov dword [esp + 0x48], edx
call fcn.004361c0
inc esi
cmp esi, 2
jb 0x4384a2
mov edi, dword [esp + 0x26c]
mov esi, dword [esp + 0x280]
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x20]
push edx
push edi
push esi
call fcn.00435330
add esp, 0x10
test eax, eax
jne 0x43872b
push ebp
lea ecx, [esp + 0x18]
call fcn.00411f40
mov eax, dword [esp + 0x14]
push eax
mov byte [esp + 0x268], 3
push str._r_nDisengageODMFileContent_2_getODMHeaderSegment_false:_s__r_n
lea ecx, [esp + 0x20]
push ecx
call fcn.004135e0
mov edx, dword [esp + 0x24]
push edx
call fcn.00427230
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
add esp, 0x10
mov byte [esp + 0x264], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x438556
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov edx, esi
sub edx, ecx
mov eax, 0x7aba01eb
imul edx
sar edx, 8
mov eax, edx
shr eax, 0x1f
xor edi, edi
add eax, edx
je 0x438658
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
xor ebp, ebp
cmp edi, eax
jb 0x438594
call fcn.00465d0f
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
cmp dword [ecx + ebp + 4], 0
je 0x4385d0
sub esi, ecx
mov eax, 0x7aba01eb
imul esi
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x4385bb
call fcn.00465d0f
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx + ebp + 4]
push ecx
call fcn.00463c35
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
add esp, 4
sub esi, ecx
mov eax, 0x7aba01eb
imul esi
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x4385f0
call fcn.00465d0f
mov ecx, dword [esp + 0x28]
lea ecx, [ecx + ebp + 0xc]
push ecx
call ebx
test eax, eax
je 0x43862c
mov ecx, dword [esp + 0x2c]
sub ecx, dword [esp + 0x28]
mov eax, 0x7aba01eb
imul ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x43861d
call fcn.00465d0f
mov ecx, dword [esp + 0x28]
lea edx, [ecx + ebp + 0xc]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov edx, esi
sub edx, ecx
mov eax, 0x7aba01eb
imul edx
sar edx, 8
mov eax, edx
shr eax, 0x1f
inc edi
add eax, edx
add ebp, 0x216
cmp edi, eax
jb 0x438594
mov eax, dword [esp + 0x270]
push eax
lea ecx, [esp + 0x38]
call fcn.00411f40
mov ecx, dword [esp + 0x34]
push ecx
lea edx, [esp + 0x1c]
push str._r_nDisengageODMFileContent_10_bRetVal_TRUE:_s__r_n
push edx
mov byte [esp + 0x270], 0xb
call fcn.004135e0
mov esi, dword [esp + 0x24]
push esi
call fcn.00427230
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
add esp, 0x10
mov byte [esp + 0x264], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4386ba
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x28]
xor edi, edi
cmp eax, edi
je 0x4386cd
push eax
call fcn.00440d2e
add esp, 4
mov ecx, dword [esp + 0x1c]
push ecx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
call fcn.00440d2e
lea eax, [esi - 0x10]
add esp, 4
mov dword [esp + 0x264], 0xffffffff
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43870d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x25c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x254
ret
mov ebx, dword [esp + 0x14]
test ebx, ebx
jne 0x438763
push ebp
lea ecx, [esp + 0x18]
call fcn.00411f40
mov ecx, dword [esp + 0x14]
push ecx
lea edx, [esp + 0x1c]
push str._r_nDisengageODMFileContent_3_pODMHeader_is_NULL:_s__r_n
push edx
mov byte [esp + 0x270], 4
call fcn.004135e0
mov eax, dword [esp + 0x24]
push eax
jmp 0x438526
mov eax, dword [esp + 0x278]
mov ecx, dword [esp + 0x274]
test esi, esi
jne 0x4387b1
push eax
push ecx
lea ecx, [ebx + 0x1e4]
push ecx
lea edx, [esp + 0x28]
push edx
push edi
call fcn.004323e0
add esp, 0x14
test eax, eax
jne 0x4387f2
push ebp
lea ecx, [esp + 0x18]
call fcn.00411f40
mov eax, dword [esp + 0x14]
push eax
mov byte [esp + 0x268], 5
push str._r_nDisengageODMFileContent_4_LoadODMFileContentRes_false:_s__r_n
jmp 0x438517
cmp esi, 1
jne 0x4387f2
push eax
push ecx
lea ecx, [ebx + 0x1e4]
push ecx
lea edx, [esp + 0x28]
push edx
push edi
call fcn.00432d60
add esp, 0x14
test al, al
jne 0x4387f2
push ebp
lea ecx, [esp + 0x18]
call fcn.00411f40
mov eax, dword [esp + 0x14]
push eax
mov byte [esp + 0x268], 6
push str._r_nDisengageODMFileContent_5_ReadODMFileContent_false:_s__r_n
jmp 0x438517
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov edx, esi
sub edx, ecx
mov eax, 0x7aba01eb
imul edx
sar edx, 8
mov eax, edx
shr eax, 0x1f
xor edi, edi
add eax, edx
je 0x438917
xor ebp, ebp
cmp edi, eax
jb 0x43882a
call fcn.00465d0f
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
cmp dword [ecx + ebp], 1
je 0x4388f3
mov edx, esi
sub edx, ecx
mov eax, 0x7aba01eb
imul edx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x43885a
call fcn.00465d0f
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
cmp dword [ecx + ebp], 0x64
je 0x4388f3
mov edx, esi
sub edx, ecx
mov eax, 0x7aba01eb
imul edx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x43888a
call fcn.00465d0f
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
cmp dword [ecx + ebp + 4], 0
je 0x4388f3
mov edx, esi
sub edx, ecx
mov eax, 0x7aba01eb
imul edx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x4388b7
call fcn.00465d0f
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
cmp dword [ecx + ebp + 8], 0
je 0x4388f3
push 0x20
lea ecx, [ebx + 0x1e4]
push ecx
push edi
lea ecx, [esp + 0x28]
call fcn.00432270
mov edx, dword [eax + 8]
push edx
push edi
lea ecx, [esp + 0x2c]
call fcn.00432270
mov eax, dword [eax + 4]
push eax
call fcn.0043a950
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
add esp, 0x10
mov edx, esi
sub edx, ecx
mov eax, 0x7aba01eb
imul edx
sar edx, 8
mov eax, edx
shr eax, 0x1f
inc edi
add eax, edx
add ebp, 0x216
cmp edi, eax
jb 0x43882a
mov edx, esi
sub edx, ecx
mov eax, 0x7aba01eb
imul edx
sar edx, 8
mov eax, edx
shr eax, 0x1f
xor edi, edi
add eax, edx
je 0x438b4b
mov ebx, dword [esp + 0x274]
xor ebp, ebp
cmp edi, eax
jb 0x43894e
call fcn.00465d0f
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
cmp dword [ecx + ebp], 0x64
jne 0x438b27
mov edx, esi
sub edx, ecx
mov eax, 0x7aba01eb
imul edx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x43897e
call fcn.00465d0f
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
cmp dword [ecx + ebp + 4], 0
je 0x438ab8
mov edx, esi
sub edx, ecx
mov eax, 0x7aba01eb
imul edx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x4389af
call fcn.00465d0f
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
cmp dword [ecx + ebp + 8], 0
je 0x438ab8
mov edx, esi
sub edx, ecx
mov eax, 0x7aba01eb
imul edx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x4389e0
call fcn.00465d0f
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
sub esi, ecx
mov eax, 0x7aba01eb
imul esi
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ebx, [ecx + ebp]
cmp edi, eax
jb 0x438a03
call fcn.00465d0f
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x27c]
mov eax, dword [esp + 0x278]
mov esi, dword [esp + 0x274]
mov ecx, dword [ecx + ebp + 4]
push edx
mov edx, dword [esp + 0x274]
push eax
mov eax, dword [ebx + 8]
push esi
push edx
push eax
push ecx
call fcn.0042d3d0
add esp, 0x18
test eax, eax
je 0x438b58
test esi, esi
je 0x438b18
mov edx, dword [esp + 0x278]
push edx
push 0
push 0
call esi
add esp, 0xc
test al, al
jne 0x438b18
mov ecx, dword [esp + 0x270]
push ecx
lea ecx, [esp + 0x18]
call fcn.00411f40
mov edx, dword [esp + 0x14]
push edx
mov byte [esp + 0x268], 8
push str._r_nDisengageODMFileContent_7_pProgressCallback_0_0_pProgressData__is_NULL:_s__r_n
lea eax, [esp + 0x20]
push eax
call fcn.004135e0
mov ecx, dword [esp + 0x24]
push ecx
call fcn.00427230
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0x274], 2
add esp, 0x10
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x43854a
sub esi, ecx
mov eax, 0x7aba01eb
imul esi
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x438ad8
call fcn.00465d0f
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x27c]
mov esi, dword [esp + 0x278]
mov eax, dword [esp + 0x270]
push edx
push esi
push ebx
push eax
lea ecx, [ecx + ebp + 0xc]
push ecx
call fcn.0042d2e0
add esp, 0x14
test eax, eax
je 0x438b80
test ebx, ebx
je 0x438b18
push esi
push 0
push 0
call ebx
add esp, 0xc
test al, al
je 0x438ba8
mov ebx, dword [esp + 0x274]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
mov edx, esi
sub edx, ecx
mov eax, 0x7aba01eb
imul edx
sar edx, 8
mov eax, edx
shr eax, 0x1f
inc edi
add eax, edx
add ebp, 0x216
cmp edi, eax
jb 0x43894e
mov dword [esp + 0x40], 1
jmp 0x43855e
mov edx, dword [esp + 0x270]
push edx
lea ecx, [esp + 0x18]
call fcn.00411f40
mov eax, dword [esp + 0x14]
push eax
mov byte [esp + 0x268], 7
push str._r_nDisengageODMFileContent_6_UncompressODMFileFormMemory_false:_s__r_n
jmp 0x438517
mov ecx, dword [esp + 0x270]
push ecx
lea ecx, [esp + 0x18]
call fcn.00411f40
mov edx, dword [esp + 0x14]
push edx
mov byte [esp + 0x268], 9
push str._r_nDisengageODMFileContent_8_UncompressODMFile_false:_s__r_n
jmp 0x438a80
mov ecx, dword [esp + 0x270]
push ecx
lea ecx, [esp + 0x3c]
call fcn.00411f40
mov edx, dword [esp + 0x38]
push edx
lea eax, [esp + 0x1c]
push str._r_nDisengageODMFileContent_9_pProgressCallback_0_0_pProgressData__is_NULL_:_s__r_n
push eax
mov byte [esp + 0x270], 0xa
call fcn.004135e0
mov ecx, dword [esp + 0x24]
push ecx
call fcn.00427230
mov eax, dword [esp + 0x48]
jmp 0x438a98