Function at 0x420600
Capabilities:
Check if file exists
Copy file
Get common file path
Move file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x470a9f
mov eax, dword fs:[0]
push eax
sub esp, 0x240
mov eax, dword [0x48e110]
xor eax, esp
mov dword [esp + 0x238], eax
push ebx
push esi
push edi
mov eax, dword [0x48e110]
xor eax, esp
push eax
lea eax, [esp + 0x250]
mov dword fs:[0], eax
push 1
push 0x23
lea eax, [esp + 0x44]
push eax
mov esi, ecx
push 0
mov dword [esp + 0x3c], esi
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea ecx, [esp + 0x38]
push ecx
mov ecx, str.BaofengBFVKanDianYingProfiles
call fcn.00403080
lea edx, [esp + 0x3c]
push edx
lea ecx, [esp + 0x28]
push ecx
mov ecx, eax
mov dword [esp + 0x260], 0
call fcn.004240e0
add esp, 8
mov byte [esp + 0x258], 2
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4206ad
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x24]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
jne 0x4206c9
mov edx, dword [esp + 0x24]
push edx
call fcn.004022d0
add esp, 4
lea edi, [esi + 0x44]
lea eax, [esp + 0x14]
push edi
push eax
mov ebx, str.ApplicationDataProfilesBFVCenterChannel_
mov dword [esp + 0x30], edi
call fcn.00402c10
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x1c]
push edx
mov ebx, str.BFVCenterChannel_
mov byte [esp + 0x268], 3
call fcn.00402c10
mov byte [esp + 0x268], 4
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
call fcn.004033b0
add eax, 0x10
mov dword [esp + 0x2c], eax
push 0
push eax
mov byte [esp + 0x270], 5
call fcn.004028a0
lea eax, [esp + 0x38]
push edi
push eax
mov ebx, str.ApplicationDataProfiles_speed_config.json
call fcn.00402c10
add esp, 0x20
mov byte [esp + 0x258], 6
mov ecx, dword [eax]
mov edi, dword [esp + 0x14]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x420795
cmp dword [edi + 0xc], 0
lea esi, [edi + 0xc]
jl 0x420787
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x420787
call fcn.004033b0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [esi], eax
dec eax
test eax, eax
jg 0x42077e
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
add ebx, 0x10
mov dword [esp + 0x14], ebx
jmp 0x420795
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [esp + 0x18]
push ecx
call fcn.004032a0
mov byte [esp + 0x258], 5
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4207bd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x24]
push edx
mov ebx, str._speed_config.json
call fcn.00402c10
add esp, 8
mov byte [esp + 0x258], 7
mov ecx, dword [eax]
mov edi, dword [esp + 0x10]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x42082f
cmp dword [edi + 0xc], 0
lea esi, [edi + 0xc]
jl 0x420821
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x420821
call fcn.004033b0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [esi], eax
dec eax
test eax, eax
jg 0x420818
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
add ebx, 0x10
mov dword [esp + 0x10], ebx
jmp 0x42082f
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [esp + 0x14]
push ecx
call fcn.004032a0
mov byte [esp + 0x258], 5
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x420857
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x4208ac
cmp dword [edi + 0xc], 0
lea esi, [edi + 0xc]
jl 0x42089e
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x42089e
call fcn.004033b0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [esi], eax
dec eax
test eax, eax
jg 0x420895
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
add ebx, 0x10
mov dword [esp + 0x1c], ebx
jmp 0x4208ac
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [esp + 0x20]
push ecx
call fcn.004032a0
mov eax, dword [esp + 0x1c]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov edi, esp
call fcn.004033b0
add eax, 0x10
mov dword [edi], eax
call fcn.004027e0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
add esp, 4
push 0
push edx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x24]
push edx
mov ebx, str.BFVDesktop_
call fcn.00402c10
add esp, 8
mov byte [esp + 0x258], 8
mov ecx, dword [eax]
mov edi, dword [esp + 0x10]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x420950
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x420942
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x420942
call fcn.004033b0
mov esi, eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x420939
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
add esi, 0x10
mov dword [esp + 0x10], esi
jmp 0x420950
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [esp + 0x14]
push ecx
call fcn.004032a0
mov byte [esp + 0x258], 5
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x420978
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x10]
push ecx
call fcn.004022d0
mov edx, dword [esp + 0x2c]
add esp, 4
push edx
lea eax, [esp + 0x24]
push eax
mov ebx, str.ApplicationDataProfilesBFVDesktopchannel.js
call fcn.00402c10
add esp, 8
mov byte [esp + 0x258], 9
mov ecx, dword [eax]
mov edi, dword [esp + 0x14]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x4209f7
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x4209e9
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x4209e9
call fcn.004033b0
mov esi, eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x4209e0
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
add esi, 0x10
mov dword [esp + 0x14], esi
jmp 0x4209f7
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [esp + 0x18]
push ecx
call fcn.004032a0
mov byte [esp + 0x258], 5
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x420a1f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x24]
push edx
mov ebx, str.BFVDesktopchannel.js
call fcn.00402c10
add esp, 8
mov byte [esp + 0x258], 0xa
mov ecx, dword [eax]
mov edi, dword [esp + 0x10]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x420a91
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x420a83
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x420a83
call fcn.004033b0
mov esi, eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x420a7a
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
add esi, 0x10
mov dword [esp + 0x10], esi
jmp 0x420a91
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [esp + 0x14]
push ecx
call fcn.004032a0
mov byte [esp + 0x258], 5
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x420ab9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x420b0e
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x420b00
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x420b00
call fcn.004033b0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x420af7
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x1c], ebx
jmp 0x420b0e
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [esp + 0x20]
push ecx
call fcn.004032a0
mov esi, dword [esp + 0x1c]
push ecx
add esi, 0xfffffff0
mov eax, esi
mov dword [esp + 0x1c], esp
mov edi, esp
call fcn.004033b0
add eax, 0x10
mov dword [edi], eax
call fcn.004027e0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
add esp, 4
push 0
push edx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov ecx, dword [esp + 0x28]
push ecx
lea edx, [esp + 0x1c]
push edx
mov ebx, str.ApplicationDataProfilesBFVDesktop1.js
call fcn.00402c10
add esp, 8
mov byte [esp + 0x258], 0xb
mov ecx, dword [eax]
mov edi, dword [esp + 0x14]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x420bba
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x420bac
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x420bac
call fcn.004033b0
mov dword [esp + 0x20], eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x420b9f
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [esp + 0x20]
add ecx, 0x10
mov dword [esp + 0x14], ecx
jmp 0x420bba
mov ebx, dword [ecx - 0xc]
push ecx
lea edx, [esp + 0x18]
push edx
call fcn.004032a0
mov byte [esp + 0x258], 5
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x420be2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x24]
push edx
mov ebx, str.BFVDesktop1.js
call fcn.00402c10
add esp, 8
mov byte [esp + 0x258], 0xc
mov ecx, dword [eax]
mov edi, dword [esp + 0x10]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x420c5a
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x420c4c
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x420c4c
call fcn.004033b0
mov dword [esp + 0x18], eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x420c3f
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [esp + 0x18]
add ecx, 0x10
mov dword [esp + 0x10], ecx
jmp 0x420c5a
mov ebx, dword [ecx - 0xc]
push ecx
lea edx, [esp + 0x14]
push edx
call fcn.004032a0
mov byte [esp + 0x258], 5
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x420c82
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x10]
lea eax, [ecx - 0x10]
cmp eax, esi
je 0x420cd0
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x420cc2
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x420cc2
call fcn.004033b0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x420cb9
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x1c], ebx
jmp 0x420cd0
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [esp + 0x20]
push ecx
call fcn.004032a0
mov esi, dword [esp + 0x1c]
push ecx
add esi, 0xfffffff0
mov eax, esi
mov dword [esp + 0x1c], esp
mov edi, esp
call fcn.004033b0
add eax, 0x10
mov dword [edi], eax
call fcn.004027e0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
add esp, 4
push 0
push edx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov ecx, dword [esp + 0x28]
push ecx
lea edx, [esp + 0x24]
push edx
mov ebx, str.ApplicationDataProfilesBFVDesktop2.js
call fcn.00402c10
add esp, 8
mov byte [esp + 0x258], 0xd
mov ecx, dword [eax]
mov edi, dword [esp + 0x14]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x420d7c
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x420d6e
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x420d6e
call fcn.004033b0
mov dword [esp + 0x18], eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x420d61
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [esp + 0x18]
add ecx, 0x10
mov dword [esp + 0x14], ecx
jmp 0x420d7c
mov ebx, dword [ecx - 0xc]
push ecx
lea edx, [esp + 0x18]
push edx
call fcn.004032a0
mov byte [esp + 0x258], 5
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x420da4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x24]
push edx
mov ebx, str.BFVDesktop2.js
call fcn.00402c10
add esp, 8
mov byte [esp + 0x258], 0xe
mov ecx, dword [eax]
mov edi, dword [esp + 0x10]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x420e1c
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x420e0e
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x420e0e
call fcn.004033b0
mov dword [esp + 0x18], eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x420e01
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [esp + 0x18]
add ecx, 0x10
mov dword [esp + 0x10], ecx
jmp 0x420e1c
mov ebx, dword [ecx - 0xc]
push ecx
lea edx, [esp + 0x14]
push edx
call fcn.004032a0
mov byte [esp + 0x258], 5
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x420e44
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x10]
lea eax, [ecx - 0x10]
cmp eax, esi
je 0x420e92
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x420e84
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x420e84
call fcn.004033b0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x420e7b
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x1c], ebx
jmp 0x420e92
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [esp + 0x20]
push ecx
call fcn.004032a0
mov esi, dword [esp + 0x1c]
push ecx
add esi, 0xfffffff0
mov eax, esi
mov dword [esp + 0x1c], esp
mov edi, esp
call fcn.004033b0
add eax, 0x10
mov dword [edi], eax
call fcn.004027e0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
add esp, 4
push 0
push edx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov ecx, dword [esp + 0x28]
push ecx
lea edx, [esp + 0x24]
push edx
mov ebx, str.ApplicationDataProfilesBFVDesktop3.js
call fcn.00402c10
add esp, 8
mov byte [esp + 0x258], 0xf
mov ecx, dword [eax]
mov edi, dword [esp + 0x14]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x420f3e
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x420f30
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x420f30
call fcn.004033b0
mov dword [esp + 0x18], eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x420f23
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [esp + 0x18]
add ecx, 0x10
mov dword [esp + 0x14], ecx
jmp 0x420f3e
mov ebx, dword [ecx - 0xc]
push ecx
lea edx, [esp + 0x18]
push edx
call fcn.004032a0
mov byte [esp + 0x258], 5
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x420f66
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x24]
push edx
mov ebx, str.BFVDesktop3.js
call fcn.00402c10
add esp, 8
mov byte [esp + 0x258], 0x10
mov ecx, dword [eax]
mov edi, dword [esp + 0x10]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x420fde
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x420fd0
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x420fd0
call fcn.004033b0
mov dword [esp + 0x18], eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x420fc3
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [esp + 0x18]
add ecx, 0x10
mov dword [esp + 0x10], ecx
jmp 0x420fde
mov ebx, dword [ecx - 0xc]
push ecx
lea edx, [esp + 0x14]
push edx
call fcn.004032a0
mov byte [esp + 0x258], 5
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x421006
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x10]
lea eax, [ecx - 0x10]
cmp eax, esi
je 0x421054
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x421046
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x421046
call fcn.004033b0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x42103d
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x1c], ebx
jmp 0x421054
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [esp + 0x20]
push ecx
call fcn.004032a0
mov esi, dword [esp + 0x1c]
push ecx
add esi, 0xfffffff0
mov eax, esi
mov dword [esp + 0x1c], esp
mov edi, esp
call fcn.004033b0
add eax, 0x10
mov dword [edi], eax
call fcn.004027e0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
add esp, 4
push 0
push edx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov eax, dword [esp + 0x2c]
add eax, 0x44
push eax
lea ecx, [esp + 0x24]
push ecx
mov ebx, str.ApplicationDataProfilesBFVDesktop4.js
call fcn.00402c10
add esp, 8
mov byte [esp + 0x258], 0x11
mov ecx, dword [eax]
mov edi, dword [esp + 0x14]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x421103
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x4210f5
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x4210f5
call fcn.004033b0
mov dword [esp + 0x18], eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x4210e8
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [esp + 0x18]
add ecx, 0x10
mov dword [esp + 0x14], ecx
jmp 0x421103
mov ebx, dword [ecx - 0xc]
push ecx
lea edx, [esp + 0x18]
push edx
call fcn.004032a0
mov byte [esp + 0x258], 5
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42112b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x24]
push edx
mov ebx, str.BFVDesktop4.js
call fcn.00402c10
add esp, 8
mov byte [esp + 0x258], 0x12
mov ecx, dword [eax]
mov edi, dword [esp + 0x10]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x4211a3
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x421195
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x421195
call fcn.004033b0
mov dword [esp + 0x18], eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x421188
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [esp + 0x18]
add ecx, 0x10
mov dword [esp + 0x10], ecx
jmp 0x4211a3
mov ebx, dword [ecx - 0xc]
push ecx
lea edx, [esp + 0x14]
push edx
call fcn.004032a0
mov byte [esp + 0x258], 5
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4211cb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x10]
lea eax, [ecx - 0x10]
cmp eax, esi
je 0x421219
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x42120b
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x42120b
call fcn.004033b0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x421202
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x1c], ebx
jmp 0x421219
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [esp + 0x20]
push ecx
call fcn.004032a0
mov eax, dword [esp + 0x1c]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x1c], esp
mov edi, esp
call fcn.004033b0
add eax, 0x10
mov dword [edi], eax
call fcn.004027e0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
add esp, 4
push 0
push edx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov esi, dword [esp + 0x2c]
add esi, 0x44
lea ecx, [esp + 0x20]
push esi
push ecx
mov ebx, str.ApplicationDataProfilesBFVDesktopUrlConfig.ini
call fcn.00402c10
add esp, 8
mov byte [esp + 0x258], 0x13
mov ecx, dword [eax]
mov edi, dword [esp + 0x14]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x4212c6
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x4212b8
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x4212b8
call fcn.004033b0
mov dword [esp + 0x18], eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x4212ab
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [esp + 0x18]
add ecx, 0x10
mov dword [esp + 0x14], ecx
jmp 0x4212c6
mov ebx, dword [ecx - 0xc]
push ecx
lea edx, [esp + 0x18]
push edx
call fcn.004032a0
mov byte [esp + 0x258], 5
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4212ee
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x24]
push edx
mov ebx, str.BFVDesktopUrlConfig.ini
call fcn.00402c10
add esp, 8
mov byte [esp + 0x258], 0x14
mov ecx, dword [eax]
mov edi, dword [esp + 0x10]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x421366
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x421358
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x421358
call fcn.004033b0
mov dword [esp + 0x18], eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x42134b
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [esp + 0x18]
add ecx, 0x10
mov dword [esp + 0x10], ecx
jmp 0x421366
mov ebx, dword [ecx - 0xc]
push ecx
lea edx, [esp + 0x14]
push edx
call fcn.004032a0
mov byte [esp + 0x258], 5
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42138e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
push 0
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
lea eax, [esp + 0x18]
push esi
push eax
mov ebx, str.ApplicationDataProfilesLoading_
call fcn.00402c10
add esp, 8
mov byte [esp + 0x258], 0x18
mov ecx, dword [eax]
mov edi, dword [esp + 0x14]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x42140e
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x421400
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x421400
call fcn.004033b0
mov esi, eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x4213f7
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
add esi, 0x10
mov dword [esp + 0x14], esi
jmp 0x42140e
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [esp + 0x18]
push ecx
call fcn.004032a0
mov byte [esp + 0x258], 5
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x421436
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x1c]
push edx
mov ebx, str.Loading_
call fcn.00402c10
add esp, 8
mov byte [esp + 0x258], 0x19
mov ecx, dword [eax]
mov edi, dword [esp + 0x10]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x4214a8
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x42149a
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x42149a
call fcn.004033b0
mov esi, eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x421491
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
add esi, 0x10
mov dword [esp + 0x10], esi
jmp 0x4214a8
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [esp + 0x14]
push ecx
call fcn.004032a0
mov byte [esp + 0x258], 5
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4214d0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x421525
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x421517
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x421517
call fcn.004033b0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x42150e
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x1c], ebx
jmp 0x421525
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [esp + 0x20]
push ecx
call fcn.004032a0
mov edx, dword [esp + 0x1c]
push 0
push edx
call fcn.004028a0
mov eax, dword [esp + 0x34]
add eax, 0x44
push eax
lea eax, [esp + 0x24]
push eax
mov ebx, str.ApplicationDataProfilesSkin_
call fcn.00402c10
add esp, 0x10
mov byte [esp + 0x258], 0x1a
mov ecx, dword [eax]
mov edi, dword [esp + 0x14]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x4215a6
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x421598
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x421598
call fcn.004033b0
mov esi, eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x42158f
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
add esi, 0x10
mov dword [esp + 0x14], esi
jmp 0x4215a6
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [esp + 0x18]
push ecx
call fcn.004032a0
mov byte [esp + 0x258], 5
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4215ce
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x1c]
push edx
mov ebx, str.Skin_
call fcn.00402c10
add esp, 8
mov byte [esp + 0x258], 0x1b
mov ecx, dword [eax]
mov edi, dword [esp + 0x10]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x421640
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x421632
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x421632
call fcn.004033b0
mov esi, eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x421629
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
add esi, 0x10
mov dword [esp + 0x10], esi
jmp 0x421640
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [esp + 0x14]
push ecx
call fcn.004032a0
mov byte [esp + 0x258], 5
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x421668
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x4216bd
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x4216af
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x4216af
call fcn.004033b0
mov esi, eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x4216a6
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
add esi, 0x10
mov dword [esp + 0x1c], esi
jmp 0x4216bd
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [esp + 0x20]
push ecx
call fcn.004032a0
mov edx, dword [esp + 0x1c]
push 0
push edx
call fcn.004028a0
mov eax, dword [esp + 0x18]
push eax
call fcn.004022d0
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
add esp, 0xc
push 8
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne 0x4216ff
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
push eax
push ecx
mov ecx, dword [esp + 0x34]
call fcn.00421b30
mov eax, dword [esp + 0x2c]
add eax, 0x44
push eax
lea edx, [esp + 0x1c]
push edx
mov ebx, str.ApplicationDataProfilesTips_
mov dword [esp + 0x30], eax
call fcn.00402c10
add esp, 8
mov byte [esp + 0x258], 0x1c
mov ecx, dword [eax]
mov edi, dword [esp + 0x14]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x421778
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x42176a
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x42176a
call fcn.004033b0
mov esi, eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x421761
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
add esi, 0x10
mov dword [esp + 0x14], esi
jmp 0x421778
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [esp + 0x18]
push ecx
call fcn.004032a0
mov byte [esp + 0x258], 5
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4217a0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x1c]
push edx
mov ebx, str.Tips_
call fcn.00402c10
add esp, 8
mov byte [esp + 0x258], 0x1d
mov ecx, dword [eax]
mov edi, dword [esp + 0x10]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x421812
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x421804
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x421804
call fcn.004033b0
mov esi, eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x4217fb
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
add esi, 0x10
mov dword [esp + 0x10], esi
jmp 0x421812
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [esp + 0x14]
push ecx
call fcn.004032a0
mov byte [esp + 0x258], 5
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42183a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x38]
push edx
mov ebx, str.theme.js
call fcn.00402c10
add esp, 8
mov byte [esp + 0x258], 0x1e
mov eax, dword [esp + 0x34]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4218a1
lea eax, [esp + 0x10]
lea edi, [esp + 0x1c]
call fcn.00402ab0
mov ecx, dword [esp + 0x1c]
push 0
push ecx
call fcn.004028a0
mov edx, dword [esp + 0x18]
push edx
call fcn.004022d0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
add esp, 0xc
push eax
push ecx
mov ecx, dword [esp + 0x34]
call fcn.00421b30
mov edx, dword [esp + 0x28]
push edx
lea eax, [esp + 0x34]
push eax
mov ebx, str.ApplicationData_
call fcn.00402c10
mov byte [esp + 0x260], 0x1f
mov ecx, dword [esp + 0x38]
push 0
push ecx
call fcn.004028a0
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x2c]
push eax
mov ebx, str.menu.xml
call fcn.00402c10
add esp, 0x18
mov byte [esp + 0x258], 0x20
mov ecx, dword [eax]
mov edi, dword [esp + 0x30]
lea eax, [ecx - 0x10]
add edi, 0xfffffff0
cmp eax, edi
je 0x42193b
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x42192d
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x42192d
call fcn.004033b0
mov esi, eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x421924
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
add esi, 0x10
mov dword [esp + 0x30], esi
jmp 0x42193b
mov ebx, dword [ecx - 0xc]
push ecx
lea ecx, [esp + 0x34]
push ecx
call fcn.004032a0
mov byte [esp + 0x258], 0x1f
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x421963
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x24], esp
mov edi, esp
call fcn.004033b0
add eax, 0x10
mov dword [edi], eax
call fcn.004027e0
mov byte [esp + 0x25c], 0x1e
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
add esp, 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4219ab
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x258], 5
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4219d3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x258], 4
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4219fb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x258], 3
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x421a23
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x258], 2
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x421a4b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x258], 0xffffffff
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x421a76
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x250]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x238]
xor ecx, esp
call fcn.0045a10c
mov esp, ebp
pop ebp
ret