Function at 0x43bf70
Capabilities:
Check if file exists
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6f9877
mov eax, dword fs:[0]
push eax
mov eax, 0x267f0
call fcn.004588f0
mov eax, dword [0x7ca418]
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 dword [ebp - 0x267c0], ecx
call fcn.0046026f
test al, al
je 0x43bfc5
lodsb al, byte [esi]
rol dword [ebp + 0x1aab9b13], 1
sbb edi, dword [esi]
adc eax, 0x4ef18190
pop ss
lodsd eax, dword [esi]
dec edx
pop esi
cmp byte [ebx + 0x2407de8], cl
add byte [eax + eax*8 + 0x22001b74], al
call fcn.00460047
test al, al
je 0x43bfe9
add byte [edx], ah
das
lahf
aaa
jge 0x43bff5
idiv byte [0x803728a5]
sbb al, 0xdf
cwde
mov dh, 0xaa
mov esi, 0x5d2ddca9
sbb eax, dword [edi - 0x6a172a8f]
inc ebx
add al, byte [eax]
call fcn.00460383
test al, al
je 0x43c00e
xlatb
add al, 0x84
push esi
sbb dh, bl
aam 0xf2
popal
jmp 0x43bf96
mov eax, dword [0x7e3d4c]
test eax, eax
jne 0x43c04c
push 0xac
call fcn.00458642
add esp, 4
mov dword [ebp - 0x267b4], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x43c03e
mov ecx, eax
call fcn.00430950
jmp 0x43c040
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x7e3d4c], eax
push str.08784
push 0
mov ecx, eax
call int.00432470
mov ebx, dword [ebp - 0x267c0]
lea eax, [ebx + 0x50]
push eax
lea eax, [ebp - 0x2d8]
push eax
call fcn.0045f706
add esp, 8
lea ecx, [ebp - 0x267fc]
mov dword [ebp - 4], 1
call fcn.0046447d
cmp dword [ebp - 0x2c4], 0x10
lea eax, [ebp - 0x2d8]
lea ecx, [ebp - 0x267fc]
mov byte [ebp - 4], 2
cmovae eax, dword [ebp - 0x2d8]
push eax
call fcn.0046452d
lea ecx, [ebp - 0x267fc]
call fcn.004648b5
mov edi, eax
mov ecx, 1
mov eax, dword [edi + 4]
sub eax, dword [edi]
cmove eax, ecx
mov dword [ebp - 0x267b4], eax
lea esi, [eax + 1]
push esi
call fcn.00458626
push esi
mov esi, eax
mov dword [ebp - 0x267bc], eax
push 0
push esi
call fcn.004ea000
mov ecx, dword [edi + 4]
add esp, 0x10
xor edx, edx
sub ecx, dword [edi]
je 0x43c102
nop
mov eax, dword [edi]
mov al, byte [edx + eax]
mov byte [edx + esi], al
inc edx
mov eax, dword [edi + 4]
sub eax, dword [edi]
cmp edx, eax
jb 0x43c0f0
lea eax, [ebp - 0x267c8]
mov dword [ebp - 0x267c4], 0
push eax
lea eax, [ebp - 0x267c4]
mov dword [ebp - 0x267c8], 0
push eax
push dword [ebp - 0x267b4]
push esi
call fcn.0046f458
mov eax, dword [ebp - 0x267c4]
add esp, 0x10
test eax, eax
jne 0x43c151
test esi, esi
je 0x43c16c
push esi
call fcn.0045862f
add esp, 4
xor esi, esi
jmp 0x43cca6
push eax
mov ecx, ebx
call fcn.0043ccf0
mov edi, eax
test esi, esi
je 0x43c168
push esi
call fcn.0045862f
add esp, 4
test edi, edi
jne 0x43c173
xor esi, esi
jmp 0x43cca6
xor eax, eax
mov dword [ebp - 0x234], 7
mov dword [ebp - 0x238], 0
mov word [ebp - 0x248], ax
push str.e2481ece992e
push dword [ebx + 0x24]
mov byte [ebp - 4], 3
call fcn.0043d770
mov edx, eax
add esp, 8
test edx, edx
je 0x43c1dc
cmp word [edx], 0
jne 0x43c1b4
xor ecx, ecx
jmp 0x43c1cf
mov ecx, edx
lea esi, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43c1c0
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x248]
call fcn.00420aa0
cmp dword [ebp - 0x238], 0
je 0x43c539
call fcn.00473e7e
mov esi, eax
call fcn.00460ca6
mov edi, eax
call fcn.00460a84
test esi, esi
jne 0x43c25c
test edi, edi
jne 0x43c25c
test eax, eax
je 0x43c25c
push str.a8a160861579
push dword [ebx + 0x24]
call fcn.0043d770
mov esi, eax
add esp, 8
test esi, esi
je 0x43c25c
push edi
push str.4911
push str.ZHSetting
call fcn.00432260
mov ecx, eax
call fcn.00461de6
mov edi, eax
test edi, edi
je 0x43c25c
push esi
call fcn.004f2299
push 0
mov esi, eax
call fcn.004f236c
sub eax, edi
add esp, 8
cdq
xor eax, edx
sub eax, edx
cmp eax, esi
jl 0x43c532
push str.581e1
push 0
call fcn.00436790
mov ecx, eax
call int.00432470
push 0
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x267b4], esp
push str.__open
call fcn.00420940
sub esp, 0x18
mov byte [ebp - 4], 4
mov ecx, esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 7
cmp dword [ecx + 0x14], 8
mov dword [ecx + 0x10], 0
jb 0x43c2b5
mov eax, dword [ecx]
jmp 0x43c2b7
mov eax, ecx
xor edx, edx
push 0xffffffffffffffff
mov word [eax], dx
lea eax, [ebp - 0x248]
push edx
push eax
call fcn.00420cf0
mov byte [ebp - 4], 3
call fcn.0045e254
add esp, 0x34
test eax, eax
je 0x43c532
lea esi, [ebx + 0xb0]
call fcn.00432260
mov ecx, eax
call fcn.00461c8b
push eax
mov ecx, esi
call fcn.00420a50
push 9
push str.zhCfgPath
mov ecx, esi
call fcn.00422710
push 1
push 0x794470
mov ecx, esi
call fcn.00422710
push 8
push str.Download
mov ecx, esi
call fcn.00422710
push 1
push 0x794470
mov ecx, esi
call fcn.00422710
xor eax, eax
mov dword [ebp - 0x2dc], 7
mov dword [ebp - 0x2e0], 0
mov word [ebp - 0x2f0], ax
sub esp, 0x18
mov byte [ebp - 4], 5
mov ecx, esp
mov dword [ebp - 0x267b4], esp
push 0x7943cc
call fcn.00420940
sub esp, 0x18
mov byte [ebp - 4], 6
mov ecx, esp
mov dword [ebp - 0x267bc], esp
push str.__filename
call fcn.00420940
sub esp, 0x18
mov byte [ebp - 4], 7
mov ecx, esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 7
cmp dword [ecx + 0x14], 8
mov dword [ecx + 0x10], 0
jb 0x43c3af
mov eax, dword [ecx]
jmp 0x43c3b1
mov eax, ecx
xor edx, edx
push 0xffffffffffffffff
mov word [eax], dx
lea eax, [ebp - 0x248]
push edx
push eax
call fcn.00420cf0
lea eax, [ebp - 0x230]
mov byte [ebp - 4], 5
push eax
call fcn.0045dfda
add esp, 0x4c
mov byte [ebp - 4], 8
call fcn.00460ca6
test eax, eax
jne 0x43c4be
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x267b4], esp
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], eax
mov dword [ecx + 0x14], 7
cmp dword [ecx + 0x14], 8
mov dword [ecx + 0x10], eax
jb 0x43c40e
mov eax, dword [ecx]
jmp 0x43c410
mov eax, ecx
xor edx, edx
push 0xffffffffffffffff
mov word [eax], dx
lea eax, [ebp - 0x230]
push edx
push eax
call fcn.00420cf0
cmp dword [esi + 0x14], 8
mov byte [ebp - 4], 9
jb 0x43c430
mov esi, dword [esi]
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x267bc], esp
push esi
call fcn.00420940
sub esp, 0x18
mov byte [ebp - 4], 0xa
mov ecx, esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 7
cmp dword [ecx + 0x14], 8
mov dword [ecx + 0x10], 0
jb 0x43c470
mov eax, dword [ecx]
jmp 0x43c472
mov eax, ecx
xor edx, edx
push 0xffffffffffffffff
mov word [eax], dx
lea eax, [ebp - 0x248]
push edx
push eax
call fcn.00420cf0
mov ecx, ebx
mov byte [ebp - 4], 8
call fcn.00439940
test eax, eax
je 0x43c4b7
mov ecx, ebx
call fcn.0043ce30
test eax, eax
je 0x43c4a7
push str.9c6a6
jmp 0x43c4e1
cmp dword [ebx + 0xcc], 0
jne 0x43c4d1
push str.eb3c0
jmp 0x43c4fb
push str.2ece5
jmp 0x43c4c3
push str.2b493
push 0
call fcn.00436790
mov ecx, eax
call int.00432470
mov ecx, ebx
call fcn.0043ad80
test eax, eax
je 0x43c4f6
push str.1824a
push 0
call fcn.00436790
mov ecx, eax
call int.00432470
mov esi, 1
jmp 0x43c50b
push str.78134
push 0
call fcn.00436790
mov ecx, eax
call int.00432470
xor esi, esi
mov eax, dword [ebp - 0x21c]
cmp eax, 8
jb 0x43cc6b
inc eax
lea ecx, [ebp - 0x230]
push eax
push dword [ebp - 0x230]
call fcn.00420ba0
jmp 0x43cc6b
xor esi, esi
jmp 0x43cc6b
xor eax, eax
mov dword [ebp - 0x264], 7
push eax
push 0x7943cc
lea ecx, [ebp - 0x278]
mov dword [ebp - 0x268], 0
mov word [ebp - 0x278], ax
call fcn.00420aa0
xor eax, eax
mov byte [ebp - 4], 0xb
push eax
push 0x7943cc
lea ecx, [ebp - 0x2c0]
mov dword [ebp - 0x2ac], 7
mov dword [ebp - 0x2b0], 0
mov word [ebp - 0x2c0], ax
call fcn.00420aa0
xor eax, eax
mov byte [ebp - 4], 0xc
push eax
push 0x7943cc
lea ecx, [ebp - 0x2a8]
mov dword [ebp - 0x294], 7
mov dword [ebp - 0x298], 0
mov word [ebp - 0x2a8], ax
call fcn.00420aa0
xor eax, eax
mov byte [ebp - 4], 0xd
push eax
push 0x7943cc
lea ecx, [ebp - 0x290]
mov dword [ebp - 0x27c], 7
mov dword [ebp - 0x280], 0
mov word [ebp - 0x290], ax
call fcn.00420aa0
push str.d9d5f679f5fb
push dword [ebx + 0x20]
mov byte [ebp - 4], 0xe
call fcn.0043d770
add esp, 8
test eax, eax
je 0x43c621
push eax
lea ecx, [ebp - 0x278]
call fcn.00420a50
push str.e10e77c36317
push dword [ebx + 0x20]
call fcn.0043d770
add esp, 8
test eax, eax
je 0x43c641
push eax
lea ecx, [ebp - 0x2c0]
call fcn.00420a50
push str.f0f120644267
push dword [ebx + 0x20]
call fcn.0043d770
add esp, 8
test eax, eax
je 0x43c661
push eax
lea ecx, [ebp - 0x2a8]
call fcn.00420a50
push str.c2c855de7872
push dword [ebx + 0x20]
call fcn.0043d770
add esp, 8
test eax, eax
je 0x43c681
push eax
lea ecx, [ebp - 0x290]
call fcn.00420a50
cmp dword [ebp - 0x268], 0
jne 0x43c691
xor esi, esi
jmp 0x43cc3f
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.004ea000
add esp, 0xc
lea eax, [ebp - 0x218]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x338]
call fcn.00420940
push 0
push 0
push 0x46b
mov ecx, ebx
mov byte [ebp - 4], 0xf
call fcn.0043d250
push 0
push 0
push 0x465
mov ecx, ebx
call fcn.0043d250
cmp dword [ebp - 0x264], 8
lea eax, [ebp - 0x278]
cmovae eax, dword [ebp - 0x278]
push eax
lea eax, [ebp - 0x320]
push eax
call fcn.0045d51f
lea eax, [ebp - 0x320]
mov byte [ebp - 4], 0x10
push eax
lea eax, [ebp - 0x338]
push eax
lea eax, [ebp - 0x260]
push eax
call fcn.00422950
add esp, 0x14
cmp dword [ebp - 0x24c], 8
lea eax, [ebp - 0x260]
mov byte [ebp - 4], 0x11
cmovae eax, dword [ebp - 0x260]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x43c771
cmp dword [ebp - 0x24c], 8
lea eax, [ebp - 0x260]
cmovae eax, dword [ebp - 0x260]
push eax
call fcn.004701a5
add esp, 4
lea eax, [ebp - 0x338]
push eax
lea eax, [ebp - 0x308]
push eax
call fcn.0045f706
lea eax, [ebp - 0x278]
mov byte [ebp - 4], 0x12
push eax
lea eax, [ebp - 0x2f0]
push eax
call fcn.0045f706
mov ecx, eax
add esp, 0x10
cmp dword [ecx + 0x14], 0x10
jb 0x43c7a8
mov ecx, dword [ecx]
lea edx, [ebp - 0x980]
nop
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx], al
lea edx, [edx + 1]
test al, al
jne 0x43c7b0
lea ecx, [ebp - 0x2f0]
call fcn.0042d5d0
cmp dword [ebp - 0x2f4], 0x10
lea ecx, [ebp - 0x308]
lea edx, [ebp - 0x780]
cmovae ecx, dword [ebp - 0x308]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx], al
lea edx, [edx + 1]
test al, al
jne 0x43c7e3
lea ecx, [ebp - 0x267b0]
call fcn.0046f50b
sub esp, 0x300
mov byte [ebp - 4], 0x13
mov edi, esp
lea esi, [ebp - 0x980]
mov ecx, 0xc0
rep movsd dword es:[edi], dword [esi]
lea ecx, [ebp - 0x267b0]
call int.0046f596
lea ecx, [ebp - 0x267b0]
call fcn.0046ffbe
push 0x300
lea eax, [ebp - 0x680]
push 0
push eax
call fcn.004ea000
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
xorps xmm0, xmm0
add esp, 0xc
mov dword [ebp - 0x380], 0
movups xmmword [ebp - 0x378], xmm0
nop dword [eax + eax]
lea ecx, [ebp - 0x267b0]
call fcn.0046fd1d
test eax, eax
je 0x43c900
lea eax, [ebp - 0x680]
push eax
lea ecx, [ebp - 0x267b0]
call fcn.0046fa54
movsd xmm0, qword [ebp - 0x370]
xor ecx, ecx
divsd xmm0, qword [ebp - 0x378]
xor edi, edi
movsd qword [ebx + 0x10], xmm0
mov esi, dword [ebx + 4]
mov eax, dword [ebx + 8]
mov ebx, eax
mulsd xmm0, qword [0x70d380]
sub ebx, esi
add ebx, 3
shr ebx, 2
cmp esi, eax
cmova ebx, ecx
cvttsd2si edx, xmm0
mov dword [ebp - 0x267b4], edx
test ebx, ebx
je 0x43c8f0
nop dword [eax]
mov ecx, dword [esi]
test ecx, ecx
je 0x43c8e8
mov eax, dword [ecx]
push edx
push 0
push 0x466
call dword [eax]
mov edx, dword [ebp - 0x267b4]
inc edi
add esi, 4
cmp edi, ebx
jne 0x43c8d0
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
push 0x64
call edi
mov ebx, dword [ebp - 0x267c0]
lea ecx, [ebp - 0x267b0]
call fcn.0046fd29
test eax, eax
je 0x43c860
lea eax, [ebp - 0x680]
push eax
lea ecx, [ebp - 0x267b0]
call fcn.0046fa54
movsd xmm0, qword [ebp - 0x370]
mov ecx, ebx
movsd qword [ebp - 0x267b8], xmm0
divsd xmm0, qword [ebp - 0x378]
movsd qword [ebx + 0x10], xmm0
mulsd xmm0, qword [0x70d380]
cvttsd2si eax, xmm0
push eax
push 0
push 0x466
call fcn.0043d250
movsd xmm0, qword [ebp - 0x267b8]
ucomisd xmm0, qword [ebp - 0x378]
lahf
test ah, 0x44
jp 0x43c985
ucomisd xmm0, qword [0x70eee0]
lahf
test ah, 0x44
jp 0x43ca11
lea eax, [ebp - 0x290]
xor esi, esi
push 0x7943cc
push eax
call fcn.00438860
add esp, 8
test al, al
je 0x43cbe9
sub esp, 0x18
lea eax, [ebp - 0x260]
mov ecx, esp
push eax
call fcn.00422530
lea eax, [ebp - 0x230]
mov ecx, ebx
push eax
call fcn.0043d870
cmp dword [ebp - 0x27c], 8
lea ecx, [ebp - 0x290]
lea eax, [ebp - 0x230]
cmovae ecx, dword [ebp - 0x290]
cmp dword [ebp - 0x21c], 8
push ecx
cmovae eax, dword [ebp - 0x230]
push eax
call fcn.004ed4b5
add esp, 8
lea ecx, [ebp - 0x230]
test eax, eax
mov eax, 1
cmove esi, eax
call fcn.00420900
test esi, esi
je 0x43cbe9
push 0x64
push 0
push 0x466
mov ecx, ebx
call fcn.0043d250
push 0x7943cc
lea ecx, [ebp - 0x230]
call fcn.00420940
push 1
push 0xffffffffffffffff
lea eax, [ebp - 0x267b4]
mov byte [ebp - 4], 0x14
push eax
lea ecx, [ebp - 0x320]
mov dword [ebp - 0x267b4], 0x2e
call fcn.004225e0
push eax
push 0
lea eax, [ebp - 0x2f0]
push eax
lea ecx, [ebp - 0x320]
call fcn.00422400
push str..exe
push eax
lea eax, [ebp - 0x350]
mov byte [ebp - 4], 0x15
push eax
call fcn.00422a20
add esp, 0xc
lea ecx, [ebp - 0x2f0]
mov byte [ebp - 4], 0x17
call fcn.00420900
lea eax, [ebp - 0x2c0]
push 0x7943cc
push eax
call fcn.00438860
add esp, 8
test al, al
je 0x43cac0
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x2c0]
push eax
lea ecx, [ebp - 0x350]
call fcn.00420cf0
lea eax, [ebp - 0x350]
push eax
lea eax, [ebp - 0x338]
push eax
lea eax, [ebp - 0x368]
push eax
call fcn.00422950
add esp, 0xc
lea ecx, [ebp - 0x230]
push eax
call fcn.004224b0
lea ecx, [ebp - 0x368]
call fcn.00420900
cmp dword [ebp - 0x21c], 8
lea ecx, [ebp - 0x230]
lea eax, [ebp - 0x260]
cmovae ecx, dword [ebp - 0x230]
cmp dword [ebp - 0x24c], 8
push ecx
cmovae eax, dword [ebp - 0x260]
push eax
call int.00470ef2
cmp dword [ebp - 0x21c], 8
lea eax, [ebp - 0x230]
cmovae eax, dword [ebp - 0x230]
push eax
call fcn.00470ea5
add esp, 0xc
push 0x3e8
call edi
cmp dword [ebp - 0x21c], 8
lea eax, [ebp - 0x230]
cmovae eax, dword [ebp - 0x230]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x43cb98
cmp dword [ebp - 0x294], 8
lea ecx, [ebp - 0x2a8]
lea eax, [ebp - 0x230]
cmovae ecx, dword [ebp - 0x2a8]
cmp dword [ebp - 0x21c], 8
push ecx
cmovae eax, dword [ebp - 0x230]
push eax
call fcn.004734ce
add esp, 8
push 0
push 0
push 0x469
mov ecx, ebx
call fcn.0043d250
cmp dword [ebp - 0x21c], 8
lea eax, [ebp - 0x230]
cmovae eax, dword [ebp - 0x230]
push eax
call fcn.004708a3
add esp, 4
push 0x3e8
call edi
lea ecx, [ebp - 0x350]
call fcn.00420900
lea ecx, [ebp - 0x230]
call fcn.00420900
mov esi, 1
jmp 0x43cc08
movsd xmm0, qword [0x70eee8]
mov ecx, ebx
push 0x64
push 0
push 0x467
movsd qword [ebx + 0x10], xmm0
call fcn.0043d250
xor esi, esi
lea ecx, [ebp - 0x267b0]
call fcn.00520bd0
lea ecx, [ebp - 0x308]
call fcn.0042d5d0
lea ecx, [ebp - 0x260]
call fcn.00420900
lea ecx, [ebp - 0x320]
call fcn.00420900
lea ecx, [ebp - 0x338]
call fcn.00420900
lea ecx, [ebp - 0x290]
call fcn.00420900
lea ecx, [ebp - 0x2a8]
call fcn.00420900
lea ecx, [ebp - 0x2c0]
call fcn.00420900
lea ecx, [ebp - 0x278]
call fcn.00420900
mov eax, dword [ebp - 0x234]
cmp eax, 8
jb 0x43cc89
inc eax
lea ecx, [ebp - 0x248]
push eax
push dword [ebp - 0x248]
call fcn.00420ba0
xor eax, eax
mov dword [ebp - 0x234], 7
mov dword [ebp - 0x238], 0
mov word [ebp - 0x248], ax
lea ecx, [ebp - 0x267fc]
call fcn.004644bf
mov ecx, dword [ebp - 0x2c4]
cmp ecx, 0x10
jb 0x43cccf
inc ecx
push ecx
push dword [ebp - 0x2d8]
lea ecx, [ebp - 0x2d8]
call fcn.0042f550
mov eax, esi
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.004584a2
mov esp, ebp
pop ebp
ret