Function at 0x437030
Capabilities:
Delete file
Print debug messages

Disassembly:
push 0xffffffffffffffff
push 0x4a0c81
mov eax, dword fs:[0]
push eax
sub esp, 0x474
mov eax, dword [0x4c84d4]
xor eax, esp
mov dword [esp + 0x470], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4c84d4]
xor eax, esp
push eax
lea eax, [esp + 0x488]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x498]
mov edi, ecx
cmp dword [edi + 0xb8], 0
mov dword [esp + 0x1c], edi
jne 0x437454
mov esi, dword [ebp + 4]
cmp esi, dword [ebp + 8]
jbe 0x437092
call fcn.0047ecbf
mov ebx, dword [ebp + 8]
cmp dword [ebp + 4], ebx
jbe 0x43709f
call fcn.0047ecbf
test ebp, ebp
je 0x4370a7
cmp ebp, ebp
je 0x4370ac
call fcn.0047ecbf
cmp esi, ebx
je 0x4371d1
test ebp, ebp
jne 0x4370bd
call fcn.0047ecbf
cmp esi, dword [ebp + 8]
jb 0x4370c7
call fcn.0047ecbf
mov ebx, dword [esp + 0x49c]
cmp dword [esi], ebx
je 0x4370e1
cmp esi, dword [ebp + 8]
jb 0x4370dc
call fcn.0047ecbf
add esi, 4
jmp 0x437092
mov eax, dword [ebp + 8]
lea ecx, [esi + 4]
sub eax, ecx
sar eax, 2
test eax, eax
jle 0x437100
add eax, eax
add eax, eax
push eax
push ecx
push eax
push esi
call fcn.0047da54
add esp, 0x10
add dword [ebp + 8], 0xfffffffc
cmp dword [edi + 0xb0], 0
je 0x4371d1
mov dword [esp + 0x18], ebx
lea esi, [edi + 0xf4]
lea ebx, [esp + 0x18]
lea eax, [esp + 0x20]
call fcn.00439da0
mov edi, dword [esp + 0x20]
test edi, edi
mov ebx, dword [esi + 4]
je 0x437137
cmp edi, esi
je 0x43713c
call fcn.0047ecbf
cmp dword [esp + 0x24], ebx
je 0x4371cd
test edi, edi
jne 0x43714f
call fcn.0047ecbf
mov eax, dword [esp + 0x24]
cmp eax, dword [edi + 4]
jne 0x43715d
call fcn.0047ecbf
mov eax, dword [esp + 0x1c]
mov ebx, 0x10
cmp dword [eax + 0x168], ebx
jb 0x437176
mov eax, dword [eax + 0x154]
jmp 0x43717b
add eax, 0x154
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0xc]
push edx
push eax
push str._s_d
lea ecx, [esp + 0x58]
call fcn.0044a470
add esp, 0xc
cmp dword [eax + 0x18], ebx
jb 0x43719f
mov eax, dword [eax + 4]
jmp 0x4371a2
add eax, 4
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp dword [esp + 0x64], ebx
jb 0x4371bc
mov eax, dword [esp + 0x50]
push eax
call fcn.00460054
add esp, 4
mov ecx, dword [esp + 0x24]
push ecx
push edi
lea edx, [esp + 0x28]
push edx
push esi
call fcn.00410e40
mov edi, dword [esp + 0x1c]
mov ecx, dword [ebp + 4]
test ecx, ecx
mov esi, dword [esp + 0x49c]
mov dword [esp + 0x18], esi
jne 0x4371e7
xor edx, edx
jmp 0x4371ef
mov edx, dword [ebp + 8]
sub edx, ecx
sar edx, 2
test ecx, ecx
je 0x43720c
mov eax, dword [ebp + 0xc]
sub eax, ecx
sar eax, 2
cmp edx, eax
jae 0x43720c
mov eax, dword [ebp + 8]
mov dword [eax], esi
add eax, 4
mov dword [ebp + 8], eax
jmp 0x43722b
mov esi, dword [ebp + 8]
cmp ecx, esi
jbe 0x437218
call fcn.0047ecbf
push esi
push ebp
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x2c]
push ecx
mov eax, ebp
call fcn.00404b30
movzx edx, word [edi + 0x8c]
test dx, dx
je 0x43728d
mov ecx, dword [ebp + 4]
test ecx, ecx
jne 0x437242
xor eax, eax
jmp 0x43724a
mov eax, dword [ebp + 8]
sub eax, ecx
sar eax, 2
movzx edx, dx
cmp eax, edx
jbe 0x43728d
mov esi, dword [edi + 0x104]
cmp esi, dword [edi + 0x108]
jbe 0x437264
call fcn.0047ecbf
mov eax, dword [edi + 0x108]
lea ecx, [esi + 4]
sub eax, ecx
sar eax, 2
test eax, eax
jle 0x437286
add eax, eax
add eax, eax
push eax
push ecx
push eax
push esi
call fcn.0047da54
add esp, 0x10
add dword [edi + 0x108], 0xfffffffc
mov ecx, dword [ebp + 4]
xor edx, edx
cmp ecx, edx
jne 0x43729a
xor eax, eax
jmp 0x4372a2
mov eax, dword [ebp + 8]
sub eax, ecx
sar eax, 2
lea ebx, [eax*4]
cmp ebx, edx
jne 0x4372bf
push str.error_
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor eax, eax
jmp 0x437459
cmp dword [edi + 0xa4], edx
je 0x437454
mov dword [esp + 0x80], 0xf
mov dword [esp + 0x7c], edx
mov byte [esp + 0x6c], 0
cmp ebx, edx
mov dword [esp + 0x490], edx
ja 0x4372f8
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x70]
call fcn.004080f0
jmp 0x437308
push edx
mov eax, ebx
lea edi, [esp + 0x6c]
call fcn.00404e20
mov edi, dword [esp + 0x1c]
mov eax, dword [ebp + 4]
test eax, eax
je 0x437319
mov ecx, dword [ebp + 8]
sub ecx, eax
sar ecx, 2
jne 0x43731e
call fcn.0047ecbf
mov eax, dword [esp + 0x6c]
mov esi, 0x10
cmp dword [esp + 0x80], esi
jae 0x437334
lea eax, [esp + 0x6c]
mov edx, dword [ebp + 4]
mov ecx, dword [esp + 0x7c]
push ebx
push edx
push ecx
push eax
call fcn.0047daaf
add esp, 0x10
lea ecx, [esp + 0x28]
call fcn.0046ef4f
mov byte [esp + 0x490], 1
cmp dword [edi + 0x184], esi
push 0
jb 0x43736a
mov eax, dword [edi + 0x170]
jmp 0x437370
lea eax, [edi + 0x170]
sub esp, 0x1c
mov esi, esp
mov dword [esp + 0x38], esp
push eax
call fcn.00443e30
add esp, 4
call fcn.00444050
add esp, 0x20
push 0
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0x44]
call fcn.00424880
mov esi, 0x10
mov byte [esp + 0x490], 2
cmp dword [edi + 0x184], esi
jb 0x4373b6
mov eax, dword [edi + 0x170]
jmp 0x4373bc
lea eax, [edi + 0x170]
lea edx, [esp + 0x38]
push edx
push 0x3001
push eax
lea ecx, [esp + 0x34]
call fcn.0046f334
test eax, eax
je 0x437483
cmp dword [esp + 0x80], esi
mov eax, dword [esp + 0x6c]
jae 0x4373e9
lea eax, [esp + 0x6c]
push ebx
push eax
lea ecx, [esp + 0x30]
call fcn.0046ec9d
lea ecx, [esp + 0x28]
call fcn.0046eeed
mov byte [esp + 0x490], 1
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
mov dword [esp + 0x38], vtable.CFileException.0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43742d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x490], 0
call fcn.0046f023
cmp dword [esp + 0x80], esi
jb 0x437454
mov ecx, dword [esp + 0x6c]
push ecx
call fcn.00460054
add esp, 4
mov eax, 1
mov ecx, dword [esp + 0x488]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x470]
xor ecx, esp
call fcn.0047d992
add esp, 0x480
ret 8
push 0
push 0x400
lea edx, [esp + 0x8c]
push edx
lea ecx, [esp + 0x44]
call fcn.00470289
mov byte [esp + 0x490], 1
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
mov dword [esp + 0x38], vtable.CFileException.0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4374cb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x490], 0
call fcn.0046f023
cmp dword [esp + 0x80], esi
jb 0x4374f2
mov ecx, dword [esp + 0x6c]
push ecx
call fcn.00460054
add esp, 4
xor eax, eax
jmp 0x437459