Function at 0x444635
Capabilities:
Identify system language via api

Disassembly:
push 0x274
mov eax, 0x48b7cb
call fcn.0045edb6
mov dword [ebp - 0x264], ecx
mov eax, dword [0x4b6afc]
test eax, eax
je 0x44516b
xor ecx, ecx
xor ebx, ebx
inc ecx
push 2
pop edi
cmp byte [0x4b728c], bl
jne 0x4447d7
mov ebx, dword [sym.imp.gdiplus.dll_GdipAlloc]
push 8
mov byte [0x4b728c], cl
call ebx
mov esi, eax
mov dword [ebp - 0x238], esi
test esi, esi
je 0x44469d
and dword [esi], 0
push esi
push 0
push 0x4a0c94
call dword [sym.imp.gdiplus.dll_GdipCreateFontFamilyFromName]
mov dword [esi + 4], eax
jmp 0x44469f
xor esi, esi
test esi, esi
je 0x4446bd
mov eax, dword [esi + 4]
and dword [esi + 4], 0
test eax, eax
je 0x4446e5
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 0x4446e3
and dword [esi], 0
push esi
push 0
push 0x4a0dfc
call dword [sym.imp.gdiplus.dll_GdipCreateFontFamilyFromName]
mov dword [esi + 4], eax
jmp 0x4446e5
xor esi, esi
push 8
call ebx
mov dword [ebp - 0x22c], eax
test eax, eax
je 0x44472e
and dword [ebp - 0x228], 0
test esi, esi
je 0x444702
mov eax, dword [esi]
jmp 0x444704
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 0x444775
and dword [ebp - 0x228], 0
test esi, esi
je 0x44474d
mov eax, dword [esi]
jmp 0x44474f
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 0x444777
xor ebx, ebx
push 8
mov dword [0x4b7290], ebx
call dword [sym.imp.gdiplus.dll_GdipAlloc]
mov ebx, eax
mov dword [ebp - 0x238], ebx
test ebx, ebx
je 0x4447c8
and dword [ebp - 0x228], 0
test esi, esi
je 0x4447a0
mov eax, dword [esi]
jmp 0x4447a2
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 0x4447ca
xor ebx, ebx
mov eax, dword [0x4b6afc]
mov dword [0x4b7294], ebx
xor ebx, ebx
lea ecx, [ebp - 0x228]
mov dword [ebp - method.Gdiplus::Bitmap.virtual_0], vtable.Gdiplus::Bitmap.0
push ecx
push ebx
push 0x26200a
push ebx
push dword [0x4b6ae8]
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], 0x4a0eb4
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 [0x4b6afc]
mov edx, dword [0x4b6b20]
push 5
mov dword [ebp - 0x240], eax
mov eax, dword [0x4b6ae8]
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.004440f6
mov ecx, dword [0x4b68d8]
add esp, 0x14
test ecx, ecx
je 0x444acf
mov eax, dword [0x4b6afc]
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 + 0x4a2430]
mov eax, dword [0x4b6ae8]
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 + 0x4a2430]
cvtpd2ps xmm0, xmm0
movss dword [ebp - 0x23c], xmm0
call fcn.00442a4a
push ecx
mov ecx, dword [0x4b68d8]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x4a2430]
cvtpd2ps xmm0, xmm0
movss dword [esp], xmm0
call fcn.00442a25
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 + 0x4a2430]
lea eax, [ebp - 0x248]
cvtpd2ps xmm0, xmm0
movss dword [esp + 4], xmm0
and dword [esp], esi
push eax
push dword [0x4b68d8]
call fcn.00442968
mov eax, dword [0x4b6afc]
lea esi, [ebp - 0x248]
mov edx, dword [0x4b7290]
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 0x4b68e8
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.004444c0
add esp, 0x24
cmp byte [0x4b6af8], 0
je 0x444b3e
xor esi, esi
mov eax, ebx
inc esi
jmp 0x444b4c
xor eax, eax
cmp byte [0x4b6af9], al
push 1
pop esi
cmovne eax, esi
cmp byte [0x4b68a3], 0
jne 0x444b60
xor ebx, ebx
cmp byte [0x4b6afa], bl
cmovne ebx, esi
mov edx, dword [0x4b6b38]
push ecx
push eax
push 3
lea eax, [ebp - 0x3c]
push eax
push 0x4b6b80
lea ecx, [ebp - 0x234]
call fcn.004440f6
mov edx, dword [0x4b6b00]
lea eax, [ebp - 0x3c]
add esp, 0x10
lea ecx, [ebp - 0x234]
push ebx
push 3
push eax
push 0x4b6b50
call fcn.004440f6
mov edx, dword [0x4b6af0]
lea eax, [ebp - 0x3c]
add esp, 0x10
lea ecx, [ebp - 0x234]
xor ebx, ebx
push ebx
push esi
push eax
push 0x4b6b0c
call fcn.004440f6
mov edx, dword [0x4b6b90]
lea eax, [ebp - 0x3c]
add esp, 0x10
lea ecx, [ebp - 0x234]
push ebx
push esi
push eax
push 0x4b6b40
call fcn.004440f6
mov edx, dword [0x4b68e0]
lea eax, [ebp - 0x3c]
add esp, 0x10
lea ecx, [ebp - 0x234]
push ebx
push esi
push eax
push 0x4b68c8
call fcn.004440f6
add esp, 0x14
cmp dword [0x4b6b3c], ebx
jle 0x444cde
mov edx, dword [0x4b6af4]
lea eax, [ebp - 0x3c]
push ecx
push ebx
push esi
push eax
push 0x4b6b70
lea ecx, [ebp - 0x234]
call fcn.004440f6
mov ecx, dword [0x4b6b60]
lea edi, [ebp - 0x248]
mov eax, dword [0x4b6b68]
mov esi, 0x4b6b60
movd xmm0, dword [0x4b6b3c]
sub eax, ecx
cvtdq2pd xmm0, xmm0
mov edx, dword [0x4b68c4]
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 [0x4a23f0]
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.004440f6
mov eax, dword [ebp - 0x240]
lea edi, [ebp - 0x58]
mov esi, 0x4b6b24
mov edx, dword [0x4b68dc]
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.004440f6
add esp, 0x14
lea ecx, [ebp - 0x2c]
call fcn.0041b469
mov byte [ebp - 4], 6
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [0x4b72f0]
cmp eax, dword [ecx + 4]
jle 0x444d25
mov esi, 0x4b72f0
push esi
call fcn.0045e820
cmp dword [0x4b72f0], 0xffffffff
pop ecx
jne 0x444d25
call fcn.00405059
push esi
mov byte [0x4b72ec], al
call fcn.0045e7d6
pop ecx
cmp byte [0x4b72ec], 0
je 0x444ecb
cmp dword [0x4b68e4], 0
je 0x444d60
push 0x4a0e0c
lea ecx, [ebp - 0x64]
call fcn.0041ba7d
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp - 0x28]
call fcn.0041e62b
lea ecx, [ebp - 0x64]
jmp 0x44507e
cmp dword [0x4b6aec], 0
push 0x49e7d8
jne 0x444de4
lea ecx, [ebp - 0x9c]
call fcn.0041ba7d
push 0xa
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x80]
push dword [0x4b6b3c]
call fcn.0041b6a4
push str.ck_W_vN
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 9
call fcn.0041ba7d
lea eax, [ebp - 0x44]
mov byte [ebp - 4], 0xa
push eax
lea ecx, [ebp - 0x28]
call fcn.00408abe
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp - 0x28]
call fcn.00408abe
lea eax, [ebp - 0x98]
push eax
lea ecx, [ebp - 0x28]
call fcn.00408abe
lea ecx, [ebp - 0x48]
call fcn.0041bf1b
lea ecx, [ebp - 0x80]
call fcn.0041bf1b
lea ecx, [ebp - 0x9c]
jmp 0x44507e
lea ecx, [ebp - 0x128]
call fcn.0041ba7d
push 0xa
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x10c]
push dword [0x4b6b3c]
call fcn.0041b6a4
push 0x4a0e70
lea ecx, [ebp - 0xf0]
mov byte [ebp - 4], 0xc
call fcn.0041b9a3
push 0xa
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0xd4]
push dword [0x4b6aec]
call fcn.0041b6a4
push 0x4a0de0
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 0xe
call fcn.0041ba7d
lea eax, [ebp - 0xb4]
mov byte [ebp - 4], 0xf
push eax
lea ecx, [ebp - 0x28]
call fcn.00408abe
lea eax, [ebp - 0xd0]
push eax
lea ecx, [ebp - 0x28]
call fcn.00408abe
lea eax, [ebp - 0xec]
push eax
lea ecx, [ebp - 0x28]
call fcn.00408abe
lea eax, [ebp - 0x108]
push eax
lea ecx, [ebp - 0x28]
call fcn.00408abe
lea eax, [ebp - 0x124]
push eax
lea ecx, [ebp - 0x28]
call fcn.00408abe
lea ecx, [ebp - 0xb8]
call fcn.0041bf1b
lea ecx, [ebp - 0xd4]
call fcn.0041bf1b
lea ecx, [ebp - 0xf0]
call fcn.0041bf1b
lea ecx, [ebp - 0x10c]
call fcn.0041bf1b
lea ecx, [ebp - 0x128]
jmp 0x44507e
cmp dword [0x4b68e4], 0
je 0x444f02
push str.Download_Failed...
lea ecx, [ebp - 0x144]
call fcn.0041ba7d
lea eax, [ebp - 0x140]
mov byte [ebp - 4], 0x10
push eax
lea ecx, [ebp - 0x28]
call fcn.0041e62b
lea ecx, [ebp - 0x144]
jmp 0x44507e
cmp dword [0x4b6aec], 0
push 0x49e7d8
jne 0x444f9c
lea ecx, [ebp - 0x198]
call fcn.0041ba7d
push 0xa
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x17c]
push dword [0x4b6b3c]
call fcn.0041b6a4
push str.Downloading...
lea ecx, [ebp - 0x160]
mov byte [ebp - 4], 0x12
call fcn.0041ba7d
lea eax, [ebp - 0x15c]
mov byte [ebp - 4], 0x13
push eax
lea ecx, [ebp - 0x28]
call fcn.00408abe
lea eax, [ebp - 0x178]
push eax
lea ecx, [ebp - 0x28]
call fcn.00408abe
lea eax, [ebp - 0x194]
push eax
lea ecx, [ebp - 0x28]
call fcn.00408abe
lea ecx, [ebp - 0x160]
call fcn.0041bf1b
lea ecx, [ebp - 0x17c]
call fcn.0041bf1b
lea ecx, [ebp - 0x198]
jmp 0x44507e
lea ecx, [ebp - 0x224]
call fcn.0041ba7d
push 0xa
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x208]
push dword [0x4b6b3c]
call fcn.0041b6a4
push str._time...
lea ecx, [ebp - 0x1ec]
mov byte [ebp - 4], 0x15
call fcn.0041b9a3
push 0xa
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x1d0]
push dword [0x4b6aec]
call fcn.0041b6a4
push str.Check_file_failed_retry
lea ecx, [ebp - 0x1b4]
mov byte [ebp - 4], 0x17
call fcn.0041ba7d
lea eax, [ebp - 0x1b0]
mov byte [ebp - 4], 0x18
push eax
lea ecx, [ebp - 0x28]
call fcn.00408abe
lea eax, [ebp - 0x1cc]
push eax
lea ecx, [ebp - 0x28]
call fcn.00408abe
lea eax, [ebp - 0x1e8]
push eax
lea ecx, [ebp - 0x28]
call fcn.00408abe
lea eax, [ebp - 0x204]
push eax
lea ecx, [ebp - 0x28]
call fcn.00408abe
lea eax, [ebp - 0x220]
push eax
lea ecx, [ebp - 0x28]
call fcn.00408abe
lea ecx, [ebp - 0x1b4]
call fcn.0041bf1b
lea ecx, [ebp - 0x1d0]
call fcn.0041bf1b
lea ecx, [ebp - 0x1ec]
call fcn.0041bf1b
lea ecx, [ebp - 0x208]
call fcn.0041bf1b
lea ecx, [ebp - 0x224]
call fcn.0041bf1b
mov eax, dword [0x4b6b0c]
lea esi, [ebp - 0x248]
mov dword [ebp - 0x248], eax
lea ecx, [ebp - 0x250]
mov eax, dword [0x4b6b10]
add eax, 0xffffffdd
mov edx, dword [0x4b7294]
mov dword [ebp - 0x244], eax
mov eax, dword [0x4b6afc]
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.004444c0
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.0041bf1b
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.0045ed60
ret