Function at 0x57c200
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5d2fe5
mov eax, dword fs:[0]
push eax
sub esp, 0x1cc
mov eax, dword [0x638fe4]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, dword [ebp + 0x10]
lea esi, [ebp - 0x18c]
mov eax, dword [ebp + 0x28]
mov ecx, 9
mov dword [ebp - 4], 0
mov edi, 0x639944
mov dword [ebp - 0x174], 0
xor edx, edx
mov dword [ebp - 0x18c], 0
mov dword [ebp - 0x188], 0
mov byte [ebp - 0x184], 0
mov dword [ebp - 0x180], 0
mov dword [ebp - 0x17c], 0
mov dword [ebp - 0x178], 0xb
mov dword [ebp - 0x170], 0
mov dword [ebp - 0x16c], 0
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp + 0x14]
xor esi, esi
mov dword [ebp - 0x138], ebx
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0x1b0], 0x644170
mov byte [ebp - 0xee], 1
mov byte [ebp - 0xed], 0
mov dword [ebp - 0x104], 0x4b00
test edi, edi
jle 0x57c314
lea ecx, [ebx + 0x14]
mov ebx, edi
mov eax, dword [ecx]
cmp dword [ebp - 0x104], eax
jl 0x57c2f5
mov dword [ebp - 0x104], eax
cmp esi, eax
jg 0x57c2fb
mov esi, eax
mov eax, dword [ecx - 0x10]
cmp edx, eax
jg 0x57c304
mov edx, eax
add ecx, 0x90
sub ebx, 1
jne 0x57c2e5
cmp esi, 0x4b
jge 0x57c319
mov esi, 0x4b
dec edx
mov dword [ebp - 0x104], esi
mov dword [ebp - 0xec], 8
mov ebx, 3
cmp edx, 0x2f
ja case.0x57c33b.2
movzx eax, byte [edx + 0x57d2b8]
jmp dword [eax*4 + 0x57d2a0]
mov ebx, 1
mov dword [ebp - 0xec], ebx
jmp case.0x57c33b.2
mov ebx, 1
mov dword [ebp - 0xec], 8
jmp case.0x57c33b.2
mov ebx, 1
mov dword [ebp - 0xec], 0x10
mov ecx, dword [ebp + 0x18]
mov eax, 0x1b4e81b5
imul ecx, esi
imul ecx
mov ecx, dword [ebp + 0x1c]
sar edx, 6
mov eax, edx
imul ecx, esi
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x148], eax
mov eax, 0x1b4e81b5
imul ecx
mov ecx, dword [ebp + 0x20]
sar edx, 6
mov eax, edx
imul ecx, esi
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x144], eax
mov eax, 0x1b4e81b5
imul ecx
mov ecx, dword [ebp + 0x24]
sar edx, 6
mov eax, edx
imul ecx, esi
mov esi, dword [ebp + 0xc]
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x134], eax
mov eax, 0x1b4e81b5
imul ecx
push esi
sar edx, 6
mov eax, edx
push 2
shr eax, 0x1f
push ecx
add eax, edx
push 0
mov dword [ebp - 0x130], eax
call fcn.005832c0
test al, al
jne 0x57c410
push 0x62e4b0
lea eax, [ebp - 0x190]
mov dword [ebp - 0x190], 0xbda
push eax
call fcn.005479aa
lea eax, [ebp - 0x100]
mov dword [ebp - 0x100], 0
push eax
call dword [sym.imp.SUCMLIB.dll_Ordinal_80]
mov ecx, dword [0x643bcc]
test ecx, ecx
je 0x57c450
xor eax, eax
cmp esi, 0x9fbf1
push 1
push dword [ebp - 0x100]
setne al
dec eax
and eax, 4
push dword [eax + 0x644028]
call ecx
mov ecx, dword [ebp - 0x100]
mov eax, dword [ecx]
call dword [eax + 8]
mov edx, eax
lea ecx, [ebp - 0x140]
call fcn.005b0d00
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x100]
push dword [0x6441e4]
mov eax, dword [ecx]
call dword [eax + 0xb4]
mov ecx, dword [ebp - 0x100]
push dword [0x6441e8]
mov eax, dword [ecx]
call dword [eax + 0xb8]
mov eax, dword [ebp - 0xf8]
mov eax, dword [eax]
mov ecx, dword [eax - 0x10]
lea esi, [eax - 0x10]
mov dword [ebp - 0x128], eax
mov eax, dword [ecx]
cmp eax, vtable.ATL::CAtlStringMgr.0
je 0x57c4b6
call dword [eax + 0x10]
mov ecx, eax
cmp dword [esi + 0xc], 0
lea eax, [esi + 0xc]
jl 0x57c4c8
cmp ecx, dword [esi]
jne 0x57c4c8
lock inc dword [eax]
jmp 0x57c511
lea eax, [esi + 4]
push 2
push dword [eax]
mov dword [ebp - 0xf8], eax
mov eax, dword [ecx]
call dword [eax]
mov esi, eax
test esi, esi
jne 0x57c4e4
call fcn.00402e60
mov edx, dword [ebp - 0xf8]
lea ecx, [esi + 0x10]
mov eax, dword [edx]
mov dword [esi + 4], eax
mov edx, dword [edx]
lea eax, [edx*2 + 2]
push eax
push dword [ebp - 0x128]
lea edx, [edx*2 + 2]
call fcn.0056c4f0
add esp, 8
add esi, 0x10
mov dword [ebp - 0x110], esi
mov byte [ebp - 4], 2
mov ecx, 1
mov eax, dword [esi - 8]
sub ecx, dword [esi - 4]
sub eax, 0x104
or eax, ecx
jge 0x57c548
push 0x104
lea ecx, [ebp - 0x110]
call fcn.00402cf0
mov esi, dword [ebp - 0x110]
push esi
call dword [sym.imp.SHLWAPI.dll_PathRemoveExtensionW]
push dword [esi - 8]
push esi
call fcn.0054c667
add esp, 8
test eax, eax
js 0x57d233
cmp eax, dword [esi - 8]
jg 0x57d233
mov dword [esi - 0xc], eax
xor ecx, ecx
mov word [esi + eax*2], cx
lea ecx, [ebp - 0x110]
mov eax, dword [ebp - 0x140]
push dword [eax - 0xc]
push eax
call fcn.00403780
mov ecx, dword [ebp - 0x100]
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, dword [ebp - 0x100]
mov edx, eax
push edx
push 0x10ed
mov eax, dword [ecx]
call dword [eax + 0x68]
push dword [ebp - 0x100]
call dword [0x643b88]
test al, al
lea eax, [ebp - 0x100]
push eax
jne 0x57c5e0
call dword [sym.imp.SUCMLIB.dll_Ordinal_82]
push 0x62e4b0
lea eax, [ebp - 0x194]
mov dword [ebp - 0x194], 0xbf4
push eax
call fcn.005479aa
call dword [sym.imp.SUCMLIB.dll_Ordinal_82]
mov byte [ebp - 0xed], 1
call dword [0x643b4c]
test al, al
jne 0x57c612
push 0x62e4b0
lea eax, [ebp - 0x198]
mov dword [ebp - 0x198], 0xc00
push eax
call fcn.005479aa
lea eax, [ebp - 0x120]
mov dword [ebp - 0x120], 0
push eax
call dword [sym.imp.SUCMLIB.dll_Ordinal_73]
fild dword [ebp - 0x104]
mov eax, dword [ebp - 0xec]
lea edx, [ebp - 0x168]
push edx
fstp qword [ebp - 0xfc]
fld qword [ebp - 0xfc]
mov ecx, dword [ebp - 0x120]
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 0x134]
sub eax, dword [ebp - 0x148]
mov dword [ebp - 0x168], eax
mov eax, dword [ebp - 0x130]
sub eax, dword [ebp - 0x144]
fst qword [ebp - 0x158]
fstp qword [ebp - 0x150]
mov dword [ebp - 0x15c], ebx
mov dword [ebp - 0x164], eax
mov eax, dword [ecx]
call dword [eax + 0x18]
mov ecx, dword [ebp - 0x120]
mov esi, dword [ebp - 0x110]
push esi
mov eax, dword [ecx]
call dword [eax + 0x20]
push dword [ebp - 0x120]
call dword [0x643b74]
test al, al
lea eax, [ebp - 0x120]
push eax
jne 0x57c6d9
call dword [sym.imp.SUCMLIB.dll_Ordinal_76]
push 0x62e4b0
lea eax, [ebp - 0x19c]
mov dword [ebp - 0x19c], 0xc15
push eax
call fcn.005479aa
call dword [sym.imp.SUCMLIB.dll_Ordinal_76]
mov ecx, dword [ebp - 0x160]
xor ebx, ebx
mov edx, dword [ebp - 0x15c]
mov eax, ecx
imul eax, edx
mov dword [ebp - 0x11c], ebx
dec eax
cmp eax, 0x2f
ja case.0x57c705.2
movzx eax, byte [eax + 0x57d2f4]
jmp dword [eax*4 + 0x57d2e8]
mov ebx, dword [ebp - 0x168]
lea ebx, [ebx + 7]
shr ebx, 3
jmp 0x57c72f
mov ebx, dword [ebp - 0x168]
imul ebx, ecx
imul ebx, edx
shr ebx, 3
add ebx, 3
and ebx, 0xfffffffc
mov dword [ebp - 0x11c], ebx
xor eax, eax
test eax, eax
ja 0x57c75d
jb 0x57c742
cmp ebx, 3
jae 0x57c75d
push 0x62e4b0
lea eax, [ebp - 0x1a0]
mov dword [ebp - 0x1a0], 0xc38
push eax
call fcn.005479aa
push ebx
call fcn.0040e5a7
xor ecx, ecx
mov dword [ebp - 0xec], eax
add esp, 4
mov dword [ebp - 0x10c], ecx
test edi, edi
jle 0x57c893
mov edi, dword [ebp - 0x138]
add edi, 8
mov eax, dword [edi + 4]
imul eax, dword [edi]
fld qword [edi + 0x70]
fmul qword [edi + 0x50]
fld qword [edi + 0x68]
fmul qword [edi + 0x58]
mov ebx, dword [edi + 0x24]
cdq
and edx, 7
add eax, edx
sar eax, 3
fsubp st(1)
add eax, 3
and eax, 0xfffffffc
mov dword [ebp + ecx*4 - 0x24], eax
mov eax, dword [edi + 0x1c]
mov edx, eax
mov dword [ebp - 0x114], eax
fstp qword [ebp + ecx*8 - 0xa4]
cmp eax, ebx
jg 0x57c7c7
mov edx, ebx
mov ecx, dword [edi + 0x2c]
cmp edx, ecx
jg 0x57c7d0
mov edx, ecx
cmp eax, ebx
jl 0x57c7dc
mov eax, ebx
mov dword [ebp - 0x114], ebx
cmp eax, ecx
jl 0x57c7e6
mov dword [ebp - 0x114], ecx
mov ebx, dword [edi + 0x20]
mov ecx, dword [edi + 0x28]
cmp ebx, ecx
jle 0x57c7fa
mov eax, ebx
mov dword [ebp - 0x118], eax
jmp 0x57c802
mov eax, ecx
mov dword [ebp - 0x118], ecx
cmp eax, dword [edi + 0x30]
jg 0x57c810
mov eax, dword [edi + 0x30]
mov dword [ebp - 0x118], eax
cmp ebx, ecx
jl 0x57c816
mov ebx, ecx
mov eax, dword [edi + 0x30]
cmp ebx, eax
jl 0x57c81f
mov ebx, eax
sub edx, dword [ebp - 0x114]
mov eax, 0x1b4e81b5
imul edx, dword [edi + 0xc]
mov ecx, dword [ebp - 0x10c]
imul edx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x10c]
mov dword [ebp + edx*4 - 0x84], eax
mov eax, 0x1b4e81b5
mov edx, dword [ebp - 0x118]
sub edx, ebx
imul edx, dword [edi + 0xc]
add edi, 0x90
imul edx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp + ecx*4 - 0x74], eax
inc ecx
mov dword [ebp - 0x10c], ecx
cmp ecx, dword [ebp + 0x14]
jl 0x57c785
mov edi, dword [ebp + 0x14]
mov ebx, dword [ebp - 0x11c]
mov eax, dword [ebp - 0xec]
xor ecx, ecx
mov dword [ebp - 0x114], ecx
cmp ecx, dword [ebp - 0x164]
jae 0x57ce15
push ebx
push 0
push eax
call fcn.00547850
add esp, 0xc
xor ecx, ecx
test edi, edi
jle 0x57c9dd
mov eax, dword [ebp - 0x148]
fild dword [ebp - 0x148]
test eax, eax
jns 0x57c8d3
fadd qword [0x611f70]
mov eax, dword [ebp - 0x114]
fstp qword [ebp - 0xfc]
fld qword [ebp - 0xfc]
fld st(0)
fld qword [0x611eb8]
fadd st(1), st(0)
fild dword [ebp - 0x114]
test eax, eax
jns 0x57c8ff
fadd qword [0x611f70]
mov eax, dword [ebp - 0x144]
fstp qword [ebp - 0xfc]
fadd qword [ebp - 0xfc]
fild dword [ebp - 0x144]
test eax, eax
jns 0x57c921
fadd qword [0x611f70]
mov eax, dword [ebp - 0x138]
fstp qword [ebp - 0xfc]
add eax, 0x60
fadd qword [ebp - 0xfc]
fld qword [0x611f00]
faddp st(3)
fild dword [eax - 0x4c]
fstp qword [ebp - 0xfc]
fld qword [ebp - 0xfc]
fld qword [eax + 0x20]
fmul qword [eax]
fld qword [eax + 0x18]
fmul qword [eax + 8]
fsubp st(1)
fmul st(1)
fdiv qword [0x611f58]
fld st(2)
fmul qword [eax]
fld st(4)
fmul qword [eax + 0x18]
fsub st(1)
fadd st(2)
fst qword [ebp + ecx*8 - 0x64]
fld st(6)
fmul qword [eax + 0x18]
fsubrp st(2)
fxch st(1)
faddp st(2)
fsubp st(1)
fstp qword [ebp + ecx*8 - 0xe4]
fld qword [eax + 0x10]
fmul qword [eax + 8]
fld qword [eax + 0x20]
fmul qword [eax - 8]
fsubp st(1)
fmulp st(1)
fdiv qword [0x611f58]
fld st(1)
fmul qword [eax - 8]
fld st(3)
fmul qword [eax + 0x10]
fsubr st(1)
fadd st(2)
fst qword [ebp + ecx*8 - 0x44]
fld st(5)
fmul qword [eax + 0x10]
add eax, 0x90
fsubp st(2)
fxch st(1)
faddp st(2)
fsubp st(1)
fstp qword [ebp + ecx*8 - 0xc4]
inc ecx
cmp ecx, edi
jl 0x57c93e
mov esi, dword [ebp - 0x110]
fstp st(2)
fstp st(0)
fstp st(0)
cmp dword [ebp - 0x168], 0
mov dword [ebp - 0x10c], 0
jbe 0x57cdbc
mov ecx, dword [ebp - 0xec]
lea eax, [ecx + 4]
add ecx, 2
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x118], ecx
mov dword [ebp - 0x130], ecx
jmp 0x57ca20
mov ecx, 0xffff
mov dword [ebp - 0x134], Ordinal_9
xor ebx, ebx
mov dword [ebp - 0xe8], ecx
mov dword [ebp - 0x108], ecx
mov edx, ecx
mov dword [ebp - 0xf4], edx
mov dword [ebp - 0xf8], ebx
test edi, edi
jle 0x57cc70
mov edi, dword [ebp - 0x138]
add edi, 0x20
mov dword [ebp - 0x13c], edi
jmp 0x57ca70
fld qword [ebp + ebx*8 - 0x64]
fdiv qword [ebp + ebx*8 - 0xa4]
call fcn.005451d0
fld qword [ebp + ebx*8 - 0x44]
fdiv qword [ebp + ebx*8 - 0xa4]
mov dword [ebp - 0x12c], eax
call fcn.005451d0
mov ecx, dword [ebp - 0x12c]
test ecx, ecx
js case.0x57cafb.2
cmp ecx, dword [ebp + ebx*4 - 0x84]
jge case.0x57cafb.2
test eax, eax
js case.0x57cafb.2
cmp eax, dword [ebp + ebx*4 - 0x74]
jge case.0x57cafb.2
mov edx, dword [ebp - 0x134]
cmp edx, dword [edi + 0x68]
jg case.0x57cafb.2
mov edx, dword [edi - 0x10]
sub edx, eax
mov eax, dword [edi + 0x68]
mov dword [ebp - 0x134], eax
dec edx
mov eax, dword [edi - 0x18]
dec eax
mov dword [ebp - 0x128], edx
cmp eax, 0x2f
ja case.0x57cafb.2
movzx eax, byte [eax + 0x57d340]
jmp dword [eax*4 + 0x57d324]
mov eax, dword [edi - 0x14]
add eax, 7
cdq
and edx, 7
lea edi, [edx + eax]
mov eax, ecx
sar edi, 3
and eax, reloc.OLEAUT32.dll_VariantInit
jns 0x57cb20
dec eax
or eax, 0xfffffff8
inc eax
imul edi, dword [ebp - 0x128]
mov cl, al
mov eax, dword [ebp - 0x12c]
mov bl, 0x80
cdq
and edx, 7
shr bl, cl
add eax, edx
sar eax, 3
add edi, eax
mov eax, dword [ebp - 0x13c]
mov eax, dword [eax]
mov al, byte [edi + eax]
mov edi, dword [ebp - 0x13c]
and al, bl
mov ebx, dword [ebp - 0xf8]
movzx eax, al
neg eax
sbb eax, eax
and eax, 0xfe01
movzx eax, ax
mov ecx, eax
mov dword [ebp - 0x108], eax
mov edx, eax
mov dword [ebp - 0xe8], ecx
mov dword [ebp - 0xf4], edx
jmp 0x57cc33
mov ecx, dword [ebp + ebx*4 - 0x24]
mov eax, dword [edi]
imul ecx, edx
add ecx, dword [ebp - 0x12c]
movzx eax, byte [ecx + eax]
shl ax, 8
movzx ecx, ax
movzx edx, ax
movzx eax, ax
mov dword [ebp - 0xe8], ecx
mov dword [ebp - 0xf4], edx
mov dword [ebp - 0x108], eax
jmp 0x57cc33
mov ecx, dword [ebp + ebx*4 - 0x24]
mov eax, dword [edi]
imul ecx, edx
add ecx, dword [ebp - 0x12c]
movzx eax, word [eax + ecx*2]
mov ecx, eax
mov dword [ebp - 0x108], eax
mov edx, eax
mov dword [ebp - 0xe8], ecx
mov dword [ebp - 0xf4], edx
jmp 0x57cc33
mov edx, dword [ebp + ebx*4 - 0x24]
lea eax, [ecx + ecx*2]
imul edx, dword [ebp - 0x128]
add edx, eax
mov ecx, dword [edi]
movzx eax, byte [edx + ecx + 2]
shl ax, 8
movzx eax, ax
mov dword [ebp - 0xe8], eax
movzx eax, byte [edx + ecx + 1]
shl ax, 8
movzx eax, ax
mov dword [ebp - 0xf4], eax
movzx eax, byte [edx + ecx]
shl ax, 8
movzx eax, ax
mov dword [ebp - 0x108], eax
mov edx, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0xe8]
fld qword [ebp + ebx*8 - 0xe4]
add edi, 0x90
fadd qword [ebp + ebx*8 - 0x64]
mov dword [ebp - 0x13c], edi
fstp qword [ebp + ebx*8 - 0x64]
fld qword [ebp + ebx*8 - 0xc4]
fadd qword [ebp + ebx*8 - 0x44]
fstp qword [ebp + ebx*8 - 0x44]
inc ebx
mov dword [ebp - 0xf8], ebx
cmp ebx, dword [ebp + 0x14]
jl 0x57ca70
mov edi, dword [ebp + 0x14]
mov eax, dword [ebp - 0x160]
imul eax, dword [ebp - 0x15c]
dec eax
cmp eax, 0x2f
ja case.0x57cc8e.2
movzx eax, byte [eax + 0x57d38c]
jmp dword [eax*4 + 0x57d370]
mov eax, dword [ebp + ebx*4 - 0x24]
imul eax, edx
lea edx, [eax + ecx*4]
jmp 0x57cbf0
mov ecx, dword [ebp + ebx*4 - 0x24]
mov eax, dword [ebp - 0x12c]
imul ecx, edx
lea eax, [eax + eax*2]
add ecx, eax
mov eax, dword [edi]
movzx edx, word [eax + ecx*2]
mov dword [ebp - 0xe8], edx
movzx edx, word [eax + ecx*2 + 2]
movzx eax, word [eax + ecx*2 + 4]
mov dword [ebp - 0xf4], edx
mov dword [ebp - 0x108], eax
jmp 0x57cc2d
mov ecx, dword [ebp - 0x10c]
mov eax, ecx
shr eax, 3
neg dx
sbb dl, dl
and cl, 7
and dl, 0x80
shr dl, cl
mov ecx, dword [ebp - 0xec]
or byte [eax + ecx], dl
jmp case.0x57cc8e.2
mov ecx, dword [ebp - 0x10c]
mov eax, dword [ebp - 0xec]
shr edx, 8
mov byte [ecx + eax], dl
jmp case.0x57cc8e.2
mov ecx, dword [ebp - 0x10c]
mov eax, dword [ebp - 0xec]
mov word [eax + ecx*2], dx
jmp case.0x57cc8e.2
mov ebx, dword [ebp - 0x130]
mov eax, dword [ebp - 0x108]
shr ecx, 8
shr edx, 8
shr eax, 8
mov byte [ebx - 2], cl
mov byte [ebx - 1], dl
mov byte [ebx], al
jmp case.0x57cc8e.2
mov eax, dword [ebp - 0x118]
shr edx, 8
shr ecx, 8
mov byte [eax - 1], dl
mov edx, dword [ebp - 0x118]
mov byte [eax - 2], cl
mov eax, dword [ebp - 0x108]
shr eax, 8
mov byte [edx], al
mov byte [edx + 1], 0xff
jmp case.0x57cc8e.2
mov ebx, dword [ebp - 0x104]
mov eax, dword [ebp - 0x108]
mov word [ebx - 4], cx
mov word [ebx - 2], dx
mov word [ebx], ax
mov edx, dword [ebp - 0x10c]
add dword [ebp - 0x130], 3
inc edx
add dword [ebp - 0x118], 4
add dword [ebp - 0x104], 6
mov dword [ebp - 0x10c], edx
cmp edx, dword [ebp - 0x168]
jb 0x57ca20
mov ebx, dword [ebp - 0x11c]
push dword [ebp - 0xec]
xor eax, eax
push eax
push ebx
push eax
push ebx
push 1
push dword [ebp - 0x114]
call dword [0x643b54]
test al, al
jne 0x57ce03
push dword [ebp - 0xec]
call fcn.0040e5b0
add esp, 4
mov dword [ebp - 0x1a4], 0xcd9
lea eax, [ebp - 0x1a4]
push 0x62e4b0
push eax
call fcn.005479aa
mov ecx, dword [ebp - 0x114]
mov eax, dword [ebp - 0xec]
inc ecx
jmp 0x57c895
push eax
call fcn.0040e5b0
add esp, 4
mov dword [ebp - 0x124], 0
lea eax, [ebp - 0x124]
push eax
call dword [sym.imp.SUCMLIB.dll_Ordinal_70]
mov ecx, dword [ebp - 0x124]
push 0x128e
mov eax, dword [ecx]
call dword [eax + 0x24]
cmp dword [0x6441bc], 0
je 0x57ce7d
mov ecx, dword [0x6441c8]
test ecx, ecx
je 0x57ce7d
mov eax, dword [ecx]
call dword [eax + 0xac]
movzx eax, ax
mov ecx, 0xff0
cmp ax, cx
jne 0x57ce7d
mov ecx, dword [ebp - 0x124]
push 0xff0
mov eax, dword [ecx]
call dword [eax + 0x28]
push dword [ebp - 0x124]
call dword [0x643b3c]
test al, al
lea eax, [ebp - 0x124]
push eax
jne 0x57ceb5
call dword [sym.imp.SUCMLIB.dll_Ordinal_72]
push 0x62e4b0
lea eax, [ebp - 0x1a8]
mov dword [ebp - 0x1a8], 0xcef
push eax
call fcn.005479aa
call dword [sym.imp.SUCMLIB.dll_Ordinal_72]
call dword [0x643b70]
xor al, al
mov dword [ebp - 0x18c], 0
mov dword [ebp - 0x188], 0
mov byte [ebp - 0x184], al
mov dword [ebp - 0x180], 0
mov dword [ebp - 0x17c], 0
mov dword [ebp - 0x178], 2
mov dword [ebp - 0x174], 0
mov dword [ebp - 0x170], 0
mov dword [ebp - 0x16c], 0
lea esp, [esp]
test al, al
jne 0x57cf61
push 1
lea eax, [ebp - 0x18c]
push eax
call dword [0x643b58]
test al, al
je 0x57cf3f
mov al, byte [ebp - 0x184]
jmp 0x57cf20
push 0x62e4b0
lea eax, [ebp - 0x1ac]
mov byte [ebp - 0xed], 0
push eax
mov dword [ebp - 0x1ac], 0xd04
call fcn.005479aa
xor ebx, ebx
cmp ebx, edi
jge 0x57cfce
test esi, esi
jne 0x57cf75
push 0x80004005
call fcn.00402650
mov ecx, dword [ebp - 0x138]
lea eax, [ebx + ebx*8]
add eax, eax
mov eax, dword [ecx + eax*8]
mov ecx, esi
mov dword [ebp - 0xf8], eax
jmp 0x57cf90
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x57cfb6
test dx, dx
je 0x57cfb2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x57cfb6
add eax, 4
add ecx, 4
test dx, dx
jne 0x57cf90
xor eax, eax
jmp 0x57cfbb
sbb eax, eax
or eax, 1
test eax, eax
je 0x57cfcb
push dword [ebp - 0xf8]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
inc ebx
jmp 0x57cf63
mov edi, dword [0x644194]
lea eax, [ebp - 0x110]
mov ecx, dword [0x644190]
cmp eax, edi
jae 0x57d087
cmp ecx, eax
ja 0x57d087
mov edx, dword [0x644198]
sub eax, ecx
sar eax, 2
mov dword [ebp - 0xf8], eax
cmp edi, edx
jne 0x57d067
mov eax, edx
sub eax, edi
sar eax, 2
cmp eax, 1
jae 0x57d061
sub edi, ecx
mov ebx, 0x3fffffff
sar edi, 2
mov eax, ebx
sub eax, edi
cmp eax, 1
jae 0x57d02e
push str.vector_T__too_long
call fcn.00545aee
sub edx, ecx
inc edi
sar edx, 2
mov eax, edx
shr eax, 1
sub ebx, eax
add eax, edx
cmp ebx, edx
sbb ecx, ecx
not ecx
and ecx, eax
cmp ecx, edi
jae 0x57d04a
mov ecx, edi
push ecx
mov ecx, 0x644190
call fcn.00404f10
mov edi, dword [0x644194]
mov ecx, dword [0x644190]
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0xf8], edi
mov dword [ebp - 0x128], edi
mov byte [ebp - 4], 3
test edi, edi
je 0x57d112
mov eax, dword [ecx + eax*4]
sub eax, 0x10
jmp 0x57d0fe
mov edx, dword [0x644198]
cmp edi, edx
jne 0x57d0e7
mov eax, edx
sub eax, edi
sar eax, 2
cmp eax, 1
jae 0x57d0e7
sub edi, ecx
mov ebx, 0x3fffffff
sar edi, 2
mov eax, ebx
sub eax, edi
cmp eax, 1
jae 0x57d0ba
push str.vector_T__too_long
call fcn.00545aee
sub edx, ecx
inc edi
sar edx, 2
mov eax, edx
shr eax, 1
sub ebx, eax
add eax, edx
cmp ebx, edx
sbb ecx, ecx
not ecx
and ecx, eax
cmp ecx, edi
jae 0x57d0d6
mov ecx, edi
push ecx
mov ecx, 0x644190
call fcn.00404f10
mov edi, dword [0x644194]
mov dword [ebp - 0xf8], edi
mov dword [ebp - 0x128], edi
mov byte [ebp - 4], 4
test edi, edi
je 0x57d112
lea eax, [esi - 0x10]
push eax
call fcn.004035b0
add esp, 4
add eax, 0x10
mov dword [edi], eax
mov edi, dword [0x644194]
add edi, 4
mov byte [ebp - 4], 1
mov dword [0x644194], edi
add esi, 0xfffffff0
or edi, 0xffffffff
mov eax, edi
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x57d15e
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x57d15c
mov ecx, dword [ecx + 4]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x57d15c
push 0
push dword [ecx + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x57d15e
call edx
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x140]
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], edi
dec edi
test edi, edi
jg 0x57d1a6
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x57d22a
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x57d22a
push 0
push dword [edx + 4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [0x6441b4]
test eax, eax
je 0x57d1e8
cmp eax, 2
je 0x57d1d9
mov cl, byte [0x6441e0]
cmp cl, 0xc
je 0x57d1d9
cmp cl, 0xd
je 0x57d1d9
mov edx, eax
xor ecx, ecx
call fcn.0056c650
mov eax, dword [0x6441b4]
mov dword [0x6441b8], eax
mov dword [0x6441b4], 0
cmp byte [0x6441cc], 0
je 0x57d1fd
mov ecx, dword [0x643b30]
test ecx, ecx
je 0x57d1fd
call ecx
mov word [0x6441cc], 0
mov al, byte [ebp - 0xee]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00544774
mov esp, ebp
pop ebp
ret 0x28
mov ecx, edx
call esi
jmp 0x57d1a6
push 0x80070057
call fcn.00402650
cmp byte [ebp - 0xed], 0
je 0x57d278
call dword [0x643b24]
lea ecx, [ebp - 0x1d4]
call fcn.00403c10
cmp byte [ebp - 0x1cc], 0
jne 0x57d278
push 1
lea eax, [ebp - 0x1d4]
push eax
call dword [0x643b58]
cmp byte [ebp - 0x1cc], 0
je 0x57d260
mov esi, dword [ebp - 0x1b0]
add esi, 0x44
cmp dword [esi], 0
jne 0x57d28d
push esi
call dword [0x643b34]
mov eax, dword [esi]
neg eax
sbb al, al
and byte [ebp - 0xee], al
mov eax, 0x57d1a6
ret