Function at 0x481620
Capabilities:
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x5c
mov eax, dword [0x56800c]
xor eax, esp
mov dword [esp + 0x58], eax
push ebx
push esi
push edi
mov ecx, str.SumatraPDF_settings.txt
call fcn.004615d0
mov esi, eax
mov ecx, esi
call fcn.0041d4b0
mov edi, eax
test edx, edx
jg 0x481656
jl 0x481695
test edi, edi
jb 0x481695
xor eax, eax
cmp eax, edx
jne 0x481695
lea eax, [edi + 3]
cmp eax, 3
jb 0x481695
push eax
call fcn.004c8cd1
mov ebx, eax
add esp, 4
mov dword [esp + 0xc], ebx
test ebx, ebx
je 0x481695
push edi
mov edx, ebx
mov ecx, esi
call fcn.0041d6a0
add esp, 4
test al, al
jne 0x481752
push ebx
call fcn.004bf8aa
add esp, 4
xor ebx, ebx
mov dword [esp + 0xc], ebx
push ebx
lea ecx, [esp + 0x14]
call fcn.0041e5d0
mov edi, dword [esp + 0x14]
mov ecx, 0x4ed5bc
push 1
push 0
mov edx, edi
call fcn.0049ed40
add esp, 8
mov ebx, eax
test edi, edi
je 0x4816d7
mov ecx, edi
call fcn.0041deb0
push 0xd4
push edi
call fcn.004bcfc5
add esp, 8
push dword [esp + 0x10]
call fcn.004bf8aa
add esp, 4
mov dword [0x56be3c], ebx
test ebx, ebx
jne 0x4816f1
xor eax, eax
mov byte [eax], al
mov edx, dword [ebx + 0xa4]
test edx, edx
je 0x481728
mov ecx, 0x55b910
call fcn.0041b850
cmp eax, 0xffffffff
je 0x481728
mov ecx, 0x55b910
test eax, eax
jle 0x48176a
cmp byte [ecx], 0
je 0x48171e
inc ecx
cmp byte [ecx], 0
jne 0x481718
dec eax
inc ecx
test eax, eax
jg 0x481713
test ecx, ecx
jne 0x48176a
call fcn.00488f00
mov edi, dword [0x56be3c]
mov ebx, eax
push dword [edi + 0xa4]
call fcn.004bf8aa
add esp, 4
test ebx, ebx
je 0x481762
push ebx
call fcn.004c95c5
add esp, 4
jmp 0x481764
mov word [edi + ebx + 1], 0
mov byte [edi + ebx], 0
jmp 0x48169b
xor eax, eax
mov dword [edi + 0xa4], eax
push 0
push 0x80
push 3
push 0
push 1
push SysReAllocString
push esi
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
je 0x4817aa
lea eax, [esp + 0x10]
push eax
push 0
push 0
push edi
call dword [sym.imp.KERNEL32.dll_GetFileTime]
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
push edi
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [0x56be3c]
mov eax, dword [esp + 0x18]
mov dword [ecx + 0x108], ebx
mov dword [ecx + 0x10c], eax
mov ecx, dword [ecx + 0xc4]
call fcn.00482510
mov ecx, dword [0x56be3c]
fld dword [0x55dd7c]
push ecx
fstp dword [esp]
mov dword [ecx + 0x110], eax
mov ecx, dword [ecx + 0xc8]
call fcn.00482740
mov eax, dword [0x56be3c]
add esp, 4
mov ebx, dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
fstp dword [eax + 0x114]
xor eax, eax
mov dword [esp + 0x22], eax
mov dword [esp + 0x26], eax
mov dword [esp + 0x2a], eax
mov word [esp + 0x2e], ax
mov eax, 1
mov word [esp + 0x26], ax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x24]
mov dword [esp + 0x24], 0x107db
push eax
call ebx
mov edi, dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
lea eax, [esp + 0x10]
push eax
call edi
mov ecx, dword [esp + 0x14]
mov eax, 0xba2e8ba3
sub ecx, dword [esp + 0x1c]
mul ecx
mov eax, dword [0x56be3c]
mov ecx, edx
shr ecx, 0xa
sub ecx, dword [eax + 0x104]
xor eax, eax
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x20]
push ecx
mov dword [esp + 0x36], eax
lea ecx, [esp + 0x34]
mov dword [esp + 0x3a], eax
mov dword [esp + 0x3e], eax
mov word [esp + 0x42], ax
mov eax, 1
push ecx
mov dword [esp + 0x38], 0x107db
mov word [esp + 0x3e], ax
call ebx
lea ecx, [esp + 0x10]
push ecx
call edi
mov ecx, dword [esp + 0x14]
mov eax, 0xba2e8ba3
sub ecx, dword [esp + 0x24]
mul ecx
mov eax, dword [0x56be3c]
mov ecx, dword [esp + 0x18]
shr edx, 0xa
mov dword [eax + 0x104], edx
test ecx, ecx
jle 0x4818f3
mov edi, dword [eax + 0xf0]
xor edx, edx
mov ebx, dword [edi]
test ebx, ebx
je 0x4818f3
nop
mov eax, dword [edi + 0xc]
mov eax, dword [eax + edx*4]
inc edx
sar dword [eax + 0xc], cl
cmp edx, ebx
jne 0x4818e0
mov eax, dword [0x56be3c]
mov eax, dword [eax + 0x74]
push 0x4815e0
push 4
push dword [eax]
push dword [eax + 0xc]
call fcn.004bf510
mov ebx, dword [0x56be3c]
add esp, 0x10
mov edi, dword [ebx + 0x74]
cmp dword [edi], 0
jbe 0x48196f
fld dword [0x55dcec]
mov eax, dword [edi + 0xc]
fcom dword [eax]
fnstsw ax
test ah, 0x41
jne 0x48196d
mov eax, dword [edi]
cmp eax, 1
jbe 0x481957
mov ecx, dword [edi + 0xc]
lea eax, [eax*4 - 4]
push eax
fstp st(0)
lea eax, [ecx + 4]
push eax
push ecx
call fcn.004bdaf0
mov ebx, dword [0x56be3c]
add esp, 0xc
fld dword [0x55dcec]
dec dword [edi]
mov ecx, dword [edi]
mov eax, dword [edi + 0xc]
mov dword [eax + ecx*4], 0
mov edi, dword [ebx + 0x74]
cmp dword [edi], 0
ja 0x48191e
fstp st(0)
mov edx, dword [ebx + 0x74]
cmp dword [edx], 0
jbe 0x4819ba
fld qword [0x55dca8]
mov eax, dword [edx + 0xc]
mov ecx, dword [edx]
fld dword [eax + ecx*4 - 4]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x4819b8
lea edi, [ecx - 1]
cmp edi, ecx
jae 0x4819b0
mov eax, dword [edx + 0xc]
dec ecx
lea edi, [eax + edi*4]
lea ecx, [eax + ecx*4]
cmp edi, ecx
je 0x4819a8
mov eax, dword [ecx]
mov dword [edi], eax
mov dword [ecx], 0
dec dword [edx]
mov edx, dword [ebx + 0x74]
cmp dword [edx], 0
ja 0x48197d
fstp st(0)
mov eax, dword [ebx + 0xf0]
mov dword [0x56c4b8], eax
fld dword [ebx + 0x38]
mov eax, dword [ebx + 0x34]
fstp dword [esp + 0x18]
test eax, eax
je 0x4819e0
push eax
call fcn.004c91a0
add esp, 4
mov edi, eax
jmp 0x4819e2
xor edi, edi
push dword [0x56c860]
call fcn.004bf8aa
fld dword [esp + 0x1c]
add esp, 4
fmul qword [0x55da88]
mov dword [0x56c860], edi
fstp dword [0x5689bc]
test esi, esi
je 0x481a23
lea eax, [esp + 0x40]
push eax
push 0
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesExW]
test eax, eax
je 0x481a23
test byte [esp + 0x40], 0x10
je 0x481a28
call fcn.00481a60
push dword [esp + 0xc]
call fcn.004bf8aa
add esp, 4
push esi
call fcn.004bf8aa
mov ecx, dword [esp + 0x68]
add esp, 4
mov al, 1
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004bcb15
mov esp, ebp
pop ebp
ret