Function at 0x460da0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x1eec
call fcn.00488a80
push ebx
push ebp
mov ebp, ecx
push esi
lea ebx, [ebp + 0xe8]
push edi
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x44], ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, eax
mov eax, dword [ebx + 0x14]
xor edi, edi
cmp eax, edi
je 0x460dd8
cmp eax, esi
jne 0x460dd8
inc dword [ebx + 0x18]
jmp 0x460df8
mov al, byte [ebx + 5]
test al, al
je 0x460deb
lea eax, [ebx + 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
jmp 0x460df2
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x10]
mov dword [ebx + 0x18], edi
mov dword [ebx + 0x14], esi
test dword [ebp + 0x124], 0xfffffffe
jne 0x460e68
cmp dword [ebx + 0x18], edi
je 0x460e2f
cmp dword [ebx + 0x14], edi
je 0x460e2f
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [ebx + 0x14], eax
jne 0x460e2f
mov eax, dword [ebx + 0x18]
pop edi
pop esi
dec eax
mov dword [ebx + 0x18], eax
pop ebp
xor eax, eax
pop ebx
add esp, 0x1eec
ret 4
mov al, byte [ebx + 5]
test al, al
mov dword [ebx + 0x14], edi
je 0x460e52
add ebx, 0x1c
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1eec
ret 4
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x14]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1eec
ret 4
mov ecx, dword [ebp + 0x120]
mov eax, dword [ecx + 0x40]
cmp eax, edi
je 0x460e7a
lea esi, [eax + 4]
jmp 0x460e7c
xor esi, esi
push edi
push edi
lea ecx, [esp + 0x3c]
mov dword [esp + 0x38], edi
call fcn.00458ba0
cmp esi, edi
mov dword [esp + 0x38], edi
mov byte [esp + 0x3c], 0xff
mov byte [esp + 0x3d], 1
mov byte [esp + 0x3e], 0
mov dword [esp + 0x40], edi
je 0x460f42
push esi
lea ecx, [esp + 0x88]
call fcn.00458ad0
lea edx, [esp + 0x28]
push edx
lea ecx, [esp + 0x88]
call fcn.00453da0
push eax
lea ecx, [esp + 0x3c]
call fcn.00436200
lea ecx, [esp + 0x28]
call fcn.004039f0
push str.Picasa.ini
lea ecx, [esp + 0x88]
call fcn.004a51e0
mov edx, dword [esp + 0x84]
cmp edx, edi
je 0x460efc
add edx, 4
jmp 0x460efe
xor edx, edx
cmp edx, edi
mov dword [esp + 0x24], edi
je 0x460f1f
or ecx, 0xffffffff
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x2c]
call fcn.0049d9d0
xor edi, edi
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x34]
call fcn.00436200
lea ecx, [esp + 0x24]
call fcn.004039f0
lea ecx, [esp + 0x84]
call fcn.00431cf0
push 1
push str.Desktop_
lea ecx, [esp + 0x38]
call fcn.004bb7a0
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x34]
push edx
mov dword [esp + 0x20], edi
call fcn.004bc000
lea eax, [ebp + 0x254]
mov dword [esp + 0x60], eax
mov eax, dword [eax]
add esp, 8
cmp eax, edi
je 0x460f7d
add eax, 4
jmp 0x460f7f
xor eax, eax
mov ecx, dword [esp + 0x18]
cmp ecx, edi
je 0x460fd6
lea esi, [ecx + 4]
cmp esi, edi
je 0x460fc9
cmp eax, edi
je 0x460fc9
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x460fbc
test cl, cl
je 0x460fb2
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x460fbc
add eax, 2
add esi, 2
test cl, cl
jne 0x460f92
mov ecx, dword [esp + 0x18]
xor eax, eax
test eax, eax
jmp 0x460fea
mov ecx, dword [esp + 0x18]
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jmp 0x460fea
test dword [ecx], 0xffffff00
je 0x460fd6
cmp byte [esi], 0
jne 0x460fe8
cmp eax, edi
je 0x461e33
cmp byte [eax], 0
jne 0x460ff5
jmp 0x461e33
cmp esi, eax
sete al
test al, al
jne 0x461e33
mov eax, dword [ebp + 0x124]
xor edi, edi
test eax, 0xfffffffe
mov dword [esp + 0x2c], edi
jbe 0x461df0
lea esp, [esp]
mov ecx, dword [ebp + 0x120]
mov esi, edi
shl esi, 7
add ecx, esi
mov dword [esp + 0x24], esi
call fcn.00459bd0
test al, al
jne 0x461dd3
mov eax, dword [ebp + 0x120]
add eax, esi
mov byte [eax + 2], 0
mov byte [eax + 1], 0
mov byte [eax], 0
mov byte [eax + 3], 0
lea ebx, [ebp + 0x128]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, eax
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x461063
cmp eax, esi
jne 0x461063
inc dword [ebx + 0x18]
jmp 0x461087
mov al, byte [ebx + 5]
test al, al
je 0x461076
lea eax, [ebx + 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
jmp 0x46107d
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x10]
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x14], esi
lea edi, [ebp + 0x18c]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, eax
mov eax, dword [edi + 0x14]
test eax, eax
je 0x4610a5
cmp eax, esi
jne 0x4610a5
inc dword [edi + 0x18]
jmp 0x4610c9
mov al, byte [edi + 5]
test al, al
je 0x4610b8
lea eax, [edi + 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
jmp 0x4610bf
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x10]
mov dword [edi + 0x18], 0
mov dword [edi + 0x14], esi
mov eax, dword [esp + 0x1c]
lea esi, [eax + 0x1f0]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ebp, eax
mov eax, dword [esi + 0x14]
test eax, eax
je 0x4610eb
cmp eax, ebp
jne 0x4610eb
inc dword [esi + 0x18]
jmp 0x46110f
mov al, byte [esi + 5]
test al, al
je 0x4610fe
lea ecx, [esi + 0x1c]
push ecx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
jmp 0x461105
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x10]
mov dword [esi + 0x18], 0
mov dword [esi + 0x14], ebp
mov ecx, dword [esp + 0x2c]
xor edx, edx
mov eax, ecx
div dword [ebx + 0x58]
mov eax, dword [ebx + 0x60]
mov edx, dword [eax + edx*4]
test edx, edx
je 0x461146
cmp ecx, dword [edx + 8]
je 0x461131
mov edx, dword [edx]
test edx, edx
jne 0x461124
jmp 0x461146
lea eax, [edx + 4]
test eax, eax
je 0x461146
mov ecx, dword [eax]
push ecx
mov ecx, ebx
call fcn.004638e0
mov ecx, dword [esp + 0x2c]
xor edx, edx
mov eax, ecx
div dword [edi + 0x58]
mov eax, dword [edi + 0x60]
mov edx, dword [eax + edx*4]
test edx, edx
je 0x461179
cmp ecx, dword [edx + 8]
je 0x461164
mov edx, dword [edx]
test edx, edx
jne 0x461157
jmp 0x461179
lea eax, [edx + 4]
test eax, eax
je 0x461179
mov ecx, dword [eax]
push ecx
mov ecx, edi
call fcn.004638e0
mov ecx, dword [esp + 0x2c]
xor edx, edx
mov eax, ecx
div dword [esi + 0x58]
mov eax, dword [esi + 0x60]
mov edx, dword [eax + edx*4]
test edx, edx
je 0x4611ae
lea ebx, [ebx]
cmp ecx, dword [edx + 8]
je 0x46119d
mov edx, dword [edx]
test edx, edx
jne 0x461190
jmp 0x4611ae
lea eax, [edx + 4]
test eax, eax
je 0x4611ae
mov ecx, dword [eax]
push ecx
mov ecx, esi
call fcn.004638e0
mov eax, dword [esi + 0x18]
test eax, eax
je 0x4611cc
mov eax, dword [esi + 0x14]
test eax, eax
je 0x4611cc
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [esi + 0x14], eax
jne 0x4611cc
dec dword [esi + 0x18]
jmp 0x4611ed
mov al, byte [esi + 5]
test al, al
mov dword [esi + 0x14], 0
je 0x4611e6
add esi, 0x1c
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x4611ed
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x14]
mov eax, dword [edi + 0x18]
xor ebp, ebp
cmp eax, ebp
je 0x46120b
cmp dword [edi + 0x14], ebp
je 0x46120b
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [edi + 0x14], eax
jne 0x46120b
dec dword [edi + 0x18]
jmp 0x461228
mov al, byte [edi + 5]
test al, al
mov dword [edi + 0x14], ebp
je 0x461221
add edi, 0x1c
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x461228
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x14]
cmp dword [ebx + 0x18], ebp
je 0x461242
cmp dword [ebx + 0x14], ebp
je 0x461242
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [ebx + 0x14], eax
jne 0x461242
dec dword [ebx + 0x18]
jmp 0x46125f
mov al, byte [ebx + 5]
test al, al
mov dword [ebx + 0x14], ebp
je 0x461258
add ebx, 0x1c
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x46125f
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x14]
mov ebx, dword [esp + 0x1c]
mov eax, dword [ebx + 0x120]
mov esi, dword [esp + 0x24]
mov eax, dword [esi + eax + 0x40]
cmp eax, ebp
je 0x46127a
add eax, 4
jmp 0x46127c
xor eax, eax
push eax
call fcn.00436850
add esp, 4
cmp eax, 2
mov dword [esp + 0x10], ebp
jne 0x4614ae
mov ecx, dword [ebx + 0x120]
lea eax, [esi + ecx + 0x40]
mov ecx, dword [esp + 0x14d8]
and ecx, 0xff
or ecx, 0x100
mov dword [esp + 0x14d8], ecx
mov ecx, dword [esp + 0x16e0]
and ecx, 0xff
or ecx, 0x100
mov dword [esp + 0x16e0], ecx
mov ecx, dword [esp + 0x18e8]
and ecx, 0xff
or ecx, 0x100
mov dword [esp + 0x18e8], ecx
mov ecx, dword [esp + 0x1af0]
and ecx, 0xff
lea edx, [esp + 0x14d8]
mov dword [esp + 0x14d4], edx
or ecx, 0x100
lea edx, [esp + 0x16e0]
mov dword [esp + 0x16dc], edx
mov dword [esp + 0x1af0], ecx
mov ecx, dword [esp + 0x1cf8]
lea edx, [esp + 0x18e8]
mov dword [esp + 0x18e4], edx
lea edx, [esp + 0x1af0]
and ecx, 0xff
mov dword [esp + 0x1aec], edx
or ecx, 0x100
lea edx, [esp + 0x1cf8]
mov dword [esp + 0x1cf8], ecx
mov byte [esp + 0x14d8], 0x80
mov byte [esp + 0x14dc], 0
mov byte [esp + 0x16e0], 0x80
mov byte [esp + 0x16e4], 0
mov byte [esp + 0x18e8], 0x80
mov byte [esp + 0x18ec], 0
mov byte [esp + 0x1af0], 0x80
mov byte [esp + 0x1af4], 0
mov dword [esp + 0x1cf4], edx
mov byte [esp + 0x1cf8], 0x80
mov byte [esp + 0x1cfc], 0
mov eax, dword [eax]
cmp eax, ebp
je 0x4613eb
mov ecx, dword [eax]
shr ecx, 8
cmp ecx, ebp
je 0x4613eb
cmp eax, ebp
je 0x4613cc
lea ecx, [eax + 4]
jmp 0x4613ce
xor ecx, ecx
cmp byte [ecx], 0
je 0x4613eb
cmp eax, ebp
je 0x4613dc
add eax, 4
jmp 0x4613de
xor eax, eax
push eax
lea ecx, [esp + 0x14d8]
call fcn.004a4d20
push 0x6b6e10
lea ecx, [esp + 0x14d8]
call fcn.004a4ff0
mov eax, dword [esp + 0x14d4]
cmp eax, ebp
je 0x46140c
lea edx, [eax + 4]
jmp 0x46140e
xor edx, edx
cmp edx, ebp
mov dword [esp + 0x14], ebp
je 0x46142d
or ecx, 0xffffffff
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.0049d9d0
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x14]
call fcn.00436200
lea ecx, [esp + 0x14]
call fcn.004039f0
lea ecx, [esp + 0x1cf4]
call fcn.004039f0
lea ecx, [esp + 0x1aec]
mov dword [esp + 0x1cf4], ebp
call fcn.004039f0
lea ecx, [esp + 0x18e4]
mov dword [esp + 0x1aec], ebp
call fcn.004039f0
lea ecx, [esp + 0x16dc]
mov dword [esp + 0x18e4], ebp
call fcn.004039f0
lea ecx, [esp + 0x14d4]
mov dword [esp + 0x16dc], ebp
call fcn.004039f0
mov ebx, dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov dword [esp + 0x14d4], ebp
jmp 0x461593
or ecx, 0xffffffff
xor eax, eax
mov edi, 0x69636c
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x69636c
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], ebp
call fcn.0049d9d0
mov eax, dword [ebx + 0x120]
mov eax, dword [esi + eax + 0x40]
cmp eax, ebp
mov ebx, dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov dword [esp + 0x14], eax
je 0x4614fb
mov ecx, dword [eax]
and ecx, 0xff
cmp ecx, 0x80
jae 0x4614fb
push eax
call ebx
mov eax, dword [esp + 0x20]
cmp eax, ebp
je 0x461508
add eax, 4
jmp 0x46150a
xor eax, eax
push eax
lea ecx, [esp + 0x18]
call fcn.0049d460
mov esi, dword [esp + 0x14]
cmp esi, ebp
mov dword [esp + 0x28], esi
je 0x461533
mov edx, dword [esi]
and edx, 0xff
cmp edx, 0x80
jae 0x461533
push esi
call ebx
lea ecx, [esp + 0x14]
call fcn.004039f0
cmp dword [esp + 0x10], esi
mov dword [esp + 0x14], ebp
je 0x46157d
lea ecx, [esp + 0x10]
call fcn.004039f0
cmp esi, ebp
mov dword [esp + 0x10], esi
je 0x46157d
mov eax, dword [esi]
and eax, 0xff
cmp eax, 0x80
jae 0x461574
push esi
call ebx
and eax, 0xff
cmp eax, 0xff
jne 0x46157d
lea ecx, [esp + 0x10]
call fcn.0049d350
lea ecx, [esp + 0x28]
call fcn.004039f0
lea ecx, [esp + 0x20]
call fcn.004039f0
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0x120]
lea eax, [esi + edx + 0x40]
mov edx, dword [esp + 0xab0]
and edx, 0xff
or edx, 0x100
mov dword [esp + 0xab0], edx
mov edx, dword [esp + 0xcb8]
and edx, 0xff
or edx, 0x100
mov dword [esp + 0xcb8], edx
mov edx, dword [esp + 0xec0]
and edx, 0xff
or edx, 0x100
mov dword [esp + 0xec0], edx
mov edx, dword [esp + 0x10c8]
and edx, 0xff
lea ecx, [esp + 0xab0]
mov dword [esp + 0xaac], ecx
or edx, 0x100
lea ecx, [esp + 0xcb8]
mov dword [esp + 0xcb4], ecx
mov dword [esp + 0x10c8], edx
mov edx, dword [esp + 0x12d0]
lea ecx, [esp + 0xec0]
mov dword [esp + 0xebc], ecx
lea ecx, [esp + 0x10c8]
and edx, 0xff
mov dword [esp + 0x10c4], ecx
or edx, 0x100
lea ecx, [esp + 0x12d0]
mov dword [esp + 0x12d0], edx
mov byte [esp + 0xab0], 0x80
mov byte [esp + 0xab4], 0
mov byte [esp + 0xcb8], 0x80
mov byte [esp + 0xcbc], 0
mov byte [esp + 0xec0], 0x80
mov byte [esp + 0xec4], 0
mov byte [esp + 0x10c8], 0x80
mov byte [esp + 0x10cc], 0
mov dword [esp + 0x12cc], ecx
mov byte [esp + 0x12d0], 0x80
mov byte [esp + 0x12d4], 0
mov eax, dword [eax]
cmp eax, ebp
je 0x4616f0
mov ecx, dword [eax]
shr ecx, 8
cmp ecx, ebp
je 0x4616f0
cmp eax, ebp
je 0x4616d1
lea ecx, [eax + 4]
jmp 0x4616d3
xor ecx, ecx
cmp byte [ecx], 0
je 0x4616f0
cmp eax, ebp
je 0x4616e1
add eax, 4
jmp 0x4616e3
xor eax, eax
push eax
lea ecx, [esp + 0xab0]
call fcn.004a4d20
lea eax, [esp + 0x12cc]
push eax
lea ecx, [esp + 0x4c]
push ecx
lea ecx, [esp + 0x10cc]
call fcn.00440010
mov eax, dword [esp + 0x48]
cmp eax, ebp
je 0x461716
add eax, 4
jmp 0x461718
xor eax, eax
push eax
lea ecx, [esp + 0x34]
call fcn.004bcb20
lea ecx, [esp + 0x48]
call fcn.004039f0
lea ecx, [esp + 0x12cc]
mov dword [esp + 0x48], ebp
call fcn.004039f0
lea ecx, [esp + 0x10c4]
mov dword [esp + 0x12cc], ebp
call fcn.004039f0
lea ecx, [esp + 0xebc]
mov dword [esp + 0x10c4], ebp
call fcn.004039f0
lea ecx, [esp + 0xcb4]
mov dword [esp + 0xebc], ebp
call fcn.004039f0
lea ecx, [esp + 0xaac]
mov dword [esp + 0xcb4], ebp
call fcn.004039f0
mov eax, dword [esp + 0x40]
cmp eax, ebp
mov edi, eax
mov dword [esp + 0xaac], ebp
mov dword [esp + 0x28], edi
je 0x4617af
mov edx, dword [eax]
and edx, 0xff
cmp edx, 0x80
jae 0x4617af
push eax
call ebx
mov ecx, dword [esp + 0x88]
lea eax, [esp + 0x88]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x290]
and eax, 0xff
or eax, 0x100
and ecx, 0xff
mov dword [esp + 0x290], eax
or ecx, 0x100
mov dword [esp + 0x88], ecx
lea eax, [esp + 0x6a0]
mov dword [esp + 0x69c], eax
mov eax, dword [esp + 0x8a8]
lea edx, [esp + 0x290]
mov dword [esp + 0x28c], edx
mov edx, dword [esp + 0x498]
lea ecx, [esp + 0x498]
mov dword [esp + 0x494], ecx
mov ecx, dword [esp + 0x6a0]
and eax, 0xff
and edx, 0xff
or eax, 0x100
or edx, 0x100
and ecx, 0xff
mov dword [esp + 0x8a8], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x498], edx
or ecx, 0x100
cmp eax, ebp
lea edx, [esp + 0x8a8]
mov dword [esp + 0x6a0], ecx
mov byte [esp + 0x88], 0x80
mov byte [esp + 0x8c], 0
mov byte [esp + 0x290], 0x80
mov byte [esp + 0x294], 0
mov byte [esp + 0x498], 0x80
mov byte [esp + 0x49c], 0
mov byte [esp + 0x6a0], 0x80
mov byte [esp + 0x6a4], 0
mov dword [esp + 0x8a4], edx
mov byte [esp + 0x8a8], 0x80
mov byte [esp + 0x8ac], 0
je 0x4618ea
test dword [eax], 0xffffff00
je 0x4618ea
mov cl, byte [eax + 4]
add eax, 4
test cl, cl
je 0x4618ea
push eax
lea ecx, [esp + 0x88]
call fcn.004a4d20
lea ecx, [esp + 0x8a4]
push ecx
lea edx, [esp + 0x50]
push edx
lea ecx, [esp + 0x6a4]
call fcn.00440010
mov eax, dword [esp + 0x4c]
cmp eax, ebp
je 0x461910
add eax, 4
jmp 0x461912
xor eax, eax
push eax
lea ecx, [esp + 0x34]
call fcn.004bcb20
lea ecx, [esp + 0x4c]
call fcn.004039f0
lea ecx, [esp + 0x8a4]
mov dword [esp + 0x4c], ebp
call fcn.004039f0
lea ecx, [esp + 0x69c]
mov dword [esp + 0x8a4], ebp
call fcn.004039f0
lea ecx, [esp + 0x494]
mov dword [esp + 0x69c], ebp
call fcn.004039f0
lea ecx, [esp + 0x28c]
mov dword [esp + 0x494], ebp
call fcn.004039f0
lea ecx, [esp + 0x84]
mov dword [esp + 0x28c], ebp
call fcn.004039f0
mov eax, dword [esp + 0x40]
cmp eax, ebp
mov esi, eax
mov dword [esp + 0x84], ebp
mov dword [esp + 0x14], esi
je 0x4619a9
mov ecx, dword [eax]
and ecx, 0xff
cmp ecx, 0x80
jae 0x4619a9
push eax
call ebx
cmp edi, ebp
je 0x4619c0
test dword [edi], 0xffffff00
je 0x4619c0
mov al, byte [edi + 4]
test al, al
jne 0x461d70
cmp esi, ebp
je 0x461d70
test dword [esi], 0xffffff00
je 0x461d70
mov al, byte [esi + 4]
test al, al
je 0x461d70
mov eax, dword [esp + 0x10]
cmp eax, ebp
je 0x4619ec
add eax, 4
jmp 0x4619ee
xor eax, eax
push eax
call fcn.004b5740
add esp, 4
test al, al
je 0x461d70
mov esi, dword [esp + 0x1c]
lea edx, [esp + 0x10]
push edx
mov ecx, esi
call fcn.0045f5d0
cmp eax, 0xffffffff
jne 0x461d70
mov eax, dword [esi + 0x120]
mov ecx, dword [esp + 0x24]
lea eax, [ecx + eax + 0x40]
mov eax, dword [eax]
cmp eax, ebp
mov dword [esp + 0x20], eax
je 0x461a37
add eax, 4
cmp eax, ebp
jne 0x461a3b
xor eax, eax
jmp 0x461a75
mov edx, eax
mov al, byte [eax]
test al, al
mov ecx, 0x12345678
je 0x461a73
cmp al, 0x41
jl 0x461a58
cmp al, 0x5a
jg 0x461a58
movsx eax, al
add eax, 0x20
jmp 0x461a5b
movsx eax, al
mov esi, ecx
shl esi, 5
mov edi, ecx
add eax, esi
shr edi, 2
add edi, eax
mov al, byte [edx + 1]
xor ecx, edi
inc edx
test al, al
jne 0x461a48
mov eax, ecx
mov ecx, dword [esp + 0x1c]
xor edx, edx
div dword [ecx + 0x2f0]
mov eax, dword [ecx + 0x2f8]
mov ebx, dword [eax + edx*4]
xor ebp, ebp
test ebx, ebx
lea edx, [eax + edx*4]
je 0x461b65
mov eax, dword [esp + 0x20]
test eax, eax
je 0x461aa4
add eax, 4
jmp 0x461aa6
xor eax, eax
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x461b0d
test eax, eax
je 0x461b11
test ecx, ecx
je 0x461aba
lea edi, [ecx + 4]
jmp 0x461abc
xor edi, edi
cmp eax, edi
mov esi, eax
je 0x461b23
test edi, edi
je 0x461b15
cmp byte [eax], 0
je 0x461b03
nop
lea esp, [esp]
mov cl, byte [edi]
test cl, cl
je 0x461b03
mov al, byte [esi]
cmp al, 0x41
jl 0x461ae2
cmp al, 0x5a
jg 0x461ae2
add al, 0x20
cmp cl, 0x41
jl 0x461aef
cmp cl, 0x5a
jg 0x461aef
add cl, 0x20
cmp al, cl
jl 0x461b15
jg 0x461b15
mov al, byte [esi + 1]
inc esi
inc edi
test al, al
jne 0x461ad0
cmp byte [edi], 0
jmp 0x461b13
cmp byte [esi], 0
jne 0x461b15
cmp byte [edi], 0
jmp 0x461b13
test eax, eax
jne 0x461b15
test ecx, ecx
je 0x461b23
mov ebp, ebx
mov ebx, dword [ebx]
test ebx, ebx
jne 0x461a97
jmp 0x461b65
test ebx, ebx
je 0x461b65
test ebp, ebp
jne 0x461b31
mov ecx, dword [ebx]
mov dword [edx], ecx
jmp 0x461b36
mov edx, dword [ebx]
mov dword [ebp], edx
mov esi, dword [esp + 0x1c]
mov edi, dword [esi + 0x2ec]
dec edi
push 0
mov ecx, ebx
mov dword [esi + 0x2ec], edi
call fcn.00463200
mov eax, dword [esi + 0x2f4]
mov ecx, dword [eax + 0x10]
mov dword [ebx], ecx
mov ecx, dword [eax + 0xc]
dec ecx
mov dword [eax + 0x10], ebx
mov dword [eax + 0xc], ecx
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x120]
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + eax + 0x40]
lea esi, [ecx + eax + 0x40]
cmp edx, dword [esp + 0x10]
je 0x461bc0
mov ecx, esi
call fcn.004039f0
mov eax, dword [esp + 0x10]
mov dword [esi], eax
mov eax, dword [esp + 0x10]
test eax, eax
je 0x461bc0
mov ecx, dword [eax]
and ecx, 0xff
cmp ecx, 0x80
jae 0x461bb9
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
cmp eax, 0xff
jne 0x461bc0
mov ecx, esi
call fcn.0049d350
lea ecx, [esp + 0x50]
call fcn.004450b0
lea edx, [esp + 0x10]
push edx
lea ecx, [esp + 0x54]
call fcn.00436200
mov eax, dword [esp + 0x50]
test eax, eax
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x54], ebp
je 0x461bee
add eax, 4
test eax, eax
jne 0x461bf2
xor eax, eax
jmp 0x461c2d
mov edx, eax
mov al, byte [eax]
test al, al
mov ecx, 0x12345678
je 0x461c2b
nop
cmp al, 0x41
jl 0x461c10
cmp al, 0x5a
jg 0x461c10
movsx eax, al
add eax, 0x20
jmp 0x461c13
movsx eax, al
mov esi, ecx
shl esi, 5
mov edi, ecx
add eax, esi
shr edi, 2
add edi, eax
mov al, byte [edx + 1]
xor ecx, edi
inc edx
test al, al
jne 0x461c00
mov eax, ecx
mov ecx, dword [esp + 0x1c]
xor edx, edx
div dword [ecx + 0x2f0]
mov esi, dword [ecx + 0x2ec]
mov eax, dword [ecx + 0x2f8]
inc esi
mov dword [ecx + 0x2ec], esi
mov ecx, dword [ecx + 0x2f4]
mov edi, edx
mov ebx, dword [eax + edi*4]
mov eax, dword [ecx + 0x10]
test eax, eax
je 0x461c68
inc dword [ecx + 0xc]
mov edx, dword [eax]
mov dword [ecx + 0x10], edx
jmp 0x461c8a
mov edx, dword [ecx + 4]
cmp edx, dword [ecx + 0x18]
jae 0x461c85
mov eax, dword [ecx + 0xc]
mov esi, dword [ecx + 0x14]
inc eax
mov dword [ecx + 0xc], eax
mov eax, dword [ecx]
add eax, edx
add esi, edx
mov dword [ecx + 4], esi
jmp 0x461c8a
call fcn.0050b110
test eax, eax
je 0x461cb7
mov ecx, eax
call fcn.00463ed0
mov esi, eax
test esi, esi
je 0x461cb7
lea eax, [esp + 0x50]
push eax
lea ecx, [esi + 4]
call fcn.00463140
mov ecx, dword [esp + 0x1c]
mov dword [esi], ebx
mov edx, dword [ecx + 0x2f8]
mov dword [edx + edi*4], esi
lea ecx, [esp + 0x50]
call fcn.004039f0
mov esi, dword [esp + 0x1f00]
test esi, esi
mov dword [esp + 0x50], 0
je 0x461d74
or ecx, 0xffffffff
xor eax, eax
xor ebx, ebx
mov edi, str.filmstripmove
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.filmstripmove
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], ebx
call fcn.0049d9d0
mov eax, dword [esp + 0x20]
cmp eax, ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
mov byte [esp + 0x6c], bl
mov dword [esp + 0x70], eax
je 0x461d32
mov ecx, dword [eax]
and ecx, 0xff
cmp ecx, 0x80
jae 0x461d32
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov edx, dword [esi]
lea eax, [esp + 0x5c]
push eax
mov ecx, esi
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], 0x8000002
mov dword [esp + 0x84], esi
call dword [edx + 0x70]
lea ecx, [esp + 0x70]
call fcn.004039f0
lea ecx, [esp + 0x20]
mov dword [esp + 0x70], ebx
call fcn.004039f0
jmp 0x461d74
mov ebp, dword [esp + 0x2c]
mov esi, dword [esp + 0x1c]
xor ebx, ebx
push ebx
push ebx
push ebp
mov ecx, esi
call fcn.0045cb10
mov edi, eax
cmp edi, ebx
jne 0x461e82
cmp dword [esi + 8], ebp
jne 0x461da8
push ebx
push 2
push ebp
mov ecx, esi
call fcn.0045cb10
mov esi, eax
cmp esi, ebx
jne 0x461f7e
lea ecx, [esp + 0x14]
call fcn.004039f0
lea ecx, [esp + 0x28]
call fcn.004039f0
lea ecx, [esp + 0x10]
call fcn.004039f0
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x10], 0
mov ecx, dword [ebp + 0x124]
mov ebx, dword [esp + 0x44]
inc edi
shr ecx, 1
cmp edi, ecx
mov dword [esp + 0x2c], edi
jb 0x461010
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x58]
cmp dword [esi], ecx
je 0x461e33
mov ecx, esi
call fcn.004039f0
mov eax, dword [esp + 0x18]
test eax, eax
mov dword [esi], eax
je 0x461e33
mov ecx, dword [eax]
and ecx, 0xff
cmp ecx, 0x80
jae 0x461e2c
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
cmp eax, 0xff
jne 0x461e33
mov ecx, esi
call fcn.0049d350
lea ecx, [esp + 0x18]
call fcn.004039f0
xor esi, esi
lea ecx, [esp + 0x30]
mov dword [esp + 0x18], esi
call fcn.0045a0c0
cmp dword [ebx + 0x18], esi
je 0x46207a
cmp dword [ebx + 0x14], esi
je 0x46207a
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [ebx + 0x14], eax
jne 0x46207a
mov eax, dword [ebx + 0x18]
pop edi
pop esi
dec eax
mov dword [ebx + 0x18], eax
pop ebp
xor eax, eax
pop ebx
add esp, 0x1eec
ret 4
lea ecx, [esp + 0x14]
call fcn.004039f0
lea ecx, [esp + 0x28]
call fcn.004039f0
lea ecx, [esp + 0x10]
call fcn.004039f0
lea ecx, [esp + 0x18]
mov dword [esp + 0x10], ebx
call fcn.004039f0
mov eax, dword [esp + 0x30]
cmp eax, ebx
mov dword [esp + 0x18], ebx
je 0x461ee6
test dword [eax], 0xffffff00
je 0x461ee6
mov cl, byte [eax + 4]
test cl, cl
je 0x461ee6
mov al, byte [esp + 0x3e]
test al, al
je 0x461ee6
mov eax, dword [esp + 0x34]
cmp eax, ebx
je 0x461eda
add eax, 4
jmp 0x461edc
xor eax, eax
push eax
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
lea ecx, [esp + 0x40]
call fcn.004039f0
lea ecx, [esp + 0x38]
mov dword [esp + 0x40], ebx
call fcn.004039f0
lea ecx, [esp + 0x34]
mov dword [esp + 0x38], ebx
call fcn.004039f0
lea ecx, [esp + 0x30]
mov dword [esp + 0x34], ebx
call fcn.004039f0
mov esi, dword [esp + 0x44]
mov dword [esp + 0x30], ebx
cmp dword [esi + 0x18], ebx
je 0x461f45
cmp dword [esi + 0x14], ebx
je 0x461f45
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [esi + 0x14], eax
jne 0x461f45
dec dword [esi + 0x18]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1eec
ret 4
mov al, byte [esi + 5]
test al, al
mov dword [esi + 0x14], ebx
je 0x461f68
add esi, 0x1c
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1eec
ret 4
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x14]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1eec
ret 4
lea ecx, [esp + 0x14]
call fcn.004039f0
lea ecx, [esp + 0x28]
call fcn.004039f0
lea ecx, [esp + 0x10]
call fcn.004039f0
lea ecx, [esp + 0x18]
mov dword [esp + 0x10], ebx
call fcn.004039f0
mov eax, dword [esp + 0x30]
cmp eax, ebx
mov dword [esp + 0x18], ebx
je 0x461fe2
test dword [eax], 0xffffff00
je 0x461fe2
mov cl, byte [eax + 4]
test cl, cl
je 0x461fe2
mov al, byte [esp + 0x3e]
test al, al
je 0x461fe2
mov eax, dword [esp + 0x34]
cmp eax, ebx
je 0x461fd6
add eax, 4
jmp 0x461fd8
xor eax, eax
push eax
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
lea ecx, [esp + 0x40]
call fcn.004039f0
lea ecx, [esp + 0x38]
mov dword [esp + 0x40], ebx
call fcn.004039f0
lea ecx, [esp + 0x34]
mov dword [esp + 0x38], ebx
call fcn.004039f0
lea ecx, [esp + 0x30]
mov dword [esp + 0x34], ebx
call fcn.004039f0
mov edi, dword [esp + 0x44]
mov dword [esp + 0x30], ebx
cmp dword [edi + 0x18], ebx
je 0x462041
cmp dword [edi + 0x14], ebx
je 0x462041
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [edi + 0x14], eax
jne 0x462041
dec dword [edi + 0x18]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x1eec
ret 4
mov al, byte [edi + 5]
test al, al
mov dword [edi + 0x14], ebx
je 0x462064
add edi, 0x1c
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x1eec
ret 4
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x14]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x1eec
ret 4
mov al, byte [ebx + 5]
test al, al
mov dword [ebx + 0x14], esi
je 0x46209d
add ebx, 0x1c
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1eec
ret 4
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0x14]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1eec
ret 4