Function at 0x41c310
Capabilities:
Check if file exists
Get file attributes
Get memory capacity
Query or enumerate registry value
Read file on windows
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x4bdc66
mov eax, dword fs:[0]
push eax
sub esp, 0xce0
mov eax, dword [0x4f36a0]
xor eax, esp
mov dword [esp + 0xcd8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4f36a0]
xor eax, esp
push eax
lea eax, [esp + 0xcf4]
mov dword fs:[0], eax
mov ebp, dword [esp + 0xd04]
mov edi, ecx
lea ecx, [esp + 0x284]
mov dword [esp + 0x20], edi
call fcn.00448930
lea ecx, [esp + 0x284]
mov dword [esp + 0xcfc], 0
call fcn.00406ee0
test eax, eax
jle 0x41c3a6
cmp byte [esp + 0x3a0], 0
lea eax, [esp + 0x290]
jne 0x41c397
mov eax, dword [esp + 0x28c]
add eax, 4
push eax
push edi
mov ebx, 0x4dd174
call fcn.0045c6a0
mov dword [esp + 0xcfc], 0xffffffff
cmp byte [esp + 0x3a0], 0
mov dword [esp + method.t_str.virtual_0], vtable.t_str.0
jne 0x41c3e1
mov eax, dword [esp + 0x28c]
lea ecx, [esp + 0x290]
cmp eax, ecx
je 0x41c3e1
push eax
call fcn.00498f5b
add esp, 4
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
shr eax, 2
and eax, 1
push eax
mov ecx, 0x4dd17c
mov esi, edi
call fcn.0045c4b0
mov ecx, dword [ebp + 0xc]
xor edx, edx
cmp dword [ecx], 0x201
mov ecx, 0x4dd180
sete dl
push edx
call fcn.0045c4b0
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
shr ecx, 1
and ecx, 1
push ecx
mov ecx, 0x4dd184
call fcn.0045c4b0
mov ebx, dword [ebp + 0x14]
mov eax, 0x500838
call fcn.00440420
push eax
mov ecx, 0x4dd18c
call fcn.0045c4b0
mov eax, 0x500d00
mov ebx, 0x4f984c
call fcn.004404b0
push eax
mov ecx, 0x4dd194
call fcn.0045c550
xor ebx, ebx
mov byte [esp + 0x3c], bl
mov dword [esp + 0x38], ebx
mov dword [esp + 0xcfc], 1
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
lea edx, [esp + 0x18]
push edx
push eax
push ecx
lea ecx, [esp + 0x38]
lea edx, [esp + 0x44]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x24], ebx
call fcn.004297f0
add esp, 0xc
test al, al
jne 0x41c4a0
lea ecx, [esp + 0x38]
call fcn.00447770
mov eax, dword [esp + 0x2c]
push eax
mov ecx, str.sysdf
mov esi, edi
call fcn.0045c4b0
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, str.sysdv
call fcn.0045c4b0
call fcn.00420040
push eax
mov ecx, str.fcdlsd
call fcn.0045c4b0
push 0x4d65d8
push 0x4d65e8
mov dword [esp + 0x88], ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
cmp esi, ebx
je 0x41c505
lea edx, [esp + 0x80]
push edx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call esi
mov ecx, 0x4dd1c4
mov esi, edi
cmp dword [esp + 0x80], ebx
je 0x41c519
push 1
jmp 0x41c51a
push ebx
call fcn.0045c4b0
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
lea eax, [esp + 0x2c]
push eax
push 0x20019
push ebx
push str.SOFTWARESogouInput
push reloc.WS2_32.dll_bind
mov dword [esp + 0x98], ebx
mov dword [esp + 0x40], ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
cmp eax, ebx
jne 0x41c593
mov esi, dword [esp + 0x2c]
lea ecx, [esp + 0x58]
push ecx
lea edx, [esp + 0x88]
push edx
lea eax, [esp + 0x54]
push eax
push ebx
push str.PatchFlag
push esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x70], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
cmp esi, ebx
je 0x41c58f
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov ecx, dword [esp + 0x84]
push ecx
mov ecx, 0x4dd1e0
mov esi, edi
call fcn.0045c550
mov esi, dword [ebp + 4]
lea ecx, [esp + 0x3ac]
call fcn.00448930
mov eax, esi
lea edx, [esp + 0x3ac]
mov byte [esp + 0xcfc], 3
call fcn.00448b50
push ebx
push ebx
push ebx
push ebx
push ebx
push str.sgnet.dll
lea ecx, [esp + 0x29c]
call fcn.00443db0
mov cl, byte [esp + 0x3a0]
mov eax, dword [esp + 0x28c]
lea edx, [esp + 0x290]
cmp cl, bl
jne 0x41c5fd
mov edx, eax
cmp word [edx + 4], 0x2e
jne 0x41c65e
cmp cl, bl
je 0x41c60f
lea eax, [esp + 0x290]
mov ecx, dword [esp + 0x288]
lea esi, [eax + 4]
mov eax, dword [esp + 0x3b0]
cmp eax, ecx
jbe 0x41c64f
lea edx, [esp + 0x3b8]
cmp byte [esp + 0x4c8], bl
jne 0x41c63b
mov edx, dword [esp + 0x3b4]
sub eax, ecx
lea edx, [edx + eax*2 + 4]
push esi
push edx
call fcn.00498ec8
add esp, 8
test eax, eax
je 0x41c672
push esi
lea eax, [esp + 0x3b0]
call fcn.00448d00
jmp 0x41c672
lea eax, [esp + 0x284]
push eax
lea ecx, [esp + 0x3b0]
call fcn.00444630
mov dword [esp + method.t_str.virtual_0], vtable.t_str.0
cmp byte [esp + 0x3a0], bl
jne 0x41c6a1
mov eax, dword [esp + 0x28c]
lea ecx, [esp + 0x290]
cmp eax, ecx
je 0x41c6a1
push eax
call fcn.00498f5b
add esp, 4
mov byte [esp + 0xcfc], 4
lea eax, [esp + 0x3b8]
cmp byte [esp + 0x4c8], bl
jne 0x41c6c0
mov eax, dword [esp + 0x3b4]
add eax, 4
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x41c723
shr eax, 4
not al
and al, 1
je 0x41c723
push 0x3e
lea eax, [esp + 0x872]
xor edx, edx
push ebx
push eax
mov word [esp + 0x878], dx
call fcn.0049ca10
add esp, 0xc
lea ecx, [esp + 0x86c]
push 0x20
push ecx
lea ecx, [esp + 0x3b4]
call fcn.004083d0
add esp, 8
lea edx, [esp + 0x86c]
push edx
push edi
mov ebx, str.sgnetv
call fcn.0045c6a0
xor ebx, ebx
xor eax, eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x5c], ebx
xor ecx, ecx
cpuid
lea esi, [esp + 0x5c]
mov dword [esi], eax
xor eax, eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
mov dword [esp + 0x84c], eax
mov dword [esp + 0x850], eax
mov dword [esp + 0x854], eax
mov dword [esp + 0x858], eax
mov dword [esp + 0x85c], eax
mov dword [esp + 0x860], eax
mov dword [esp + 0x864], eax
mov dword [esp + 0x868], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x84c], eax
mov eax, 1
xor esi, esi
cmp dword [esp + 0x5c], eax
mov dword [esp + 0x850], ecx
mov dword [esp + 0x854], edx
jl 0x41c7df
xor ecx, ecx
cpuid
lea esi, [esp + 0x5c]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
sar eax, 0x10
and eax, 0xf
shl eax, 0xc
xor eax, ecx
and eax, 0xf000
xor eax, ecx
mov esi, eax
lea ebx, [esp + 0x84c]
lea eax, [esp + 0x58]
call fcn.00407420
mov eax, dword [0x4f9f84]
mov dword [esp + 0x2c], eax
push esi
push str._08X
lea edx, [esp + 0x34]
mov byte [esp + 0xd04], 6
call fcn.00407a00
mov ecx, dword [esp + 0x60]
add esp, 8
push ecx
push edi
mov ebx, str.prcat
call fcn.0045c6a0
mov edx, dword [esp + 0x2c]
push edx
push edi
mov ebx, str.prctp
call fcn.0045c6a0
call fcn.0041c2b0
push eax
mov ecx, 0x4dd21c
mov esi, edi
call fcn.0045c4b0
push 0x3c
xor ebx, ebx
lea eax, [esp + 0xbc]
push ebx
push eax
call fcn.0049ca10
add esp, 0xc
lea ecx, [esp + 0xb4]
push ecx
mov dword [esp + 0xb8], 0x40
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0xc0]
shrd edx, eax, 0x14
push edx
mov ecx, 0x4dd224
shr eax, 0x14
call fcn.0045c4b0
push 0x110
lea ecx, [esp + 0x28c]
push ebx
push ecx
mov dword [esp + 0x290], ebx
call fcn.0049ca10
add esp, 0xc
lea esi, [esp + 0x284]
call fcn.0044d370
movzx eax, word [esp + 0x288]
movzx edx, word [esp + 0x28c]
shl eax, 0x10
or eax, edx
push eax
mov ecx, 0x4dd22c
mov esi, edi
call fcn.0045c550
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x1c]
push ecx
push ebx
push 0x2001f
push ebx
push ebx
push ebx
push str.SOFTWARESogouInput
push reloc.WS2_32.dll_accept
mov dword [esp + 0x58], 1
mov dword [esp + 0x54], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x3c], ebx
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
cmp eax, ebx
jne 0x41c9fe
mov ecx, dword [esp + 0x40]
xor eax, eax
test ecx, ecx
je 0x41c92d
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], ebx
test eax, eax
jne 0x41c9fe
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x30]
push ecx
push 0
push str.UpUseBT
mov dword [esp + 0x28], ebx
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push esi
mov dword [esp + 0x34], 4
call ebx
test eax, eax
jne 0x41c981
cmp dword [esp + 0x28], 4
jne 0x41c981
cmp dword [esp + 0x14], eax
jne 0x41c981
mov dword [esp + 0x34], eax
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x30]
push ecx
push 0
push str.BTState
push esi
mov dword [esp + 0x34], 4
call ebx
test eax, eax
jne 0x41c9b5
cmp dword [esp + 0x28], 4
jne 0x41c9b5
mov edx, dword [esp + 0x14]
mov dword [esp + 0x30], edx
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x30]
push edx
push 0
push str.SodalibState
push esi
mov dword [esp + 0x34], 4
call ebx
test eax, eax
jne 0x41c9e9
cmp dword [esp + 0x28], 4
jne 0x41c9e9
mov eax, dword [esp + 0x14]
mov dword [esp + 0x24], eax
xor ebx, ebx
cmp esi, ebx
je 0x41c9fa
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov ecx, dword [esp + 0x34]
push ecx
mov ecx, 0x4dd234
mov esi, edi
call fcn.0045c4b0
mov edx, dword [esp + 0x30]
push edx
mov ecx, 0x4dd23c
call fcn.0045c4b0
mov eax, dword [esp + 0x24]
push eax
mov ecx, str.sodalibf
call fcn.0045c4b0
push 0
call fcn.00499531
mov ebx, dword [ebp + 0x14]
mov esi, eax
add esp, 4
mov eax, 0x4ff398
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], edx
call fcn.00440420
sub esi, eax
cmp esi, 0x15180
jle 0x41caea
mov ebx, dword [ebp + 0x14]
mov eax, 0x500850
call fcn.00440420
push eax
mov ecx, 0x4dd258
mov esi, edi
call fcn.0045c4b0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4ff5d8
call fcn.00440420
push eax
mov ecx, str.IdxPre
call fcn.0045c4b0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4ff4d0
call fcn.00440420
push eax
mov ecx, str.IdxAft
call fcn.0045c4b0
mov eax, dword [ebp + 0x14]
mov ecx, 0xfffffffe
mov edx, 0x4ff5d8
call fcn.004404e0
mov eax, dword [ebp + 0x14]
mov ecx, 0xfffffffe
mov edx, 0x4ff4d0
call fcn.004404e0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x500850
call fcn.004404e0
mov ecx, dword [esp + 0x5c]
mov eax, dword [ebp + 0x14]
mov edx, 0x4ff398
call fcn.004404e0
mov ecx, dword [ebp + 0x14]
push 0x4ffe30
call fcn.00440450
xor ecx, ecx
test al, al
setne cl
mov esi, edi
push ecx
mov ecx, str.FcdUp
call fcn.0045c4b0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4fe9f0
call fcn.004404b0
push eax
mov ecx, str.ChgSknTm
call fcn.0045c550
mov ebx, dword [ebp + 0x14]
mov eax, 0x4ffa10
call fcn.00440420
mov ebx, eax
push ebx
mov ecx, str.UDRep
call fcn.0045c4b0
test ebx, ebx
jle 0x41cb50
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4ffa10
call fcn.004404e0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], vtable.t_lockerMemSharable.0
lea edi, [esp + 0x38]
mov esi, 0x4f98a0
mov byte [esp + 0xcfc], 7
call fcn.00451c30
test al, al
je 0x41cbb8
mov dword [esp + 0x7c], esi
call fcn.0041fea0
mov edx, dword [eax + 4]
mov edx, dword [edx]
lea ecx, [eax + 4]
push 0
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x80]
push eax
mov eax, edi
push eax
call edx
test al, al
je 0x41cbad
mov esi, dword [esp + 0x1c]
mov edi, esi
test esi, esi
jne 0x41cbc3
lea ecx, [esp + 0x38]
call fcn.00447770
jmp 0x41cbdf
lea ecx, [esp + 0x38]
call fcn.00447770
jmp 0x41cbf4
call fcn.0042aa70
push edx
push eax
push edi
call fcn.0042af80
mov esi, dword [esp + 0x20]
push eax
mov ecx, 0x4dd2c0
call fcn.0045c550
mov esi, dword [esp + 0x7c]
test esi, esi
je 0x41cbf4
call fcn.00451d00
mov dword [esp + 0x7c], 0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4fec78
call fcn.00440420
mov esi, dword [esp + 0x20]
push eax
mov ecx, 0x4dd2c8
call fcn.0045c4b0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4fec78
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4ffd70
call fcn.00440420
xor ecx, ecx
xor ebx, ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], ecx
cmp eax, ebx
je 0x41cc90
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x94]
push ecx
mov dword [esp + 0x58], ebx
call fcn.0049b1d1
add esp, 8
lea ecx, [esp + 0x15c]
call fcn.00448930
mov byte [esp + 0xcfc], 8
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x98]
push edx
mov edx, dword [esp + 0xa0]
push eax
mov eax, dword [esp + 0xa8]
push ecx
mov ecx, dword [esp + 0xb0]
push edx
inc eax
push eax
add ecx, 0x76c
push ecx
push str._d__d__d._d:_d:_d
lea edi, [esp + 0x178]
call fcn.00449010
add esp, 0x1c
lea eax, [esp + 0x168]
cmp byte [esp + 0x278], bl
jne 0x41cd06
mov eax, dword [esp + 0x164]
mov edx, dword [esp + 0x20]
add eax, 4
push eax
push edx
mov ebx, 0x4dd2f4
call fcn.0045c6a0
mov ebx, dword [ebp + 0x14]
mov eax, 0x5000a0
call fcn.00440420
mov ebx, dword [ebp + 0x14]
mov edi, eax
mov eax, 0x5005c8
call fcn.00440420
mov ebx, dword [ebp + 0x14]
mov esi, eax
mov eax, 0x500820
call fcn.00440420
mov ebx, dword [ebp + 0x14]
mov dword [esp + 0x28], eax
mov eax, 0x4ffa70
call fcn.00440420
mov ebx, dword [ebp + 0x14]
mov dword [esp + 0x1c], eax
mov eax, 0x500d48
call fcn.00440420
mov ebx, dword [ebp + 0x14]
mov dword [esp + 0x34], eax
mov eax, 0x4fea08
call fcn.00440420
mov ebx, dword [ebp + 0x14]
mov dword [esp + 0x18], eax
mov eax, 0x4ff710
call fcn.00440420
mov ebx, dword [ebp + 0x14]
mov dword [esp + 0x24], eax
mov eax, 0x4feb40
call fcn.00440420
mov ebx, dword [ebp + 0x14]
mov dword [esp + 0x30], eax
mov eax, 0x4ff5a8
call fcn.00440420
mov ebx, dword [ebp + 0x14]
mov dword [esp + 0x8c], eax
mov eax, 0x500970
call fcn.00440420
mov ebx, dword [ebp + 0x14]
mov dword [esp + 0x14], eax
mov eax, 0x4fea98
call fcn.00440420
mov ebx, dword [ebp + 0x14]
mov dword [esp + 0x74], eax
mov eax, 0x4fea68
call fcn.00440420
mov ebx, dword [ebp + 0x14]
mov dword [esp + 0x88], eax
mov eax, 0x4ffce0
call fcn.00440420
mov ebx, dword [ebp + 0x14]
mov dword [esp + 0x4c], eax
mov eax, 0x4fffc8
call fcn.00440420
push esi
push edi
push str._d__d
lea edi, [esp + 0x168]
mov dword [esp + 0x54], eax
call fcn.00449010
add esp, 0xc
cmp byte [esp + 0x278], 0
lea eax, [esp + 0x168]
jne 0x41ce37
mov eax, dword [esp + 0x164]
mov esi, dword [esp + 0x20]
add eax, 4
push eax
push esi
mov ebx, str.scr1
call fcn.0045c6a0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
push eax
push ecx
push str._d__d
lea edi, [esp + 0x168]
call fcn.00449010
add esp, 0xc
cmp byte [esp + 0x278], 0
lea eax, [esp + 0x168]
jne 0x41ce80
mov eax, dword [esp + 0x164]
add eax, 4
push eax
push esi
mov ebx, str.scr2
call fcn.0045c6a0
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x34]
push edx
push eax
push str._d__d
lea edi, [esp + 0x168]
call fcn.00449010
add esp, 0xc
cmp byte [esp + 0x278], 0
lea eax, [esp + 0x168]
jne 0x41cec5
mov eax, dword [esp + 0x164]
add eax, 4
push eax
push esi
mov ebx, str.scr3
call fcn.0045c6a0
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x24]
push ecx
push edx
push str._d__d
lea edi, [esp + 0x168]
call fcn.00449010
add esp, 0xc
cmp byte [esp + 0x278], 0
lea eax, [esp + 0x168]
jne 0x41cf0a
mov eax, dword [esp + 0x164]
add eax, 4
push eax
push esi
mov ebx, str.scr4
call fcn.0045c6a0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x8c]
push eax
push ecx
push str._d__d
lea edi, [esp + 0x168]
call fcn.00449010
add esp, 0xc
cmp byte [esp + 0x278], 0
lea eax, [esp + 0x168]
jne 0x41cf52
mov eax, dword [esp + 0x164]
add eax, 4
push eax
push esi
mov ebx, str.scr5
call fcn.0045c6a0
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x74]
push edx
push eax
push str._d__d
lea edi, [esp + 0x168]
call fcn.00449010
add esp, 0xc
cmp byte [esp + 0x278], 0
lea eax, [esp + 0x168]
jne 0x41cf9a
mov eax, dword [esp + 0x164]
add eax, 4
push eax
push esi
mov ebx, str.scr6
call fcn.0045c6a0
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
push ecx
push edx
push str._d__d
lea edi, [esp + 0x168]
call fcn.00449010
add esp, 0xc
cmp byte [esp + 0x278], 0
lea eax, [esp + 0x168]
jne 0x41cfdf
mov eax, dword [esp + 0x164]
add eax, 4
push eax
mov edi, esi
push edi
mov ebx, str.scr6m
call fcn.0045c6a0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x5000a0
call fcn.004404e0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x5005c8
call fcn.004404e0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x500820
call fcn.004404e0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4ffa70
call fcn.004404e0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x500d48
call fcn.004404e0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4fea08
call fcn.004404e0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4ff710
call fcn.004404e0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4feb40
call fcn.004404e0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4ff5a8
call fcn.004404e0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x500970
call fcn.004404e0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4fea98
call fcn.004404e0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4fea68
call fcn.004404e0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4ffce0
call fcn.004404e0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4fffc8
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x500190
call fcn.00440420
push eax
mov ecx, str.bksp
call fcn.0045c4b0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x500190
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4fec18
call fcn.00440420
push eax
mov ecx, 0x4dd368
call fcn.0045c4b0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4fec18
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4fede0
call fcn.00440420
push eax
mov ecx, str.csel
call fcn.0045c4b0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4fede0
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4ffe90
call fcn.004404b0
push eax
mov ecx, str.ccancel
call fcn.0045c550
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4ffe90
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4ffa28
call fcn.004404b0
push eax
mov ecx, str.cfail
call fcn.0045c550
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4ffa28
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4ff290
call fcn.004404b0
push eax
mov ecx, str.creq
call fcn.0045c550
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4ff290
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4fefa8
call fcn.004404b0
push eax
mov ecx, str.ccomb
call fcn.0045c550
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4fefa8
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x500898
call fcn.004404b0
push eax
mov ecx, str.csend
call fcn.0045c550
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x500898
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x5000b8
call fcn.004404b0
push eax
mov ecx, str.chit
call fcn.0045c550
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x5000b8
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4fee10
call fcn.004404b0
push eax
mov ecx, str.csac
call fcn.0045c550
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4fee10
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4ff098
call fcn.004404b0
push eax
mov ecx, str.csasc
call fcn.0045c550
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4ff098
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x500790
call fcn.004404b0
push eax
mov ecx, str.lcsh
call fcn.0045c550
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x500790
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4ff320
call fcn.004404b0
push eax
mov ecx, str.lcfsh
call fcn.0045c550
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4ff320
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x500a48
call fcn.004404b0
push eax
mov ecx, str.lcse
call fcn.0045c550
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x500a48
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4ffc20
call fcn.004404b0
push eax
mov ecx, str.lcfse
call fcn.0045c550
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4ffc20
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4ff2c0
call fcn.004404b0
push eax
mov ecx, str.outc
call fcn.0045c550
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4ff2c0
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4ffad0
call fcn.004404b0
push eax
mov ecx, 0x4dd41c
call fcn.0045c550
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4ffad0
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4fef18
call fcn.004404b0
push eax
mov ecx, str.cadf
call fcn.0045c550
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4fef18
call fcn.004404e0
mov eax, 0x500268
mov ebx, dword [ebp + 0x14]
call fcn.004404b0
push eax
mov ecx, str.abss
call fcn.0045c550
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x500268
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4fedb0
call fcn.004404b0
push eax
mov ecx, str.absf
call fcn.0045c550
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4fedb0
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4ffb90
call fcn.004404b0
push eax
mov ecx, str.absos
call fcn.0045c550
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4ffb90
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x500928
call fcn.004404a0
push eax
push edi
mov ebx, str.spedmex
call fcn.0045c6a0
mov eax, dword [ebp + 0x14]
mov ecx, 0x4d6464
mov edx, 0x500928
call fcn.004404d0
mov ebx, dword [ebp + 0x14]
mov eax, 0x500a00
call fcn.004404b0
push eax
mov ecx, str.perfSM
call fcn.0045c550
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x500a00
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x500940
call fcn.004404b0
push eax
mov ecx, str.perfST
call fcn.0045c550
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x500940
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4ff3f8
call fcn.004404b0
push eax
mov ecx, str.perfSN
call fcn.0045c550
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4ff3f8
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4fef48
call fcn.004404b0
push eax
mov ecx, str.perfKM
call fcn.0045c550
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4fef48
call fcn.004404e0
mov eax, 0x4fff98
mov ebx, dword [ebp + 0x14]
call fcn.004404b0
push eax
mov ecx, str.perfKT
call fcn.0045c550
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4fff98
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4ff038
call fcn.004404b0
push eax
mov ecx, str.perfKN
call fcn.0045c550
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4ff038
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x500e08
call fcn.004404b0
push eax
mov ecx, str.perfUM
call fcn.0045c550
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x500e08
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x500868
call fcn.004404b0
push eax
mov ecx, str.perfUT
call fcn.0045c550
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x500868
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4fea20
call fcn.004404b0
push eax
mov ecx, str.perfUN
call fcn.0045c550
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4fea20
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x500cb8
call fcn.00440420
push eax
mov ecx, 0x4dd4f4
call fcn.0045c4b0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x500cb8
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4ff650
call fcn.00440420
push eax
mov ecx, 0x4dd4fc
call fcn.0045c4b0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4ff650
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4ffe48
call fcn.00440420
push eax
mov ecx, 0x4dd504
call fcn.0045c4b0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4ffe48
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4fff20
call fcn.00440420
push eax
mov ecx, 0x4dd50c
call fcn.0045c4b0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4fff20
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4ffa58
call fcn.00440420
push eax
mov ecx, 0x4dd514
call fcn.0045c4b0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4ffa58
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x500c58
call fcn.00440420
push eax
mov ecx, 0x4dd51c
call fcn.0045c4b0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x500c58
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x500160
call fcn.00440420
push eax
mov ecx, 0x4dd524
call fcn.0045c4b0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x500160
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x500910
call fcn.00440420
push eax
mov ecx, 0x4dd52c
call fcn.0045c4b0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x500910
call fcn.004404e0
lea eax, [esp + 0x14]
push eax
push 0x2001f
xor ebx, ebx
push ebx
push str.SOFTWARESogouInput
push reloc.WS2_32.dll_accept
xor esi, esi
mov dword [esp + 0x28], ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
cmp eax, ebx
jne 0x41d75b
mov ecx, dword [esp + 0x40]
xor eax, eax
cmp ecx, ebx
je 0x41d6ef
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], ebx
cmp eax, ebx
jne 0x41d75b
lea edx, [esp + 0x4c]
push edx
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x50]
push ecx
push ebx
push str.SendUserExperience
push edx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x64], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
cmp eax, ebx
jne 0x41d742
cmp dword [esp + 0x48], 4
jne 0x41d742
cmp dword [esp + 0x18], 1
jne 0x41d742
mov esi, 1
cmp dword [esp + 0x14], ebx
je 0x41d757
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
push esi
mov ecx, 0x4dd55c
mov esi, edi
call fcn.0045c4b0
mov ebx, dword [ebp + 0x14]
mov eax, 0x5001a8
call fcn.004404a0
mov ebx, dword [ebp + 0x14]
mov esi, eax
mov eax, 0x4ff920
call fcn.004404b0
mov dword [esp + 0x4c], eax
mov eax, esi
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41d790
sub eax, edx
sar eax, 1
je 0x41d7f7
mov ebx, esi
lea esi, [esp + 0x18]
call fcn.004035f0
mov eax, esi
mov byte [esp + 0xcfc], 9
call fcn.0041c0f0
mov esi, dword [esp + 0x18]
push esi
push edi
mov ebx, 0x4dd564
call fcn.0045c6a0
lea ecx, [esi - 0xc]
mov byte [esp + 0xcfc], 8
cmp ecx, 0x4f9f74
je 0x41d805
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x41d805
push esi
call fcn.00498b08
add esp, 4
jmp 0x41d805
push 0
mov ecx, 0x4dd564
mov esi, edi
call fcn.0045c4b0
mov eax, dword [ebp + 0x14]
mov ecx, 0x4d6464
mov edx, 0x5001a8
call fcn.004404d0
mov ebx, dword [esp + 0x5c]
mov esi, dword [esp + 0x20]
mov edx, ebx
sub edx, dword [esp + 0x4c]
mov ecx, str.qmbt
push edx
call fcn.0045c550
mov eax, dword [ebp + 0x14]
mov ecx, ebx
mov edx, 0x4ff920
call fcn.004404e0
push ebp
mov edi, esi
lea ecx, [esp + 0x3c]
call fcn.0041efd0
test al, al
jne 0x41d858
lea ecx, [esp + 0x38]
call fcn.00447770
xor edi, edi
mov dword [esp + 0x14], edi
mov eax, dword [0x4f9f84]
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], eax
push 0x4d6464
push 0x4d6464
mov byte [esp + 0xd04], 0xc
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebx, eax
lea esi, [esp + 0x28]
call fcn.00403650
mov eax, dword [ebp + 4]
push eax
push str._s_sysmodel.bin
lea edx, [esp + 0x20]
call fcn.00407a00
mov ecx, dword [esp + 0x20]
add esp, 8
xor ebx, ebx
push ebx
push 0x80
push 3
push ebx
push 1
push bind
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
jne 0x41d970
call fcn.00407290
cmp eax, ebx
jne 0x41da6b
push 2
lea edx, [esp + 0x64]
push edx
push 0xfffffffffffffffd
push edi
mov dword [esp + 0x6c], 0xfffffffd
mov dword [esp + 0x70], 0xffffffff
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
jne 0x41d90a
call fcn.00407290
cmp eax, ebx
jge 0x41d90a
jne 0x41da6b
xor eax, eax
push ebx
mov word [esp + 0x35], ax
mov byte [esp + 0x37], al
lea eax, [esp + 0x2c]
push eax
push 3
lea ecx, [esp + 0x3c]
push ecx
push edi
mov byte [esp + 0x44], bl
mov dword [esp + 0x3c], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp eax, ebx
jne 0x41d97b
call fcn.00407290
cmp eax, ebx
jne 0x41da6b
mov ecx, 0x4dd598
lea eax, [esp + 0x30]
jmp 0x41d950
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x41d982
cmp dl, bl
je 0x41d96c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x41d982
add eax, 2
add ecx, 2
cmp dl, bl
jne 0x41d950
xor eax, eax
jmp 0x41d987
mov dword [esp + 0x14], eax
mov edi, eax
jmp 0x41d8d6
cmp dword [esp + 0x28], 3
jmp 0x41d93c
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x41da6b
push 0xffffffffffffffff
push 0xfffffffffffffffc
lea edx, [esp + 0x1c]
push edx
mov edx, 2
call fcn.00407cf0
test eax, eax
jne 0x41da6b
lea esi, [eax + 1]
lea ecx, [esp + 0x34]
lea edx, [esp + 0x14]
mov dword [esp + 0x34], ebx
call fcn.0041c130
test eax, eax
jne 0x41da6b
mov ecx, dword [esp + 0x34]
lea eax, [ecx - 1]
cmp eax, 0x3f
ja 0x41da6b
mov eax, 0xfffffffc
sub eax, ecx
cdq
push edx
push eax
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esi + 1]
call fcn.00407cf0
test eax, eax
jne 0x41da6b
push 0x7f
lea edx, [esp + 0x871]
push ebx
push edx
mov byte [esp + 0x878], bl
call fcn.0049ca10
mov esi, dword [esp + 0x40]
add esp, 0xc
lea ecx, [esp + 0x86c]
lea edx, [esp + 0x14]
call fcn.0041c130
test eax, eax
jne 0x41da6b
lea ebx, [esp + 0x86c]
lea eax, [esp + 0x24]
call fcn.004131b0
lea ecx, [esp + 0x1c]
call fcn.00407d30
mov byte [esp + 0xcfc], 0xd
mov ecx, dword [esp + 0x1c]
lea esi, [esp + 0x24]
call fcn.0040f0e0
cmp eax, 0xffffffff
je 0x41da62
mov edi, 0x4dd59c
mov eax, esi
call fcn.004036c0
lea esi, [esp + 0x1c]
call fcn.004035c0
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
push esi
push edi
mov ebx, 0x4dd5a0
call fcn.0045c6a0
lea eax, [esi - 0xc]
cmp eax, 0x4f9f74
je 0x41daa0
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x41daa0
push esi
call fcn.00498b08
add esp, 4
mov eax, dword [esp + 0x18]
lea ecx, [eax - 0xc]
cmp ecx, 0x4f9f74
je 0x41dac6
lea esi, [eax - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x41dac6
push esi
call fcn.00498b08
add esp, 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x41dad5
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x4dd5a8
call fcn.0041eee0
add esp, 4
push str.MGPCnt
mov esi, eax
call fcn.0041eee0
add esp, 4
push str.MGQCnt
mov ebx, eax
call fcn.0041eee0
add esp, 4
push str.MGCCnt
mov dword [esp + 0x50], eax
call fcn.0041eee0
add esp, 4
push str.MGMICnt
mov dword [esp + 0x4c], eax
call fcn.0041eee0
add esp, 4
push esi
mov ecx, 0x4dd5f8
mov esi, edi
mov dword [esp + 0x78], eax
call fcn.0045c550
push ebx
mov ecx, 0x4dd600
call fcn.0045c550
mov edx, dword [esp + 0x4c]
push edx
mov ecx, 0x4dd608
call fcn.0045c550
mov eax, dword [esp + 0x48]
push eax
mov ecx, 0x4dd610
call fcn.0045c550
mov ecx, dword [esp + 0x74]
push ecx
mov ecx, 0x4dd618
call fcn.0045c550
mov esi, 0x4dd5a8
call fcn.0041ef50
mov esi, str.MGPCnt
call fcn.0041ef50
mov esi, str.MGQCnt
call fcn.0041ef50
mov esi, str.MGCCnt
call fcn.0041ef50
mov esi, str.MGMICnt
call fcn.0041ef50
call fcn.00405380
xor edx, edx
test al, al
setne dl
mov ecx, 0x4dd620
mov esi, edi
push edx
call fcn.0045c4b0
lea ecx, [esp + 0x5fc]
call fcn.00448930
lea eax, [esp + 0x5fc]
push eax
mov byte [esp + 0xd00], 0xe
call fcn.0041e2b0
add esp, 4
cmp byte [esp + 0x718], 0
lea eax, [esp + 0x608]
jne 0x41dbf2
mov eax, dword [esp + 0x604]
mov ecx, dword [esp + 0x20]
add eax, 4
push eax
push ecx
mov ebx, str.flashctrlver
call fcn.0045c6a0
lea ecx, [esp + 0x4d4]
call fcn.00448930
lea edi, [esp + 0x4d4]
mov byte [esp + 0xcfc], 0xf
call fcn.00401af0
cmp byte [esp + 0x5f0], 0
lea eax, [esp + 0x4e0]
jne 0x41dc3d
mov eax, dword [esp + 0x4dc]
mov esi, dword [esp + 0x20]
lea edi, [eax + 4]
push esi
call fcn.0045c2b0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4ff1d0
call fcn.00440420
push eax
mov ecx, str.hipc
call fcn.0045c4b0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4ff1d0
call fcn.004404e0
mov ecx, dword [ebp + 0x14]
push 0x4ffb30
call fcn.00440450
movzx edx, al
push edx
mov ecx, str.sknbx
call fcn.0045c5f0
xor eax, eax
mov dword [esp + 0x880], eax
mov dword [esp + 0x884], eax
mov dword [esp + 0x888], eax
mov dword [esp + 0x88c], eax
mov dword [esp + 0x890], eax
mov eax, dword [ebp]
push eax
lea esi, [esp + 0x870]
lea edi, [esp + 0x3c]
mov dword [esp + 0x870], 0x554401d3
mov dword [esp + 0x898], 8
call fcn.0042b460
add esp, 4
test al, al
jne 0x41dcfd
mov ecx, edi
mov dword [esp + 0x88c], 0xffffffff
call fcn.00447770
mov edx, dword [esp + 0x88c]
jmp 0x41dd13
mov eax, 0x10624dd3
mul dword [esp + 0x88c]
shr edx, 6
mov dword [esp + 0x88c], edx
mov esi, dword [esp + 0x20]
push edx
mov ecx, str.psdt
call fcn.0045c550
mov ebx, dword [ebp + 0x14]
mov eax, 0x500aa8
call fcn.00440420
push eax
mov ecx, str.olsw
call fcn.0045c4b0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x500aa8
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x500730
call fcn.00440420
push eax
mov ecx, str.olft
call fcn.0045c4b0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x500730
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4fea80
call fcn.00440420
push eax
mov ecx, str.olsl
call fcn.0045c4b0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4fea80
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4ffe00
call fcn.00440420
push eax
mov ecx, str.olslft
call fcn.0045c4b0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4ffe00
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x5003a0
call fcn.00440420
push eax
mov ecx, str.olbksp
call fcn.0045c4b0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x5003a0
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x5007a8
call fcn.00440420
push eax
mov ecx, str.olocc
call fcn.0045c4b0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x5007a8
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4ff578
call fcn.00440420
push eax
mov ecx, 0x4dd6b8
call fcn.0045c4b0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4ff4e8
call fcn.00440420
push eax
mov ecx, 0x4dd6c0
call fcn.0045c4b0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4ffab8
call fcn.00440420
push eax
mov ecx, 0x4dd6c8
call fcn.0045c4b0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4ffff8
call fcn.00440420
push eax
mov ecx, 0x4dd6d0
call fcn.0045c4b0
mov ebx, dword [ebp + 0x14]
mov eax, 0x500e38
call fcn.00440420
push eax
mov ecx, 0x4dd6d8
call fcn.0045c4b0
mov ebx, dword [ebp + 0x14]
mov eax, 0x5003e8
call fcn.00440420
push eax
mov ecx, 0x4dd6e0
call fcn.0045c4b0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4ff758
call fcn.00440420
push eax
mov ecx, 0x4dd6e8
call fcn.0045c4b0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4ff1a0
call fcn.00440420
push eax
mov ecx, 0x4dd6f0
call fcn.0045c4b0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4ff578
call fcn.004404e0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4ff4e8
call fcn.004404e0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4ffab8
call fcn.004404e0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4ffff8
call fcn.004404e0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x500e38
call fcn.004404e0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x5003e8
call fcn.004404e0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4ff758
call fcn.004404e0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4ff1a0
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x500310
call fcn.00440420
push eax
mov ecx, str.gfgc
call fcn.0045c4b0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x500310
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x500d90
call fcn.00440420
push eax
mov ecx, str.gfsc
call fcn.0045c4b0
xor ecx, ecx
mov edx, 0x500d90
mov eax, dword [ebp + 0x14]
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4fec48
call fcn.00440420
push eax
mov ecx, str.gfnbnc
call fcn.0045c4b0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4fec48
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x500430
call fcn.00440420
push eax
mov ecx, 0x4dd720
call fcn.0045c4b0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x500430
call fcn.004404e0
mov ebx, dword [ebp + 0x14]
mov eax, 0x4fed38
call fcn.00440420
push eax
mov ecx, str.cpdam
call fcn.0045c4b0
mov eax, dword [ebp + 0x14]
xor ecx, ecx
mov edx, 0x4fed38
call fcn.004404e0
mov ecx, dword [ebp + 0x14]
push 0x4fe9c0
call fcn.00440450
movzx eax, al
push eax
mov ecx, str.cpen
call fcn.0045c5f0
xor ecx, ecx
push 0x3fe
push ecx
lea edx, [esp + 0x8f6]
push edx
mov word [esp + 0x8f8], cx
call fcn.0049ca10
add esp, 0xc
push 0
lea ecx, [esp + 0xf8]
call fcn.004951a0
lea ecx, [esp + 0xf4]
mov byte [esp + 0xcfc], 0x10
call fcn.00492f10
lea ecx, [esp + 0x724]
mov edi, eax
xor ebx, ebx
call fcn.00448930
lea eax, [esp + 0x724]
push eax
lea ecx, [esp + 0x3c]
push ecx
push str.UserManager
mov byte [esp + 0xd08], 0x11
call fcn.00405590
add esp, 4
mov ecx, eax
call fcn.004920b0
lea edx, [esp + 0x724]
push edx
lea ecx, [esp + 0xf8]
call fcn.00493c10
test al, al
je 0x41e0ba
mov ebx, 1
mov eax, dword [edi + 0x28]
mov ecx, dword [edi + 0x24]
mov edx, dword [edi + 0x20]
push ebx
push eax
mov eax, dword [edi + 0x1c]
push ecx
mov ecx, dword [edi + 0x18]
push edx
mov edx, dword [edi + 0x14]
push eax
mov eax, dword [edi + 0x10]
push ecx
mov ecx, dword [edi + 0xc]
push edx
mov edx, dword [edi + 8]
push eax
mov eax, dword [edi + 4]
push ecx
mov ecx, dword [edi]
push edx
push eax
push ecx
push 2
lea edx, [esp + 0x920]
push str._d_d_d_d_d_d_d_d_d_d_d_d_d
push edx
call fcn.00497c67
add esp, 0x3c
lea eax, [esp + 0x8ec]
push eax
push esi
mov ebx, 0x4dd790
call fcn.0045c6a0
push 0x2c
xor ebx, ebx
push ebx
push edi
call fcn.0049ca10
add esp, 0xc
lea ecx, [esp + 0xf4]
call fcn.00492f00
mov esi, eax
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
xor edi, edi
add ecx, edx
je 0x41e179
lea esp, [esp]
push edi
mov ecx, esi
call fcn.0041fe60
mov dword [eax + 0x18], ebx
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
inc edi
add eax, edx
cmp edi, eax
jb 0x41e150
lea ecx, [esp + 0xf4]
call fcn.00493460
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
push 1
push ecx
push edx
lea eax, [esp + 0x44]
push eax
call fcn.00468a40
mov ecx, eax
call fcn.00468740
test al, al
jne 0x41e1ad
lea ecx, [esp + 0x38]
call fcn.00447770
lea ecx, [esp + 0x724]
call fcn.004444f0
lea ecx, [esp + 0xf4]
mov byte [esp + 0xcfc], 0xf
call fcn.00494210
mov dword [esp + 0x4d4], 0x4e3520
cmp byte [esp + 0x5f0], bl
jne 0x41e1fc
mov eax, dword [esp + 0x4dc]
lea ecx, [esp + 0x4e0]
cmp eax, ecx
je 0x41e1fc
push eax
call fcn.00498f5b
add esp, 4
lea ecx, [esp + 0x5fc]
call fcn.004444f0
lea ecx, [esp + 0x15c]
call fcn.004444f0
lea ecx, [esp + 0x78]
mov byte [esp + 0xcfc], 6
call fcn.0041c170
lea esi, [esp + 0x2c]
call fcn.004035c0
lea esi, [esp + 0x58]
call fcn.004035c0
lea ecx, [esp + 0x3ac]
call fcn.004444f0
lea esi, [esp + 0x40]
call fcn.004072d0
lea ecx, [esp + 0x38]
call fcn.004476c0
mov ecx, dword [esp + 0xcf4]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xcd8]
xor ecx, esp
call fcn.00497c58
add esp, 0xcec
ret 4