Function at 0x42d090
Capabilities:
Delete file
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5802a7
mov eax, dword fs:[0]
push eax
sub esp, 0x144
mov eax, dword [0x6459b8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
push 0x616ba8
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x54], eax
call fcn.00406440
xor edi, edi
mov dword [ebp - 4], edi
push 0x616ba8
lea ecx, [ebp - 0x50]
call fcn.00406440
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x124]
push ecx
push 0x1a
push edi
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
mov edx, dword [ebp - 0x50]
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, 0x104
or eax, ecx
jge 0x42d11e
push 0x104
lea ecx, [ebp - 0x50]
call fcn.00404070
mov edx, dword [ebp - 0x50]
push edx
mov edx, dword [ebp - 0x124]
push edx
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax - 8]
push ecx
push eax
call fcn.00546f08
add esp, 8
cmp eax, edi
jl 0x42ddd5
mov ecx, dword [ebp - 0x50]
cmp eax, dword [ecx - 8]
jg 0x42ddd5
mov dword [ecx - 0xc], eax
mov edx, dword [ebp - 0x50]
xor ecx, ecx
mov word [edx + eax*2], cx
call fcn.00444998
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x42d176
push 0x80004005
call fcn.00403760
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x6c], eax
mov byte [ebp - 4], 3
push str.Foxit_SoftwareAddonFoxit_Reader_
lea ecx, [ebp - 0x50]
push ecx
lea edx, [ebp - 0x5c]
push edx
call fcn.00408fd0
add esp, 0xc
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x6c]
call fcn.004059f0
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x5c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42d1ce
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.AutoUpdaterInfo.xml
lea ecx, [ebp - 0x6c]
push ecx
lea edx, [ebp - 0x5c]
push edx
call fcn.00408fd0
add esp, 0xc
mov byte [ebp - 4], 6
push eax
lea ecx, [ebp - 0x58]
call fcn.004059f0
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x5c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42d213
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0xec]
call fcn.0045989b
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x58]
push edi
push 2
push ecx
lea ecx, [ebp - 0xec]
mov dword [ebp - 0x5c], edi
call fcn.00459d7e
test eax, eax
je 0x42d95b
lea ecx, [ebp - 0xec]
call fcn.00459787
mov esi, eax
cmp esi, edi
jle 0x42d8a2
lea edi, [esi + 1]
push edi
call fcn.004438a2
push edi
mov ebx, eax
push 0
push ebx
mov dword [ebp - 0x68], ebx
call fcn.00546d60
add esp, 0x10
push esi
push ebx
lea ecx, [ebp - 0xec]
call fcn.00459590
test eax, eax
je 0x42d895
push 0
push 0
push 0
push 0
push esi
push ebx
call fcn.0056f391
mov edi, eax
add esp, 0x18
mov dword [ebp - 0x84], edi
test edi, edi
je 0x42d895
mov ecx, edi
call fcn.0056e675
xor ecx, ecx
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0x64], ecx
test eax, eax
jle 0x42d5b2
push ecx
mov ecx, edi
call fcn.0056e8a1
mov esi, eax
xor eax, eax
mov dword [ebp - 0x4c], eax
mov byte [ebp - 4], 9
mov dword [ebp - 0x78], eax
mov byte [ebp - 4], 0xa
mov dword [ebp - 0x7c], eax
mov byte [ebp - 4], 0xb
cmp esi, eax
je 0x42d356
lea edx, [ebp - 0x4c]
push edx
lea eax, [ebp - 0x90]
push eax
mov ecx, esi
mov dword [ebp - 0x90], 0x5999a8
mov dword [ebp - 0x8c], 0xd
call fcn.0056eb15
lea ecx, [ebp - 0x78]
push ecx
lea edx, [ebp - 0x140]
push edx
mov ecx, esi
mov dword [ebp - 0x140], str.name
mov dword [ebp - 0x13c], 4
call fcn.0056eb15
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp - 0xac]
push ecx
mov ecx, esi
mov dword [ebp - 0xac], 0x5999a4
mov dword [ebp - 0xa8], 3
call fcn.0056eb15
mov edx, dword [ebp - 0x54]
mov eax, dword [edx + 8]
xor ebx, ebx
mov dword [ebp - 0x94], eax
test eax, eax
jle 0x42d57b
test ebx, ebx
js 0x42d603
mov eax, dword [ebp - 0x54]
cmp ebx, dword [eax + 8]
jge 0x42d603
mov ecx, eax
mov eax, dword [ebp - 0x78]
mov edx, dword [ecx + 4]
mov edi, dword [edx + ebx*4]
test eax, eax
je 0x42d394
add eax, 0xc
jmp 0x42d399
mov eax, 0x616ba8
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x42d16c
mov ecx, dword [edi + 4]
push eax
push ecx
call fcn.0054704c
add esp, 8
test eax, eax
jne 0x42d568
mov eax, dword [ebp - 0x4c]
test eax, eax
je 0x42d3c9
add eax, 0xc
jmp 0x42d3ce
mov eax, 0x616ba8
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x42d16c
push eax
mov eax, dword [0x64b430]
push eax
call fcn.0054704c
add esp, 8
test eax, eax
jne 0x42d568
mov eax, dword [edi + 8]
push 0xffffffffffffffff
push eax
lea ecx, [ebp - 0x60]
call fcn.0056cdab
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x42d41b
lea ecx, [eax + 0xc]
mov dword [ebp - 0x74], ecx
mov edx, dword [eax + 4]
mov dword [ebp - 0x70], edx
jmp 0x42d429
mov dword [ebp - 0x74], 0x616ba8
mov dword [ebp - 0x70], 0
lea eax, [ebp - 0x74]
push eax
lea ecx, [ebp - 0xb4]
push ecx
mov ecx, esi
mov dword [ebp - 0xb4], 0x595c70
mov dword [ebp - 0xb0], 7
call fcn.0056fb36
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x60]
call fcn.0056bf07
cmp dword [ebp + 0xc], 0
je 0x42d49a
mov dword [ebp - 0xd4], 0x5999a0
mov dword [ebp - 0xd0], 1
mov dword [ebp - 0x9c], 0x5999a4
mov dword [ebp - 0x98], 3
lea edx, [ebp - 0xd4]
lea eax, [ebp - 0x9c]
jmp 0x42d558
push 0x5965f4
lea ecx, [ebp - 0x7c]
call fcn.0056d0c5
test eax, eax
jne 0x42d4e3
lea ecx, [ebp - 0xcc]
push ecx
lea edx, [ebp - 0xbc]
mov dword [ebp - 0xcc], 0x5977c0
mov dword [ebp - 0xc8], 1
mov dword [ebp - 0xbc], 0x5999a4
mov dword [ebp - 0xb8], 3
push edx
jmp 0x42d55a
push 0x5977c0
lea ecx, [ebp - 0x7c]
call fcn.0056d0c5
test eax, eax
jne 0x42d528
push 0x5999a0
lea ecx, [ebp - 0x148]
call fcn.00425fd0
lea eax, [ebp - 0x148]
push eax
lea ecx, [ebp - 0xc4]
mov dword [ebp - 0xc4], 0x5999a4
mov dword [ebp - 0xc0], 3
push ecx
jmp 0x42d55a
push 0x5965f4
lea ecx, [ebp - 0x150]
call fcn.00425fd0
mov dword [ebp - 0xa4], 0x5999a4
mov dword [ebp - 0xa0], 3
lea edx, [ebp - 0x150]
lea eax, [ebp - 0xa4]
push edx
push eax
mov ecx, esi
call fcn.0056fb36
mov dword [edi + 0x68], 1
inc ebx
cmp ebx, dword [ebp - 0x94]
jl 0x42d36c
mov edi, dword [ebp - 0x84]
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x7c]
call fcn.0056bf07
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x78]
call fcn.0056bf07
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x4c]
call fcn.0056bf07
mov ecx, dword [ebp - 0x64]
inc ecx
mov dword [ebp - 0x64], ecx
cmp ecx, dword [ebp - 0xd8]
jl 0x42d2bf
mov eax, dword [ebp - 0x54]
mov ecx, dword [eax + 8]
xor ebx, ebx
mov dword [ebp - 0x94], ecx
test ecx, ecx
jle 0x42d810
test ebx, ebx
js 0x42d603
cmp ebx, dword [eax + 8]
jge 0x42d603
mov edx, dword [eax + 4]
mov edi, dword [edx + ebx*4]
cmp dword [edi + 0x68], 0
jne 0x42d807
push 0x30
call fcn.0056f6df
add esp, 4
mov dword [ebp - 0x78], eax
mov byte [ebp - 4], 0xd
test eax, eax
je 0x42d608
push 0
mov ecx, eax
call fcn.0056ec33
mov esi, eax
jmp 0x42d60a
call fcn.004439b5
xor esi, esi
mov byte [ebp - 4], 8
lea eax, [ebp - 0xa4]
push eax
mov ecx, esi
mov dword [ebp - 0xa4], str.module
mov dword [ebp - 0xa0], 6
call fcn.0056fae8
mov ecx, dword [0x64b430]
push 0xffffffffffffffff
push ecx
lea ecx, [ebp - 0x64]
call fcn.0056cdab
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x64]
test eax, eax
je 0x42d65a
lea edx, [eax + 0xc]
mov dword [ebp - 0x74], edx
mov eax, dword [eax + 4]
mov dword [ebp - 0x70], eax
jmp 0x42d668
mov dword [ebp - 0x74], 0x616ba8
mov dword [ebp - 0x70], 0
lea ecx, [ebp - 0x74]
push ecx
lea edx, [ebp - 0xc4]
push edx
mov ecx, esi
mov dword [ebp - 0xc4], 0x5999a8
mov dword [ebp - 0xc0], 0xd
call fcn.0056fb36
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x64]
call fcn.0056bf07
mov eax, dword [edi + 4]
push 0xffffffffffffffff
push eax
lea ecx, [ebp - 0x60]
call fcn.0056cdab
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x42d6c1
lea ecx, [eax + 0xc]
mov dword [ebp - 0x80], ecx
mov edx, dword [eax + 4]
mov dword [ebp - 0x7c], edx
jmp 0x42d6cf
mov dword [ebp - 0x80], 0x616ba8
mov dword [ebp - 0x7c], 0
lea eax, [ebp - 0x80]
push eax
lea ecx, [ebp - 0xbc]
push ecx
mov ecx, esi
mov dword [ebp - 0xbc], str.name
mov dword [ebp - 0xb8], 4
call fcn.0056fb36
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x60]
call fcn.0056bf07
mov eax, dword [edi + 8]
push 0xffffffffffffffff
push eax
lea ecx, [ebp - 0x4c]
call fcn.0056cdab
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x4c]
test eax, eax
je 0x42d72e
lea edx, [eax + 0xc]
mov dword [ebp - 0x90], edx
mov eax, dword [eax + 4]
mov dword [ebp - 0x8c], eax
jmp 0x42d742
mov dword [ebp - 0x90], 0x616ba8
mov dword [ebp - 0x8c], 0
lea ecx, [ebp - 0x90]
push ecx
lea edx, [ebp - 0xcc]
push edx
mov ecx, esi
mov dword [ebp - 0xcc], 0x595c70
mov dword [ebp - 0xc8], 7
call fcn.0056fb36
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x4c]
call fcn.0056bf07
cmp dword [ebp + 0xc], 0
je 0x42d7b5
lea eax, [ebp - 0x9c]
push eax
lea ecx, [ebp - 0xd4]
mov dword [ebp - 0x9c], 0x5999a0
mov dword [ebp - 0x98], 1
mov dword [ebp - 0xd4], 0x5999a4
mov dword [ebp - 0xd0], 3
push ecx
jmp 0x42d7eb
lea edx, [ebp - 0xb4]
push edx
lea eax, [ebp - 0xac]
mov dword [ebp - 0xb4], 0x5965f4
mov dword [ebp - 0xb0], 1
mov dword [ebp - 0xac], 0x5999a4
mov dword [ebp - 0xa8], 3
push eax
mov ecx, esi
call fcn.0056fb36
mov ecx, dword [ebp - 0x84]
push esi
call fcn.0056fd3a
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x94]
inc ebx
cmp ebx, ecx
jl 0x42d5c8
cmp dword [ebp - 0xd8], 0
mov esi, dword [ebp - 0x84]
jle 0x42d882
push 0
lea ecx, [ebp - 0x4c]
push ecx
mov ecx, esi
call fcn.005700ef
mov byte [ebp - 4], 0x11
mov edx, dword [ebp - 0xec]
mov eax, dword [edx + 0x2c]
push 0
push 0
push 0
lea ecx, [ebp - 0xec]
call eax
mov eax, dword [ebp - 0x4c]
test eax, eax
je 0x42d855
mov eax, dword [eax + 4]
mov ecx, eax
jmp 0x42d859
xor eax, eax
xor ecx, ecx
push eax
push ecx
lea ecx, [ebp - 0x4c]
call fcn.0056c174
push eax
lea ecx, [ebp - 0xec]
call fcn.004595d2
mov dword [ebp - 0x5c], 1
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x4c]
call fcn.0056bf07
mov ecx, esi
call fcn.0056ec9c
push esi
call fcn.0056f6f4
mov ebx, dword [ebp - 0x68]
add esp, 4
test ebx, ebx
je 0x42d8a2
push ebx
call fcn.00443897
add esp, 4
lea ecx, [ebp - 0xec]
call fcn.004596be
lea ecx, [ebp - 0xec]
call fcn.00459836
cmp dword [ebp - 0x5c], 0
je 0x42d95b
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xec]
call fcn.004599cb
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x6c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42d8f4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42d917
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x58]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42d93d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00546bde
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp - 0x58]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [ebp - 0x120]
call fcn.00404af0
mov byte [ebp - 4], 0x15
push 0
push 0
push 0
push str.rejectupdater_info
lea ecx, [ebp - 0x120]
call fcn.00442b50
lea ecx, [ebp - 0x120]
call fcn.00441750
mov edx, dword [ebp - 0x54]
mov ebx, dword [edx + 8]
xor edi, edi
test ebx, ebx
jle 0x42da68
test edi, edi
js 0x42d603
mov eax, dword [ebp - 0x54]
cmp edi, dword [eax + 8]
jge 0x42d603
push 0
push 0
mov ecx, eax
mov edx, dword [ecx + 4]
mov esi, dword [edx + edi*4]
push 0
push 0x599bf4
lea ecx, [ebp - 0x120]
call fcn.00442b50
mov eax, dword [0x64b430]
mov ecx, dword [ebp - 0xfc]
push eax
push str.readerversion
push ecx
lea ecx, [ebp - 0x120]
call fcn.004425e0
mov eax, dword [esi + 4]
mov edx, dword [ebp - 0xfc]
push eax
push 0x595030
push edx
lea ecx, [ebp - 0x120]
call fcn.004425e0
mov esi, dword [esi + 8]
mov eax, dword [ebp - 0xfc]
push esi
push 0x59503c
push eax
lea ecx, [ebp - 0x120]
call fcn.004425e0
cmp dword [ebp + 0xc], 0
je 0x42da43
mov ecx, dword [ebp - 0xfc]
push 0x5999a0
push 0x599bd0
push ecx
jmp 0x42da54
mov edx, dword [ebp - 0xfc]
push 0x5965f4
push 0x599bd0
push edx
lea ecx, [ebp - 0x120]
call fcn.004425e0
inc edi
cmp edi, ebx
jl 0x42d9a5
lea eax, [ebp - 0x88]
push eax
lea ecx, [ebp - 0x120]
call fcn.00405520
mov byte [ebp - 4], 0x16
mov edx, dword [ebp - 0x88]
xor ecx, ecx
mov eax, edx
mov dword [ebp - 0x34], 7
mov dword [ebp - 0x38], 0
mov word [ebp - 0x48], cx
lea esi, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x42daa0
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [ebp - 0x48]
call fcn.00405e70
mov byte [ebp - 4], 0x17
lea edx, [ebp - 0x48]
push edx
lea eax, [ebp - 0x2c]
push eax
call fcn.004358d0
add esp, 8
mov bl, 0x19
mov byte [ebp - 4], bl
cmp dword [ebp - 0x34], 8
jb 0x42dae4
mov ecx, dword [ebp - 0x48]
push ecx
call fcn.00443897
add esp, 4
xor edx, edx
xor edi, edi
lea ecx, [ebp - 0x138]
mov dword [ebp - 0x34], 7
mov dword [ebp - 0x38], edi
mov word [ebp - 0x48], dx
call fcn.0045989b
mov byte [ebp - 4], 0x1a
mov eax, dword [ebp - 0x58]
push edi
push 0x1001
push eax
lea ecx, [ebp - 0x138]
call fcn.00459d7e
test eax, eax
jne 0x42dc57
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x138]
call fcn.004599cb
mov byte [ebp - 4], 0x16
cmp dword [ebp - 0x18], 0x10
jb 0x42db46
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.00443897
add esp, 4
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], edi
mov byte [ebp - 0x2c], 0
mov byte [ebp - 4], 0x15
mov eax, dword [ebp - 0x88]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42db7a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 8
mov dword [ebp - method.CMarkup.virtual_0], vtable.CMarkup.0
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x114]
call fcn.00403c10
mov al, 0x1c
mov byte [ebp - 4], al
lea ecx, [ebp - 0x118]
mov dword [ebp - 0x68], ecx
mov byte [ebp - 4], al
mov eax, dword [ebp - 0x118]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42dbca
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x11c]
mov dword [ebp - 0x68], ecx
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x11c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42dbfd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xec]
call fcn.004599cb
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x6c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42dc2f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42dc52
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x42d917
mov edx, dword [ebp - 0x138]
mov eax, dword [edx + 0x2c]
push edi
push edi
push edi
lea ecx, [ebp - 0x138]
call eax
mov eax, dword [ebp - 0x2c]
mov esi, 0x10
cmp dword [ebp - 0x18], esi
jae 0x42dc7b
lea eax, [ebp - 0x2c]
mov ecx, dword [ebp - 0x1c]
push ecx
push eax
lea ecx, [ebp - 0x138]
call fcn.004595d2
lea ecx, [ebp - 0x138]
call fcn.004596be
lea ecx, [ebp - 0x138]
call fcn.00459836
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x138]
call fcn.004599cb
mov byte [ebp - 4], 0x16
cmp dword [ebp - 0x18], esi
jb 0x42dcc4
mov edx, dword [ebp - 0x2c]
push edx
call fcn.00443897
add esp, 4
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], edi
mov byte [ebp - 0x2c], 0
mov byte [ebp - 4], 0x15
mov eax, dword [ebp - 0x88]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42dcf8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 8
mov dword [ebp - method.CMarkup.virtual_0], vtable.CMarkup.0
mov byte [ebp - 4], 0x26
lea ecx, [ebp - 0x114]
call fcn.00403c10
mov al, 0x25
mov byte [ebp - 4], al
lea ecx, [ebp - 0x118]
mov dword [ebp - 0x68], ecx
mov byte [ebp - 4], al
mov eax, dword [ebp - 0x118]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42dd48
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x11c]
mov dword [ebp - 0x68], ecx
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x11c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42dd7b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xec]
call fcn.004599cb
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x6c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42ddad
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42ddd0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x42d917
push 0x80070057
call fcn.00403760
int3