Function at 0x41b5e0
Capabilities:
Access peb ldr_data
Check if file exists
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4adba2
mov eax, dword fs:[0]
push eax
sub esp, 0x448
mov eax, dword [0x4e42d0]
xor eax, esp
mov dword [esp + 0x440], eax
push ebx
push esi
push edi
mov eax, dword [0x4e42d0]
xor eax, esp
push eax
lea eax, [esp + 0x458]
mov dword fs:[0], eax
mov esi, ecx
lea eax, [esp + 0x28]
push eax
mov ecx, str.9.06.0912.1111
mov dword [esp + 0x30], esi
call fcn.00402b20
xor ebx, ebx
mov dword [esp + 0x460], ebx
mov edx, dword [0x4e3f18]
mov eax, dword [edx + 0xc]
mov ecx, 0x4e3f18
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
mov byte [esp + 0x460], 1
cmp dword [esi + 0x9c], ebx
jne 0x41b69b
push 0x1a0
call fcn.0048fbae
add esp, 4
mov dword [esp + 0x1c], eax
mov byte [esp + 0x460], 3
cmp eax, ebx
je 0x41b68b
push ebx
push eax
call fcn.00424e20
jmp 0x41b68d
xor eax, eax
mov byte [esp + 0x460], 1
mov dword [esi + 0x9c], eax
mov eax, dword [esi + 0x9c]
lea esi, [esp + 0x20]
call fcn.0043b700
lea edi, [esp + 0x24]
mov byte [esp + 0x460], 4
call fcn.00405000
mov byte [esp + 0x460], 1
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 0x41b6e3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [0x4e3f18]
mov eax, dword [edx + 0xc]
mov ecx, 0x4e3f18
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
mov byte [esp + 0x460], 5
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
push ecx
push edx
push str.http:__tuijian.bd.baofeng.com_banding_servlet_BandingXml
push str._s_ver_sditchid_suid
lea edi, [esp + 0x24]
call fcn.00402d60
mov edi, dword [esp + 0x24]
add esp, 0x10
cmp dword [edi - 4], 1
jle 0x41b73e
mov eax, dword [edi - 0xc]
push eax
lea ecx, [esp + 0x18]
push ecx
call fcn.00402bc0
mov edi, dword [esp + 0x14]
xor edx, edx
mov esi, 7
mov eax, edi
mov word [esp + 0x4c], dx
mov dword [esp + 0x60], esi
mov dword [esp + 0x5c], ebx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x41b757
sub eax, edx
sar eax, 1
push eax
mov eax, edi
lea ecx, [esp + 0x50]
call fcn.004030c0
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0x50]
mov byte [esp + 0x464], 6
call fcn.00418cc0
mov eax, 8
mov byte [esp + 0x460], al
cmp dword [esp + 0x60], eax
jb 0x41b7aa
mov ecx, dword [esp + 0x4c]
push ecx
call fcn.0048f6c0
add esp, 4
mov eax, dword [edi - 8]
push eax
xor edx, edx
push edi
mov dword [esp + 0x68], esi
mov dword [esp + 0x64], ebx
mov word [esp + 0x54], dx
call fcn.004907a5
add esp, 8
cmp eax, ebx
jl 0x41bbc7
cmp eax, dword [edi - 8]
jg 0x41bbc7
mov dword [edi - 0xc], eax
xor ecx, ecx
mov word [edi + eax*2], cx
mov eax, 0xbb8
mov dword [esp + 0x238], eax
mov dword [esp + 0x23c], eax
mov dword [esp + 0x240], eax
xor edx, edx
push 3
mov eax, 0x4bba2c
lea ecx, [esp + 0x34]
mov dword [esp + 0x238], ebx
mov dword [esp + 0x48], esi
mov dword [esp + 0x44], ebx
mov word [esp + 0x34], dx
call fcn.004030c0
lea ecx, [esp + 0x30]
lea ebx, [esp + 0x84]
mov byte [esp + 0x460], 9
call fcn.004191a0
mov byte [esp + 0x460], 8
cmp dword [esp + 0x44], 8
mov byte [esp + 0x13], al
jb 0x41b858
mov eax, dword [esp + 0x30]
push eax
call fcn.0048f6c0
add esp, 4
mov ebx, dword [esp + 0x2c]
lea esi, [ebx + 0x50]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [ebx + 0x4c], 0
push esi
je 0x41b91e
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea esi, [esp + 0x84]
call fcn.00418f00
lea eax, [edi - 0x10]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x460], 1
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b8a7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x460], 0
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b8cf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x460], 0xffffffff
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b8fa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x458]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x440]
xor ecx, esp
call fcn.0048f6cb
mov esp, ebp
pop ebp
ret
mov dword [ebx + 0x4c], 1
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp byte [esp + 0x13], 0
je 0x41bb50
lea eax, [esp + 0x30]
lea edx, [esp + 0x84]
call fcn.0041a1b0
mov byte [esp + 0x460], 0xa
cmp dword [esp + 0x44], 8
mov ecx, dword [esp + 0x30]
jae 0x41b95d
lea ecx, [esp + 0x30]
lea edx, [esp + 0x18]
push edx
call fcn.00402b20
mov eax, 4
lea ecx, [esp + 0x20]
lea edx, [esp + 0x18]
mov byte [esp + 0x460], 0xb
call fcn.00405a30
mov byte [esp + 0x460], 0xc
mov eax, dword [esp + 0x20]
push str.none
push eax
call fcn.004909a6
add esp, 8
test eax, eax
jne 0x41b9ab
mov dword [ebx + 0x40], 1
jmp 0x41bacb
mov eax, dword [esp + 0x18]
cmp dword [eax - 0xc], 0
jl 0x41bac4
push str._root_
push eax
call fcn.0049230f
add esp, 8
test eax, eax
je 0x41bac4
mov ecx, dword [esp + 0x18]
sub eax, ecx
sar eax, 1
cmp eax, 0xffffffff
je 0x41bac4
cmp dword [ecx - 0xc], 0
jl 0x41bac4
push str._node_
push ecx
call fcn.0049230f
add esp, 8
test eax, eax
je 0x41bac4
sub eax, dword [esp + 0x18]
sar eax, 1
cmp eax, 0xffffffff
je 0x41bac4
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x24e]
push edx
mov word [esp + 0x250], cx
call fcn.00493520
add esp, 0xc
lea eax, [esp + 0x244]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x248]
call fcn.00402b20
mov edx, str.BaoFengBdSetup.xml
lea eax, [esp + 0x1c]
mov byte [esp + 0x460], 0xd
call fcn.0040ae90
mov eax, dword [esp + 0x1c]
lea esi, [esp + 0x68]
call fcn.004031d0
mov eax, esi
lea esi, [esp + 0x84]
mov byte [esp + 0x460], 0xe
call fcn.0041a1e0
test al, al
je 0x41baa9
lea edi, [ebx + 0x44]
lea eax, [esp + 0x1c]
mov dword [ebx + 0x40], 3
call fcn.00405000
mov edi, dword [esp + 0x14]
jmp 0x41bab0
mov dword [ebx + 0x40], 2
lea esi, [esp + 0x68]
call fcn.0041ec50
lea ecx, [esp + 0x1c]
call fcn.00402760
jmp 0x41bacb
mov dword [ebx + 0x40], 2
mov byte [esp + 0x460], 0xb
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 0x41baf3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x460], 0xa
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 0x41bb1b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x460], 8
cmp dword [esp + 0x44], 8
jb 0x41bb37
mov ecx, dword [esp + 0x30]
push ecx
call fcn.0048f6c0
add esp, 4
xor edx, edx
mov dword [esp + 0x44], 7
mov dword [esp + 0x40], 0
mov word [esp + 0x30], dx
jmp 0x41bb57
mov dword [ebx + 0x40], 2
mov eax, dword [ebx + 0x40]
cmp eax, 2
jne 0x41bb75
mov esi, ebx
call fcn.0041aa30
mov eax, dword [ebx + 0x48]
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
jmp 0x41b877
cmp eax, 3
jne 0x41bbb8
mov eax, dword [ebx + 0x44]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x41bbb8
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
mov eax, dword [ebx + 0x44]
push ecx
sub eax, 0x10
mov dword [esp + 0x30], esp
mov esi, esp
call fcn.004050f0
add eax, 0x10
push ebx
mov dword [esi], eax
call fcn.0041ab90
call dword [sym.imp.ole32.dll_CoUninitialize]
call fcn.0041bed0
mov eax, dword [ebx + 0x48]
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
jmp 0x41b877
push 0x80070057
call fcn.004035c0
int3