Function at 0x444163
Capabilities:
Identify system language via api

Disassembly:
push 0x274
mov eax, 0x48a9ac
call fcn.0045e53f
mov dword [ebp - 0x264], ecx
mov eax, dword [0x4b5b58]
test eax, eax
je 0x444c99
xor ecx, ecx
xor ebx, ebx
inc ecx
push 2
pop edi
cmp byte [0x4b6298], bl
jne 0x444305
mov ebx, dword [sym.imp.gdiplus.dll_GdipAlloc]
push 8
mov byte [0x4b6298], cl
call ebx
mov esi, eax
mov dword [ebp - 0x238], esi
test esi, esi
je 0x4441cb
and dword [esi], 0
push esi
push 0
push 0x49fcf4
call dword [sym.imp.gdiplus.dll_GdipCreateFontFamilyFromName]
mov dword [esi + 4], eax
jmp 0x4441cd
xor esi, esi
test esi, esi
je 0x4441eb
mov eax, dword [esi + 4]
and dword [esi + 4], 0
test eax, eax
je 0x444213
push dword [esi]
call dword [sym.imp.gdiplus.dll_GdipDeleteFontFamily]
push esi
call dword [sym.imp.gdiplus.dll_GdipFree]
push 8
call ebx
mov esi, eax
mov dword [ebp - 0x238], esi
test esi, esi
je 0x444211
and dword [esi], 0
push esi
push 0
push str.Tahoma
call dword [sym.imp.gdiplus.dll_GdipCreateFontFamilyFromName]
mov dword [esi + 4], eax
jmp 0x444213
xor esi, esi
push 8
call ebx
mov dword [ebp - 0x22c], eax
test eax, eax
je 0x44425c
and dword [ebp - 0x228], 0
test esi, esi
je 0x444230
mov eax, dword [esi]
jmp 0x444232
xor eax, eax
lea ecx, [ebp - 0x228]
push ecx
push edi
push 0
push ecx
mov dword [esp], 0x41400000
push eax
call dword [sym.imp.gdiplus.dll_GdipCreateFont]
mov ecx, dword [ebp - 0x22c]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x228]
mov dword [ecx], eax
push 8
call ebx
mov ebx, eax
mov dword [ebp - 0x238], ebx
test ebx, ebx
je 0x4442a3
and dword [ebp - 0x228], 0
test esi, esi
je 0x44427b
mov eax, dword [esi]
jmp 0x44427d
xor eax, eax
lea ecx, [ebp - 0x228]
push ecx
push edi
push 1
push ecx
mov dword [esp], 0x41600000
push eax
call dword [sym.imp.gdiplus.dll_GdipCreateFont]
mov dword [ebx + 4], eax
mov eax, dword [ebp - 0x228]
mov dword [ebx], eax
jmp 0x4442a5
xor ebx, ebx
push 8
mov dword [0x4b629c], ebx
call dword [sym.imp.gdiplus.dll_GdipAlloc]
mov ebx, eax
mov dword [ebp - 0x238], ebx
test ebx, ebx
je 0x4442f6
and dword [ebp - 0x228], 0
test esi, esi
je 0x4442ce
mov eax, dword [esi]
jmp 0x4442d0
xor eax, eax
lea ecx, [ebp - 0x228]
push ecx
push edi
push 1
push ecx
mov dword [esp], 0x41800000
push eax
call dword [sym.imp.gdiplus.dll_GdipCreateFont]
mov dword [ebx + 4], eax
mov eax, dword [ebp - 0x228]
mov dword [ebx], eax
jmp 0x4442f8
xor ebx, ebx
mov eax, dword [0x4b5b58]
mov dword [0x4b6294], ebx
xor ebx, ebx
lea ecx, [ebp - 0x228]
mov dword [ebp - method.Gdiplus::Image.virtual_0], vtable.Gdiplus::Bitmap.0
push ecx
push ebx
push 0x26200a
push ebx
push dword [0x4b5b48]
mov dword [ebp - 0x228], ebx
push eax
call dword [sym.imp.gdiplus.dll_GdipCreateBitmapFromScan0]
mov dword [ebp - 0x278], eax
mov eax, dword [ebp - 0x228]
mov dword [ebp - 0x27c], eax
lea ecx, [ebp - 0x22c]
mov dword [ebp - 4], ebx
push ecx
push eax
mov dword [ebp - 0x22c], ebx
call dword [sym.imp.gdiplus.dll_GdipGetImageGraphicsContext]
mov ecx, dword [ebp - 0x22c]
mov esi, eax
mov dword [ebp - 0x234], ecx
push 4
push ecx
call dword [sym.imp.gdiplus.dll_GdipSetSmoothingMode]
test eax, eax
mov dword [ebp - 0x260], ebx
cmovne esi, eax
lea eax, [ebp - 0x260]
push eax
push ebx
push ebx
mov ebx, dword [sym.imp.gdiplus.dll_GdipCreateStringFormat]
mov dword [ebp - 0x230], esi
call ebx
mov dword [ebp - 0x25c], eax
mov edi, dword [sym.imp.gdiplus.dll_GdipSetStringFormatAlign]
xor esi, esi
inc esi
push esi
push dword [ebp - 0x260]
call edi
mov ecx, dword [ebp - 0x25c]
test eax, eax
push esi
push dword [ebp - 0x260]
mov esi, dword [sym.imp.gdiplus.dll_GdipSetStringFormatLineAlign]
cmovne ecx, eax
mov dword [ebp - 0x25c], ecx
call esi
mov ecx, dword [ebp - 0x25c]
test eax, eax
cmovne ecx, eax
lea eax, [ebp - 0x258]
mov dword [ebp - 0x25c], ecx
xor ecx, ecx
push eax
push ecx
push ecx
mov dword [ebp - 0x258], ecx
call ebx
mov dword [ebp - 0x254], eax
push 0
push dword [ebp - 0x258]
call edi
mov ecx, dword [ebp - 0x254]
test eax, eax
push 1
push dword [ebp - 0x258]
cmovne ecx, eax
mov dword [ebp - 0x254], ecx
call esi
mov ecx, dword [ebp - 0x254]
test eax, eax
cmovne ecx, eax
mov dword [ebp - 0x254], ecx
xor ecx, ecx
lea eax, [ebp - 0x250]
mov dword [ebp - 0x250], ecx
push eax
push ecx
push ecx
call ebx
mov dword [ebp - 0x24c], eax
push 0
push dword [ebp - 0x250]
call edi
mov ecx, dword [ebp - 0x24c]
test eax, eax
push 2
pop ebx
push ebx
push dword [ebp - 0x250]
cmovne ecx, eax
mov dword [ebp - 0x24c], ecx
call esi
mov ecx, dword [ebp - 0x24c]
test eax, eax
mov dword [ebp - method.Gdiplus::Brush.virtual_0], 0x49fdc4
cmovne ecx, eax
lea eax, [ebp - 0x22c]
push eax
xor esi, esi
mov dword [ebp - 0x24c], ecx
push 0xffffffffffffffff
mov dword [ebp - 0x22c], esi
call dword [sym.imp.gdiplus.dll_GdipCreateSolidFill]
mov dword [ebp - 0x268], eax
mov eax, dword [ebp - 0x22c]
mov dword [ebp - 0x238], eax
mov dword [ebp - 0x26c], eax
mov eax, dword [0x4b5b58]
mov edx, dword [0x4b5b68]
push 5
mov dword [ebp - 0x240], eax
mov eax, dword [0x4b5b48]
mov dword [ebp - 0x23c], eax
pop eax
push 3
pop edi
push ecx
push esi
mov dword [ebp - 0x58], eax
lea ecx, [ebp - 0x234]
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0x58]
push 1
push eax
lea eax, [ebp - 0x248]
mov dword [ebp - 0x248], esi
push eax
mov dword [ebp - 0x244], esi
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x4c], 7
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x30], esi
call fcn.00443c24
mov ecx, dword [0x4b5938]
add esp, 0x14
test ecx, ecx
je 0x4445fd
mov eax, dword [0x4b5b58]
add eax, 0xfffffff6
mov dword [ebp - 0x248], 0x40a00000
push ecx
push ecx
push esi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
push ecx
mov dword [ebp - 0x244], 0x40400000
addsd xmm0, qword [eax*8 + 0x4a1340]
mov eax, dword [0x4b5b48]
add eax, 0xfffffff6
cvtpd2ps xmm0, xmm0
movss dword [ebp - 0x240], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x4a1340]
cvtpd2ps xmm0, xmm0
movss dword [ebp - 0x23c], xmm0
call fcn.0044257d
push ecx
mov ecx, dword [0x4b5938]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x4a1340]
cvtpd2ps xmm0, xmm0
movss dword [esp], xmm0
call fcn.00442558
push ecx
push ecx
xorps xmm3, xmm3
lea ecx, [ebp - 0x234]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x4a1340]
lea eax, [ebp - 0x248]
cvtpd2ps xmm0, xmm0
movss dword [esp + 4], xmm0
and dword [esp], esi
push eax
push dword [0x4b5938]
call fcn.0044249b
mov eax, dword [0x4b5b58]
lea esi, [ebp - 0x248]
mov edx, dword [0x4b629c]
sub esp, 0x10
mov dword [ebp - 0x244], edi
add eax, 0xfffffff6
mov edi, esp
mov dword [ebp - 0x240], eax
mov dword [ebp - 0x248], 0xf
lea eax, [ebp - 0x258]
mov dword [ebp - 0x23c], 0x19
push eax
movsd dword es:[edi], dword [esi]
push ecx
push 0x4b5948
push 0x32000000
movsd dword es:[edi], dword [esi]
lea ecx, [ebp - 0x234]
push 0xffffffffffffffff
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.00443fee
add esp, 0x24
cmp byte [0x4b5936], 0
je 0x44466c
xor esi, esi
mov eax, ebx
inc esi
jmp 0x44467a
xor eax, eax
cmp byte [0x4b58a2], al
push 1
pop esi
cmovne eax, esi
cmp byte [0x4b5935], 0
jne 0x44468e
xor ebx, ebx
cmp byte [0x4b58a3], bl
cmovne ebx, esi
mov edx, dword [0x4b58c0]
push ecx
push eax
push 3
lea eax, [ebp - 0x3c]
push eax
push 0x4b5908
lea ecx, [ebp - 0x234]
call fcn.00443c24
mov edx, dword [0x4b5b5c]
lea eax, [ebp - 0x3c]
add esp, 0x10
lea ecx, [ebp - 0x234]
push ebx
push 3
push eax
push 0x4b58d8
call fcn.00443c24
mov edx, dword [0x4b5b50]
lea eax, [ebp - 0x3c]
add esp, 0x10
lea ecx, [ebp - 0x234]
xor ebx, ebx
push ebx
push esi
push eax
push 0x4b5b6c
call fcn.00443c24
mov edx, dword [0x4b5918]
lea eax, [ebp - 0x3c]
add esp, 0x10
lea ecx, [ebp - 0x234]
push ebx
push esi
push eax
push 0x4b58c8
call fcn.00443c24
mov edx, dword [0x4b5940]
lea eax, [ebp - 0x3c]
add esp, 0x10
lea ecx, [ebp - 0x234]
push ebx
push esi
push eax
push 0x4b5924
call fcn.00443c24
add esp, 0x14
cmp dword [0x4b58c4], ebx
jle 0x44480c
mov edx, dword [0x4b5b54]
lea eax, [ebp - 0x3c]
push ecx
push ebx
push esi
push eax
push 0x4b58f8
lea ecx, [ebp - 0x234]
call fcn.00443c24
mov ecx, dword [0x4b58e8]
lea edi, [ebp - 0x248]
mov eax, dword [0x4b58f0]
mov esi, 0x4b58e8
movd xmm0, dword [0x4b58c4]
sub eax, ecx
cvtdq2pd xmm0, xmm0
mov edx, dword [0x4b5920]
add esp, 0x10
movsd dword es:[edi], dword [esi]
push ebx
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mulsd xmm1, xmm0
movd xmm0, ecx
lea ecx, [ebp - 0x234]
cvtdq2pd xmm0, xmm0
movsd dword es:[edi], dword [esi]
divsd xmm1, qword [0x4a12f8]
addsd xmm1, xmm0
cvttsd2si eax, xmm1
mov dword [ebp - 0x240], eax
xor eax, eax
inc eax
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x248]
push eax
call fcn.00443c24
mov eax, dword [ebp - 0x240]
lea edi, [ebp - 0x58]
mov esi, 0x4b5b80
mov edx, dword [0x4b593c]
add esp, 0x10
lea ecx, [ebp - 0x234]
movsd dword es:[edi], dword [esi]
push ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x58], eax
add eax, 5
mov dword [ebp - 0x50], eax
xor eax, eax
inc eax
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.00443c24
add esp, 0x14
lea ecx, [ebp - 0x2c]
call fcn.0041b057
mov byte [ebp - 4], 6
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [0x4b62f8]
cmp eax, dword [ecx + 4]
jle 0x444853
mov esi, 0x4b62f8
push esi
call fcn.0045dfa9
cmp dword [0x4b62f8], 0xffffffff
pop ecx
jne 0x444853
call fcn.00404eed
push esi
mov byte [0x4b62f4], al
call fcn.0045df5f
pop ecx
cmp byte [0x4b62f4], 0
je 0x4449f9
cmp dword [0x4b5944], 0
je 0x44488e
push 0x49fccc
lea ecx, [ebp - 0x64]
call fcn.0041b66b
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp - 0x28]
call fcn.0041e1ec
lea ecx, [ebp - 0x64]
jmp 0x444bac
cmp dword [0x4b5b4c], 0
push 0x49d710
jne 0x444912
lea ecx, [ebp - 0x9c]
call fcn.0041b66b
push 0xa
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x80]
push dword [0x4b58c4]
call fcn.0041b292
push str.ck_W_vN
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 9
call fcn.0041b66b
lea eax, [ebp - 0x44]
mov byte [ebp - 4], 0xa
push eax
lea ecx, [ebp - 0x28]
call fcn.00408695
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp - 0x28]
call fcn.00408695
lea eax, [ebp - 0x98]
push eax
lea ecx, [ebp - 0x28]
call fcn.00408695
lea ecx, [ebp - 0x48]
call fcn.0041baf2
lea ecx, [ebp - 0x80]
call fcn.0041baf2
lea ecx, [ebp - 0x9c]
jmp 0x444bac
lea ecx, [ebp - 0x128]
call fcn.0041b66b
push 0xa
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x10c]
push dword [0x4b58c4]
call fcn.0041b292
push 0x49fcfc
lea ecx, [ebp - 0xf0]
mov byte [ebp - 4], 0xc
call fcn.0041b591
push 0xa
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0xd4]
push dword [0x4b5b4c]
call fcn.0041b292
push 0x49fd44
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 0xe
call fcn.0041b66b
lea eax, [ebp - 0xb4]
mov byte [ebp - 4], 0xf
push eax
lea ecx, [ebp - 0x28]
call fcn.00408695
lea eax, [ebp - 0xd0]
push eax
lea ecx, [ebp - 0x28]
call fcn.00408695
lea eax, [ebp - 0xec]
push eax
lea ecx, [ebp - 0x28]
call fcn.00408695
lea eax, [ebp - 0x108]
push eax
lea ecx, [ebp - 0x28]
call fcn.00408695
lea eax, [ebp - 0x124]
push eax
lea ecx, [ebp - 0x28]
call fcn.00408695
lea ecx, [ebp - 0xb8]
call fcn.0041baf2
lea ecx, [ebp - 0xd4]
call fcn.0041baf2
lea ecx, [ebp - 0xf0]
call fcn.0041baf2
lea ecx, [ebp - 0x10c]
call fcn.0041baf2
lea ecx, [ebp - 0x128]
jmp 0x444bac
cmp dword [0x4b5944], 0
je 0x444a30
push str.Download_Failed...
lea ecx, [ebp - 0x144]
call fcn.0041b66b
lea eax, [ebp - 0x140]
mov byte [ebp - 4], 0x10
push eax
lea ecx, [ebp - 0x28]
call fcn.0041e1ec
lea ecx, [ebp - 0x144]
jmp 0x444bac
cmp dword [0x4b5b4c], 0
push 0x49d710
jne 0x444aca
lea ecx, [ebp - 0x198]
call fcn.0041b66b
push 0xa
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x17c]
push dword [0x4b58c4]
call fcn.0041b292
push str.Downloading...
lea ecx, [ebp - 0x160]
mov byte [ebp - 4], 0x12
call fcn.0041b66b
lea eax, [ebp - 0x15c]
mov byte [ebp - 4], 0x13
push eax
lea ecx, [ebp - 0x28]
call fcn.00408695
lea eax, [ebp - 0x178]
push eax
lea ecx, [ebp - 0x28]
call fcn.00408695
lea eax, [ebp - 0x194]
push eax
lea ecx, [ebp - 0x28]
call fcn.00408695
lea ecx, [ebp - 0x160]
call fcn.0041baf2
lea ecx, [ebp - 0x17c]
call fcn.0041baf2
lea ecx, [ebp - 0x198]
jmp 0x444bac
lea ecx, [ebp - 0x224]
call fcn.0041b66b
push 0xa
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x208]
push dword [0x4b58c4]
call fcn.0041b292
push str._time...
lea ecx, [ebp - 0x1ec]
mov byte [ebp - 4], 0x15
call fcn.0041b591
push 0xa
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x1d0]
push dword [0x4b5b4c]
call fcn.0041b292
push str.Check_file_failed_retry
lea ecx, [ebp - 0x1b4]
mov byte [ebp - 4], 0x17
call fcn.0041b66b
lea eax, [ebp - 0x1b0]
mov byte [ebp - 4], 0x18
push eax
lea ecx, [ebp - 0x28]
call fcn.00408695
lea eax, [ebp - 0x1cc]
push eax
lea ecx, [ebp - 0x28]
call fcn.00408695
lea eax, [ebp - 0x1e8]
push eax
lea ecx, [ebp - 0x28]
call fcn.00408695
lea eax, [ebp - 0x204]
push eax
lea ecx, [ebp - 0x28]
call fcn.00408695
lea eax, [ebp - 0x220]
push eax
lea ecx, [ebp - 0x28]
call fcn.00408695
lea ecx, [ebp - 0x1b4]
call fcn.0041baf2
lea ecx, [ebp - 0x1d0]
call fcn.0041baf2
lea ecx, [ebp - 0x1ec]
call fcn.0041baf2
lea ecx, [ebp - 0x208]
call fcn.0041baf2
lea ecx, [ebp - 0x224]
call fcn.0041baf2
mov eax, dword [0x4b5b6c]
lea esi, [ebp - 0x248]
mov dword [ebp - 0x248], eax
lea ecx, [ebp - 0x250]
mov eax, dword [0x4b5b70]
add eax, 0xffffffdd
mov edx, dword [0x4b6294]
mov dword [ebp - 0x244], eax
mov eax, dword [0x4b5b58]
add eax, 0xffffffb5
mov dword [ebp - 0x23c], 0x19
cmp dword [ebp - 0x14], 8
mov dword [ebp - 0x240], eax
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
sub esp, 0x10
mov edi, esp
push ecx
movsd dword es:[edi], dword [esi]
push ecx
push eax
push 0x32000000
movsd dword es:[edi], dword [esi]
lea ecx, [ebp - 0x234]
push 0xffffffffffffffff
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.00443fee
add esp, 0x24
mov dword [ebp - 0x22c], ebx
lea eax, [ebp - 0x22c]
push eax
push dword [ebp - 0x264]
call dword [sym.imp.gdiplus.dll_GdipCreateFromHDC]
mov esi, dword [ebp - 0x22c]
push ebx
push ebx
mov ebx, dword [ebp - 0x228]
push ebx
push esi
call dword [sym.imp.gdiplus.dll_GdipDrawImageI]
mov edi, dword [sym.imp.gdiplus.dll_GdipDeleteGraphics]
push esi
call edi
lea ecx, [ebp - 0x2c]
call fcn.0041baf2
push dword [ebp - 0x238]
call dword [sym.imp.gdiplus.dll_GdipDeleteBrush]
push dword [ebp - 0x250]
mov esi, dword [sym.imp.gdiplus.dll_GdipDeleteStringFormat]
call esi
push dword [ebp - 0x258]
call esi
push dword [ebp - 0x260]
call esi
push dword [ebp - 0x234]
call edi
push ebx
call dword [sym.imp.gdiplus.dll_GdipDisposeImage]
call fcn.0045e4e9
ret