Function at 0x431661
Capabilities:
Get disk information
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1f8
xor eax, eax
mov dword [ebp - 0x28], 0xffffffff
push ebx
mov byte [ebp - 0xd], al
push esi
push edi
mov byte [ebp - 0x31], dl
mov dword [ebp - 0x30], ecx
cmp byte [ebp - 0xd], al
je 0x431693
push 0x7e6
push eax
push eax
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
xor eax, eax
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], 0
je 0x4316ac
push eax
push eax
push 0x142d
push eax
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
xor eax, eax
mov dword [ebp - 0x1c], 0xdd79
xor edi, edi
mov dword [ebp - 0x1c], 0x219909d0
inc edi
mov dword [ebp - 0x1c], 0xfffffff9
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1c], 0xc94681c3
mov dword [ebp - 0x38], 0x757a8360
mov dword [ebp - 8], eax
jmp 0x4316e8
mov ecx, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0x24], 7
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x4316da
mov dword [ebp - 8], eax
jmp 0x431703
mov ecx, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0x190], 0xfaf14186
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x4316f2
cmp dword [ebp - 0x24], eax
jne 0x431746
mov dword [ebp - 0x1c], 0x3b882169
mov ecx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x24]
neg esi
sbb esi, esi
xor edx, edx
inc esi
cmp esi, ecx
mov ecx, dword [ebp - 0x24]
setge dl
xor ebx, ebx
add edx, 0xffff0001
cmp edx, ecx
mov ecx, dword [ebp - 0x24]
sete bl
add ecx, ebx
mov ecx, eax
je 0x431748
mov ecx, edi
mov dword [ebp - 0x1c], ecx
xor ebx, ebx
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x1c]
cmp ecx, edx
setge bl
cmp ebx, dword [ebp - 0x24]
je 0x431764
mov esi, eax
cmp dword [ebp - 0x24], eax
je 0x431766
mov esi, edi
mov ecx, dword [ebp - 0x24]
xor edx, edx
cmp esi, ecx
sete dl
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x1c]
sub edx, ecx
neg edx
sbb edx, edx
inc edx
mov dword [ebp - 0x38], edx
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], 0
je 0x4317a7
push 0x1bee
push 0xc4e
push 0x1245
call dword [sym.imp.KERNEL32.dll_HeapCreate]
mov ebx, dword [0x4bb9fc]
lea ecx, [ebp - 0x170]
push 2
mov dword [ebp - 0x38], ebx
call fcn.004312ee
xor eax, eax
mov dword [ebp - 0xc], 0xaabecba2
mov dword [ebp - 0xc], eax
jmp 0x4317de
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x170]
mov dword [ecx + edx*4], 0x13dd33a4
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jl 0x4317cb
xor esi, esi
mov dword [ebp - 0xc], eax
inc esi
jmp 0x43180d
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], 0
je 0x43180a
push 0x3c7
push eax
push eax
push 0xbce
push eax
call dword [sym.imp.SHELL32.dll_ExtractIconExW]
xor eax, eax
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], esi
jle 0x4317ec
lea ecx, [ebp - 0x170]
call fcn.004313c0
mov edi, dword [ebp + 8]
xor eax, eax
mov dword [edi], eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
cmp byte [ebp - 0x31], al
je 0x431936
cmp ebx, esi
jne 0x431936
mov dword [ebp - 8], esi
lea ecx, [ebp - 0x140]
push 2
mov dword [edi + 8], 4
call fcn.004312ee
xor eax, eax
mov dword [ebp - 8], eax
jmp 0x43186f
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x140]
mov dword [ecx + edx*4], 0x99fb023e
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x43185c
push 3
mov dword [ebp - 8], eax
pop edx
jmp 0x43188e
mov ecx, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0x1e8], 0x6c7f05f4
inc dword [ebp - 8]
cmp dword [ebp - 8], edx
jl 0x43187d
mov dword [ebp - 8], eax
jmp 0x4318d6
mov dword [ebp - 0x14], 0xfb6318d5
inc dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
jmp 0x4318ce
mov ecx, dword [ebp - 0x140]
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x1c], 8
cmp dword [ecx], 0x9bac
jle 0x4318c6
mov ecx, esi
cmp dword [ebp - 0x2c], eax
jne 0x4318c8
mov ecx, eax
mov dword [ebp - 0x1c], ecx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jle 0x4318a7
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xfffffff7
jg 0x431898
mov dword [ebp - 8], 0x17
jmp 0x43191c
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x14], eax
jmp 0x431914
mov dword [ebp - 0x2c], 0x7609
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 0x2c], eax
jne 0x4318ff
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
add ecx, 0x43db76f0
mov dword [ebp - 0x1e8], ecx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jge 0x4318ed
inc dword [ebp - 8]
cmp dword [ebp - 8], 0x1c
jle 0x4318e5
lea ecx, [ebp - 0x140]
call fcn.004313c0
mov dword [edi + 0xc], 0x4bb9fc
xor eax, eax
mov dword [ebp - 0x20], 0xb959c45c
mov dword [ebp - 8], 0x213a
mov dword [ebp - 0x18], 0x7c8b166c
mov dword [ebp - 0xc], eax
jmp 0x43195e
mov ecx, dword [ebp - 0xc]
mov dword [ebp + ecx*4 - 0x60], 0xfffffffa
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], esi
jl 0x431950
imul ecx, dword [ebp - 8], 0xa86b
mov edx, 0xa86b
sub edx, ecx
cmp edx, dword [ebp - 0x20]
jl 0x43197b
cmp dword [ebp - 0x20], eax
jne 0x431982
cmp dword [ebp - 8], eax
jne 0x431982
mov esi, eax
mov ecx, dword [ebp - 8]
xor edx, edx
cmp esi, ecx
mov ecx, dword [ebp - 0x18]
setge dl
xor ebx, ebx
cmp edx, 0x2f3d
setle bl
xor edx, edx
cmp ebx, ecx
setle dl
xor ebx, ebx
cmp edx, 0xe3ca
setle bl
sub ebx, dword [ebp - 0x20]
neg ebx
sbb ebx, ebx
xor edx, edx
inc ebx
add ebx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x18]
cmp ebx, ecx
setne dl
mov dword [ebp - 0x60], edx
mov dword [ebp - 8], 0xffffffe4
jmp 0x431a04
mov dword [ebp - 0x14], 0xfffffff8
mov dword [ebp - 0x2c], 0xffffffff
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 0x14], eax
jne 0x4319f8
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x2c], eax
inc dword [ebp - 8]
cmp dword [ebp - 8], 0x2c
jge 0x4319cd
mov ecx, dword [ebp - 0x38]
cmp dword [ebp - 0x30], ecx
jge 0x4327a5
mov esi, dword [sym.imp.USER32.dll_GetDC]
mov edi, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x20], eax
jmp 0x431af0
mov dword [ebp - 8], 0xffffffff
lea ecx, [ebp - 0x128]
push 2
call fcn.004312ee
xor eax, eax
mov dword [ebp - 0xc], eax
jmp 0x431a5f
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x128]
mov dword [ecx + edx*4], 0x5b40194
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jl 0x431a4c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0x14
jg 0x431ae2
xor ebx, ebx
inc ebx
mov dword [ebp - 0x14], 0xfffffffc
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], eax
jl 0x431ad9
mov dword [ebp - 0xc], 0xb8f5f499
mov dword [ebp - 0xc], eax
jmp 0x431ab2
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], eax
jl 0x431aaf
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x128]
cmp dword [ecx + edx*4], eax
jne 0x431aaf
cmp dword [ebp - 0x14], eax
jne 0x431aaf
dec dword [ebp - 0x18]
jns 0x431a97
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ebx
jle 0x431a8c
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], 0
je 0x431ad4
push 0x987
push eax
call edi
push eax
call esi
push eax
call dword [sym.imp.GDI32.dll_Polygon]
xor eax, eax
dec dword [ebp - 0x14]
jns 0x431a80
inc dword [ebp - 8]
cmp dword [ebp - 8], 0x14
jle 0x431a71
lea ecx, [ebp - 0x128]
call fcn.004313c0
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xb
jl 0x431a31
mov ebx, 0x4bba00
lea ecx, [ebp - 0x17c]
push 1
mov dword [ebp - 0x20], ebx
call fcn.004312ee
mov dword [ebp - 0x18], 0x1897a4a
xor eax, eax
mov dword [ebp - 0x1c], 0xb7cefa9d
mov dword [ebp - 0xc], eax
jmp 0x431b37
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x17c]
mov dword [ecx + edx*4], 0x2799
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 1
jl 0x431b24
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], eax
jl 0x431b61
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], 0
je 0x431b59
push eax
push eax
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetKeySecurity]
xor eax, eax
dec dword [ebp - 0x1c]
dec dword [ebp - 0x18]
jns 0x431b45
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], 0
je 0x431b77
push eax
call edi
push eax
call esi
push eax
call dword [sym.imp.USER32.dll_DrawFocusRect]
lea ecx, [ebp - 0x17c]
call fcn.004313c0
xor eax, eax
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x30], eax
jle 0x4322b2
mov dword [ebp - 8], 3
mov dword [ebp - 0x18], 2
mov dword [ebp - 0xc], 0x78f1e0c8
mov dword [ebp - 0x14], 9
mov dword [ebp - 0x1c], 0xfffffff8
mov dword [ebp - 8], 3
jmp 0x431cc0
mov dword [ebp - 0x1c], 0x1d91
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0xc], eax
jmp 0x431be3
mov ecx, dword [ebp - 0xc]
mov dword [ebp + ecx*4 - 0x1f4], 0xffff
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 3
jl 0x431bd2
cmp dword [ebp - 0x18], eax
jne 0x431c1c
mov ecx, dword [ebp - 0x18]
xor edx, edx
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x14]
cmp ecx, 0xea21
mov ecx, dword [ebp - 0x1c]
setle dl
sub ecx, edx
cmp ecx, 0x2b96ce02
jl 0x431c1c
xor edi, edi
mov ecx, eax
inc edi
jmp 0x431c21
xor edi, edi
inc edi
mov ecx, edi
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x18]
sub ecx, 0xffff
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
neg ecx
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0xc], eax
je 0x431c5e
mov dword [ebp - 0x1c], 0x78ee
cmp dword [ebp - 0x1ec], eax
jne 0x431cca
cmp dword [ebp - 0x1c], eax
jne 0x431cca
jmp 0x431cbd
push edi
lea ecx, [ebp - 0x110]
call fcn.004312ee
xor esi, esi
mov dword [ebp - 0xc], esi
jmp 0x431c84
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x110]
mov dword [eax + ecx*4], 0x65e4bc79
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jl 0x431c71
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], 0xbd3e
mov dword [ebp - 0x14], esi
jmp 0x431cab
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x110]
mov dword [eax + ecx*4], 0x8f25ce5a
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x431c98
lea ecx, [ebp - 0x110]
call fcn.004313c0
xor eax, eax
inc dword [ebp - 8]
cmp dword [ebp - 8], 0x11
jge 0x431bbf
mov eax, dword [ebx]
lea ecx, [ebp - 0x11c]
push 2
mov dword [ebp - 0x28], eax
call fcn.004312ee
push dword [ebp + 8]
movdqa xmm0, xmmword [0xaaff80]
lea eax, [ebp - 0x1bc]
push eax
xor esi, esi
lea eax, [ebp - 0x1cc]
push eax
push esi
lea ecx, [ebp - 0x9c]
mov dword [ebp - 0x9c], esi
movdqu xmmword [ebp - 0x1cc], xmm0
mov dword [ebp - 0x98], esi
mov dword [ebp - 0x94], esi
call fcn.00431431
xor eax, eax
mov dword [ebp - 0xac], eax
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x1c], 0xeadd5d08
mov dword [ebp - 0xc], eax
jmp 0x431d56
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x11c]
mov dword [ecx + edx*4], 0xffff
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jl 0x431d43
mov ebx, dword [ebp - 0x11c]
mov edx, dword [ebp - 0x9c]
cmp dword [ebx + 4], eax
jne 0x431d78
cmp dword [edx], eax
jne 0x431d78
xor esi, esi
mov edi, eax
inc esi
jmp 0x431d7d
xor esi, esi
inc esi
mov edi, esi
xor ecx, ecx
cmp dword [ebx + 4], 0xf2f
setg cl
sub ecx, dword [edx]
mov dword [ebp - 0xac], ecx
mov ecx, dword [ebp - 0xac]
cmp dword [ebx + 4], eax
jne 0x431da6
cmp dword [ebp - 0xa8], eax
jne 0x431da6
mov esi, eax
mov ecx, dword [ebp - 0x9c]
xor edx, edx
cmp dword [ecx], esi
setl dl
imul ecx, edx, 0xfffffff7
cmp ecx, 0xeb6b9dd9
sbb ecx, ecx
inc ecx
cmp edi, ecx
jl 0x431de2
mov dword [ebp - 0xc], 0xe356ec7e
mov dword [ebp - 0xc], eax
jmp 0x431dda
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], eax
jne 0x431e0d
dec dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0xfffffff5
jl 0x431dcf
jmp 0x431e0d
mov dword [ebp - 0x1c], eax
xor ecx, ecx
mov eax, dword [ebx + 4]
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0x18], 0xea3de81d
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0xa4], eax
setge cl
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], 0xbd10caad
lea ecx, [ebp - 0x9c]
call fcn.004313c0
lea ecx, [ebp - 0x11c]
call fcn.004313c0
push dword [ebp + 8]
mov ebx, dword [ebp - 0x20]
lea eax, [ebp - 0x1cc]
movdqa xmm0, xmmword [0xaaffd0]
lea ecx, [ebp - 0x78]
push eax
xor esi, esi
lea eax, [ebp - 0x1dc]
push eax
add ebx, 4
mov dword [ebp - 0x78], esi
push esi
mov dword [ebp - 0x20], ebx
movdqu xmmword [ebp - 0x1dc], xmm0
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x70], esi
call fcn.00431431
xor eax, eax
push 3
mov dword [ebp - 0xc], eax
pop esi
jmp 0x431e75
mov ecx, dword [ebp - 0xc]
mov dword [ebp + ecx*4 - 0x6c], eax
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], esi
jl 0x431e6b
mov dword [ebp - 0x64], eax
cmp dword [ebp - 0x64], 2
je 0x432044
mov dword [ebp - 0xc], eax
jmp 0x431e9a
mov ecx, dword [ebp - 0xc]
mov dword [ebp + ecx*4 - 0x44], 0xffffffff
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jl 0x431e8c
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], esi
jg 0x432034
xor edi, edi
inc edi
push edi
lea ecx, [ebp - 0x50]
call fcn.004312ee
xor eax, eax
mov dword [ebp - 0x1c], 0xe2ad21dd
mov dword [ebp - 0xc], eax
jmp 0x431ed6
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x50]
mov dword [ecx + edx*4], 0xfffffffa
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jl 0x431ec6
mov ecx, dword [ebp - 0x50]
mov dword [ecx], esi
mov dword [ebp - 8], 7
mov dword [ebp - 8], esi
cmp dword [ebp - 8], eax
jl 0x431ffb
mov dword [ebp - 0xc], eax
jmp 0x431f06
mov ecx, dword [ebp - 0xc]
mov dword [ebp + ecx*4 - 0x5c], 0x90e86489
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], esi
jl 0x431ef8
mov dword [ebp - 0x5c], eax
jmp 0x431fe9
mov dword [ebp - 0x14], 0xfffffffd
mov dword [ebp - 0x14], eax
jmp 0x431fdd
mov dword [ebp - 0x1c], edi
mov ecx, dword [ebp - 0x68]
neg ecx
sbb ecx, ecx
neg ecx
cmp ecx, 0xfffa
sbb ecx, ecx
neg ecx
add ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x50]
jne 0x431f46
mov esi, eax
cmp dword [edx], eax
je 0x431f48
mov esi, edi
mov edx, dword [edx]
mov ecx, dword [ebp - 0x78]
cmp dword [ecx + edx*4], esi
jl 0x431f59
mov ebx, eax
cmp dword [ebp - 0x44], eax
je 0x431f5b
mov ebx, edi
mov esi, dword [ebp - 0x14]
xor edx, edx
mov ecx, dword [ebp - 0x50]
mov edi, dword [ecx]
mov ecx, dword [ebp - 0x58]
cmp ebx, ecx
setne dl
xor ecx, ecx
cmp edx, 0xfffffffa
setne cl
xor edx, edx
sub ecx, 0x6928694a
cmp ecx, edi
mov ecx, dword [ebp - 0x78]
setle dl
xor ebx, ebx
cmp dword [ecx + esi*4], edx
sete bl
add ebx, dword [ecx + edi*4]
jne 0x431f95
mov ecx, dword [ebp - 0x54]
mov ecx, dword [ebp - 8]
xor edi, edi
mov ecx, dword [ebp - 0x50]
xor edx, edx
inc edi
cmp dword [ecx], edi
setge dl
cmp edx, dword [ebp - 0x14]
jle 0x431fb1
mov esi, edi
cmp dword [ebp - 0x64], eax
jne 0x431fb3
mov esi, eax
mov ecx, dword [ebp - 0x50]
xor ebx, ebx
push 3
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x78]
cmp esi, dword [ecx + edx*4]
mov ecx, 0xfffc
pop esi
setg bl
cmp ecx, ebx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x1c], ecx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jle 0x431f22
inc dword [ebp - 0x5c]
cmp dword [ebp - 0x5c], esi
jle 0x431f13
dec dword [ebp - 8]
jns 0x431ef3
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], 0
je 0x432013
push eax
push 0x186a
push eax
call dword [sym.imp.OLEAUT32.dll_SafeArrayDestroy]
xor eax, eax
mov ecx, dword [ebp - 0x50]
dec dword [ecx]
jns 0x431ee0
lea ecx, [ebp - 0x50]
call fcn.004313c0
inc dword [ebp - 0x40]
cmp dword [ebp - 0x40], esi
jle 0x431eaf
xor eax, eax
inc dword [ebp - 0x64]
cmp dword [ebp - 0x64], 2
jne 0x431e87
mov ebx, dword [ebp - 0x20]
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], 0
je 0x43205a
push 0x1b4
push eax
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea ecx, [ebp - 0x78]
call fcn.004313c0
mov edi, dword [ebx]
lea ecx, [ebp - 0x158]
push 0xfffffffffffffffa
pop eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1c], 0x438bea12
mov dword [ebp - 0x1c], 0x576c3a0b
mov dword [ebp - 0x1c], 0xfffffff8
mov dword [ebp - 0x1c], 0xfffffff7
push 2
call fcn.004312ee
xor esi, esi
mov dword [ebp - 0x1c], 0x22e974a5
mov dword [ebp - 0xc], esi
jmp 0x4320b7
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x158]
mov dword [eax + ecx*4], 3
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jl 0x4320a4
mov dword [ebp - 0xc], esi
jmp 0x4320d1
mov dword [ebp - 0x18], 0xd95e17ca
cmp dword [ebp - 0x18], esi
jne 0x4320d7
dec dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0xfffffff6
je 0x4320c2
inc dword [ebp - 0x1c]
lea ecx, [ebp - 0x158]
call fcn.004313c0
xor esi, esi
lea ecx, [ebp - 0x104]
inc esi
add ebx, 4
push esi
mov dword [ebp - 0x20], ebx
call fcn.004312ee
xor eax, eax
mov dword [ebp - 0xc], 0x960f57a7
mov dword [ebp - 0xc], eax
jmp 0x432117
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x104]
mov dword [ecx + edx*4], eax
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], esi
jl 0x432108
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], eax
jl 0x432154
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x104]
cmp dword [ecx + edx*4], eax
jne 0x432154
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], 0
je 0x43214f
push 0x664
push eax
push 0x1ce5
push eax
call dword [sym.imp.USER32.dll_LoadStringA]
xor eax, eax
dec dword [ebp - 0xc]
jns 0x432124
lea ecx, [ebp - 0x104]
call fcn.004313c0
test edi, edi
jne 0x432169
add ebx, 8
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x14], esi
xor eax, eax
mov dword [ebp - 0x18], 0x597a61ee
mov dword [ebp - 0x18], eax
mov dword [ebp - 0xc], eax
jmp 0x43218e
mov ecx, dword [ebp - 0xc]
mov dword [ebp + ecx*4 - 0x19c], 0xa8eac8b1
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 3
jl 0x43217d
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], al
je 0x4321a5
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoW]
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 2
jg 0x43229c
mov ebx, 0xfffc
push esi
lea ecx, [ebp - 0x1a8]
call fcn.004312ee
xor eax, eax
mov dword [ebp - 0x1c], 0x47d2
mov dword [ebp - 8], eax
jmp 0x4321df
mov ecx, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0x3c], 0x7dd68876
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x4321d1
mov dword [ebp - 8], eax
jmp 0x4321f9
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x1a8]
or dword [ecx + edx*4], 0xffffffff
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x4321e9
mov dword [ebp - 0x3c], 2
cmp dword [ebp - 0x3c], eax
jl 0x43227f
mov dword [ebp - 0x18], 0xa3735b26
mov edi, esi
cmp dword [ebp - 0x14], eax
jne 0x43221a
mov edi, eax
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp + ecx*4 - 0x19c]
mov ecx, dword [ebp - 0x14]
mov dword [ebp + ecx*4 - 0x19c], esi
mov edx, dword [ebp - 0x3c]
inc edx
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, 0xfffffffc
setne cl
xor edx, edx
cmp esi, ecx
setne dl
add edx, edi
cmp edx, ebx
sbb ecx, ecx
neg ecx
add ecx, 0xdfbc
mov dword [ebp - 0x18], ecx
je 0x432265
cmp dword [ebp - 0x18], eax
je 0x432265
xor esi, esi
inc esi
mov edx, esi
jmp 0x43226a
xor esi, esi
mov edx, eax
inc esi
mov ecx, dword [ebp - 0x1c]
dec dword [ebp - 0x1c]
add ecx, edx
mov ecx, esi
cmovne ecx, eax
mov dword [ebp - 0x18], ecx
dec dword [ebp - 0x3c]
jns 0x43220a
lea ecx, [ebp - 0x1a8]
call fcn.004313c0
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jle 0x4321b7
mov ebx, dword [ebp - 0x20]
xor eax, eax
add ebx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
inc ecx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x2c], ecx
cmp ecx, dword [ebp - 0x30]
jl 0x431b90
xor edi, edi
inc edi
mov dword [ebp - 0x28], edi
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], 0
je 0x4322ca
push eax
call dword [sym.imp.USER32.dll_CharUpperW]
xor eax, eax
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], 0
je 0x4322d9
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
mov eax, dword [ebx]
lea ecx, [ebp - 0xd4]
mov dword [ebp - 8], 0x860b4ffb
push edi
mov dword [ebp - 0x1c], eax
call fcn.004312ee
mov dword [ebp - 0x28], 0xfffffff9
xor eax, eax
mov dword [ebp - 0x2c], 0x17d0b0a3
mov dword [ebp - 8], eax
jmp 0x432317
mov ecx, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0x188], 4
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jl 0x432306
mov dword [ebp - 8], eax
jmp 0x432335
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xd4]
mov dword [ecx + edx*4], 0x2703d9b9
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x432322
push 2
mov dword [ebp - 8], eax
pop esi
jmp 0x432378
mov dword [ebp - 0x18], 9
mov dword [ebp - 0x18], esi
cmp dword [ebp - 0x18], eax
jl 0x432375
mov ecx, dword [ebp - 8]
mov edx, dword [ebp + ecx*4 - 0x188]
mov ecx, dword [ebp - 8]
mov dword [ebp + ecx*4 - 0x188], edx
mov ecx, dword [ebp - 0xd4]
mov dword [ecx], eax
mov dword [ebp - 0x28], eax
dec dword [ebp - 0x18]
jns 0x432351
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jle 0x432342
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0x18
je 0x432405
mov dword [ebp - 0x18], 0xd6b3
mov dword [ebp - 0x30], 0xab39e224
dec dword [ebp - 0x2c]
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x18]
neg esi
mov eax, dword [ebp - 0xd4]
sbb esi, esi
xor ebx, ebx
neg esi
cmp ecx, dword [eax]
mov ecx, 0xdbdae4f9
mov eax, dword [ebp - 0x30]
setge bl
cmp ecx, eax
sbb eax, eax
xor edx, edx
neg eax
cmp eax, ebx
mov eax, dword [ebp - 0x18]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0xd4]
setl cl
xor edx, edx
cmp ecx, 0xfffffffe
mov ecx, dword [ebp - 0x18]
setge dl
imul ecx, edx
mov dword [eax], edx
xor edx, edx
mov eax, dword [ebp - 0x30]
cmp ecx, eax
setg dl
xor eax, eax
cmp esi, edx
setg al
mov dword [ebp - 0x30], eax
inc dword [ebp - 8]
cmp dword [ebp - 8], 0x18
jne 0x432386
mov ebx, dword [ebp - 0x20]
lea ecx, [ebp - 0xd4]
call fcn.004313c0
add ebx, 4
mov dword [ebp - 0x14], 0x8311
xor esi, esi
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x18], esi
lea ecx, [ebp - 0xec]
push edi
call fcn.004312ee
push 2
lea ecx, [ebp - 0xe0]
call fcn.004312ee
mov dword [ebp - 0x28], edi
xor eax, eax
mov dword [ebp - 0x28], 0xcdd7
mov dword [ebp - 8], eax
jmp 0x43245f
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xec]
mov dword [ecx + edx*4], 0xfffffff7
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x43244c
mov dword [ebp - 8], eax
jmp 0x43247c
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xe0]
mov dword [ecx + edx*4], 0x7ba3f300
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x432469
mov ecx, dword [ebp - 0x14]
xor edx, edx
cmp ecx, 0xffffffff
setle dl
xor ecx, ecx
cmp edx, 0xfffffffe
setge cl
xor ebx, ebx
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0x18]
cmp dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0x14]
setg bl
xor edx, edx
cmp ebx, ecx
setg dl
cmp edx, 0xfffffffd
sbb ecx, ecx
inc ecx
imul ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
cmp ecx, edi
mov ecx, dword [ebp - 0xec]
sbb esi, esi
neg esi
imul edx, esi
mov dword [ecx], esi
mov ecx, dword [ebp - 0x14]
sub ecx, edx
je 0x4324de
mov ecx, dword [ebp - 0xec]
mov edx, edi
cmp dword [ecx], eax
jne 0x4324e0
mov edx, eax
mov ecx, dword [ebp - 0x18]
xor ebx, ebx
cmp edx, ecx
mov ecx, dword [ebp - 0x14]
setne bl
xor edx, edx
cmp ebx, ecx
setge dl
cmp edx, dword [ebp - 0x18]
jg 0x432505
mov ecx, dword [ebp - 0xe0]
mov esi, edi
cmp dword [ecx], eax
jne 0x432507
mov esi, eax
mov ecx, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [ebp - 0x14]
cmp ecx, eax
mov eax, dword [ebp - 0xe0]
setl dl
xor ecx, ecx
cmp edx, esi
setne cl
imul ecx, dword [eax + 4]
mov eax, dword [ebp - 0x14]
imul eax, ecx
lea ecx, [ebp - 0xe0]
mov dword [ebp - 0x28], eax
call fcn.004313c0
lea ecx, [ebp - 0xec]
call fcn.004313c0
mov esi, dword [ebp - 0x20]
xor eax, eax
push 3
pop ebx
mov edi, dword [esi]
mov dword [ebp - 0x14], 0xfffffff7
mov dword [ebp - 0x28], 8
mov dword [ebp - 0xc], eax
jmp 0x432572
mov ecx, dword [ebp - 0xc]
mov dword [ebp + ecx*4 - 0x134], 0xffffffff
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ebx
jl 0x432561
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 2
jg 0x4325b4
mov ecx, dword [ebp - 0x14]
xor edx, edx
mov ecx, dword [ebp + ecx*4 - 0x134]
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp + ecx*4 - 0x134]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ebp + ecx*4 - 0x134]
cmp esi, ecx
setne dl
mov dword [ebp - 0x28], edx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jle 0x432580
mov esi, dword [ebp - 0x20]
mov dword [ebp - 8], 0xac204e2d
add esi, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0xfffffff3
mov dword [ebp - 0x20], esi
jle 0x432647
push dword [ebp + 8]
movdqa xmm0, xmmword [0xaaffc0]
lea ecx, [ebp - 0x1ac]
push ecx
lea ecx, [ebp - 0x1bc]
mov dword [ebp - 0xb8], eax
push ecx
push eax
lea ecx, [ebp - 0xb8]
mov dword [ebp - 0xb4], eax
movdqu xmmword [ebp - 0x1bc], xmm0
mov dword [ebp - 0xb0], eax
call fcn.00431431
xor esi, esi
mov dword [ebp - 0x14], 0x438bea12
mov dword [ebp - 0x14], esi
jmp 0x432628
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xb8]
cmp dword [eax + ecx*4], esi
jne 0x43262d
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jle 0x432617
lea ecx, [ebp - 0xb8]
call fcn.004313c0
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xfffffff3
push 0
pop eax
jg 0x4325ca
mov esi, dword [ebp - 0x20]
xor ebx, ebx
mov dword [ebp - 8], eax
inc ebx
cmp dword [ebp - 8], 8
jne 0x4326c8
push ebx
lea ecx, [ebp - 0x164]
call fcn.004312ee
xor eax, eax
mov dword [ebp - 0x18], 0x9f361739
mov dword [ebp - 0xc], eax
jmp 0x432680
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x164]
mov dword [ecx + edx*4], 7
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ebx
jl 0x43266d
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], eax
jl 0x4326b8
mov dword [ebp - 0x28], 0xba22
mov dword [ebp - 0x28], 0xfffffffe
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], 0
je 0x4326b3
push 0x19b5
push eax
push eax
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
xor eax, eax
dec dword [ebp - 0x18]
jns 0x43268d
lea ecx, [ebp - 0x164]
call fcn.004313c0
inc dword [ebp - 8]
jmp 0x43264d
test edi, edi
jne 0x4327a9
cmp byte [ebp - 0x31], 0
je 0x4326e9
cmp dword [ebp - 0x38], ebx
mov ebx, dword [ebp - 0x1c]
jne 0x4326ec
mov ecx, dword [ebp + 8]
lea eax, [ebx + 0x10]
add dword [ecx + 8], eax
jmp 0x4326ec
mov ebx, dword [ebp - 0x1c]
mov eax, dword [esi]
mov dword [ebp - 0x28], eax
mov eax, dword [esi + 4]
add esi, 8
push ebx
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x20], esi
call fcn.00489c43
pop ecx
mov dword [ebp - 0x38], eax
lea ecx, [ebp - 0x84]
lea eax, [ebp - 0xc8]
xor esi, esi
push eax
push ebx
mov dword [ebp - 0xc8], esi
mov dword [ebp - 0x84], esi
mov dword [ebp - 0x80], esi
mov dword [ebp - 0x7c], esi
call fcn.00465928
mov edi, dword [ebp - 0x84]
mov ecx, esi
test ebx, ebx
jle 0x43277e
mov eax, ecx
and eax, 0x80000001
jns 0x432748
dec eax
or eax, 0xfffffffe
inc eax
neg eax
sbb eax, eax
and eax, dword [ebp - 0x28]
add eax, ecx
add eax, dword [ebp - 0x28]
imul eax, dword [ebp - 0x2c]
jmp 0x43275d
lea eax, [edx + 1]
cdq
idiv ebx
cmp word [edi + edx*2], si
jne 0x43275a
xor eax, eax
inc eax
mov word [edi + edx*2], ax
mov eax, dword [ebp - 0x20]
mov al, byte [edx + eax]
mov edx, dword [ebp - 0x38]
mov byte [ecx + edx], al
inc ecx
cmp ecx, ebx
jl 0x43273a
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x38]
mov dword [ecx], ebx
mov dword [ecx + 4], eax
test edi, edi
je 0x4327ad
push edi
call fcn.0048c5e6
pop ecx
mov dword [ebp - 0x84], esi
mov dword [ebp - 0x80], esi
mov dword [ebp - 0x7c], esi
mov edi, dword [ebp + 8]
jmp 0x4327af
xor esi, esi
jmp 0x4327af
xor esi, esi
jmp 0x4327a0
mov edi, ecx
mov dword [ebp - 0x14], 0x9fdf99ff
lea ecx, [ebp - 0x14c]
mov dword [ebp - 0xc], 0xffffffff
push 4
call fcn.004312ee
mov dword [ebp + 8], esi
jmp 0x4327e2
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x14c]
mov dword [eax + ecx*4], 0x4117
inc dword [ebp + 8]
cmp dword [ebp + 8], 4
jl 0x4327cf
xor ebx, ebx
mov dword [ebp + 8], esi
inc ebx
jmp 0x432801
mov eax, dword [ebp + 8]
mov dword [ebp + eax*4 - 0x1ac], 0xffffffff
inc dword [ebp + 8]
cmp dword [ebp + 8], ebx
jl 0x4327f0
mov dword [ebp - 0x14], 0xffffffea
jmp 0x4329df
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x18], 0x78ee3f2f
mov dword [ebp - 0x20], 0xb
jmp 0x43299f
mov dword [ebp - 8], ebx
lea ecx, [ebp - 0xc4]
push ebx
call fcn.004312ee
push 3
pop esi
push esi
lea ecx, [ebp - 0x90]
call fcn.004312ee
xor eax, eax
mov dword [ebp + 8], eax
jmp 0x432860
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0xc4]
mov dword [ecx + edx*4], 0xa8d6
inc dword [ebp + 8]
cmp dword [ebp + 8], ebx
jl 0x43284d
mov dword [ebp + 8], eax
jmp 0x43287d
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x90]
mov dword [ecx + edx*4], 0xb8a4
inc dword [ebp + 8]
cmp dword [ebp + 8], esi
jl 0x43286a
mov ecx, dword [ebp - 8]
cmp dword [ebp - 0x14], ecx
je 0x4329ab
mov dword [ebp - 0x38], 0xfffffff7
mov dword [ebp - 0x30], 0x6aa1c33
cmp dword [ebp - 8], eax
je 0x4328a8
mov esi, ebx
cmp dword [ebp - 0xc], eax
jne 0x4328aa
mov esi, eax
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x20]
dec ecx
imul ecx, dword [ebp - 0x18]
imul edx, ecx, 0xfffe
sub edx, dword [ebp - 0x18]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp esi, edx
setne cl
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 8]
imul ecx, dword [ebp - 0x20]
neg ecx
cmp ecx, 0xbdb88dcf
jb 0x43297f
push 2
lea ecx, [ebp - 0xf8]
call fcn.004312ee
xor esi, esi
mov dword [ebp + 8], esi
jmp 0x43290e
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0xf8]
mov dword [eax + ecx*4], ebx
inc dword [ebp + 8]
cmp dword [ebp + 8], 2
jl 0x4328ff
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0xc4]
cmp dword [eax], esi
jne 0x432926
cmp dword [ebp - 0x30], esi
je 0x432937
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x90]
cmp dword [eax + 4], esi
je 0x432937
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x20]
mov ecx, 0x2c199447
mov eax, dword [ebp - 0x30]
xor edx, edx
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
sub ecx, eax
mov eax, dword [ebp - 0xf8]
cmp ecx, dword [eax]
lea ecx, [ebp - 0xf8]
mov eax, dword [ebp - 0x14c]
setg dl
cmp dword [ebp - 0xc], esi
mov dword [eax + 4], edx
call fcn.004313c0
jmp 0x432986
cmp dword [ebp - 0x20], eax
jne 0x4329c4
xor esi, esi
lea ecx, [ebp - 0x90]
call fcn.004313c0
lea ecx, [ebp - 0xc4]
call fcn.004313c0
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0x19
jge 0x432828
jmp 0x4329dc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], esi
jge 0x432984
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x90]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 8]
jmp 0x4329ae
lea ecx, [ebp - 0x90]
call fcn.004313c0
lea ecx, [ebp - 0xc4]
call fcn.004313c0
xor esi, esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jne 0x432812
lea ecx, [ebp - 0x14c]
call fcn.004313c0
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret