Function at 0x430700
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x57aaee
mov eax, dword fs:[0]
push eax
sub esp, 0x84c
mov eax, dword [0x5d7ce0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
push str.Wow64DisableWow64FsRedirection
xor esi, esi
push str.kernel32
mov dword [ebp - 0x83c], eax
mov dword [ebp - 0x838], ecx
mov dword [ebp - 0x818], edx
mov dword [ebp - 0x850], esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x854], eax
cmp eax, esi
je 0x430775
lea ecx, [ebp - 0x850]
push ecx
call eax
mov dword [ebp - 4], esi
mov dword [ebp - 0x840], esi
call fcn.0044d418
xor ecx, ecx
cmp eax, esi
setne cl
cmp ecx, esi
jne 0x430798
push 0x80004005
call fcn.00407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x82c], eax
mov byte [ebp - 4], 1
call fcn.0044d418
xor ecx, ecx
cmp eax, esi
setne cl
cmp ecx, esi
jne 0x4307c8
push 0x80004005
call fcn.00407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x834], eax
mov byte [ebp - 4], 2
call fcn.0044d418
xor ecx, ecx
cmp eax, esi
setne cl
cmp ecx, esi
jne 0x4307f8
push 0x80004005
call fcn.00407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x830], eax
mov byte [ebp - 4], 3
call fcn.0044d418
xor ecx, ecx
cmp eax, esi
setne cl
cmp ecx, esi
jne 0x430828
push 0x80004005
call fcn.00407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x844], eax
mov byte [ebp - 4], 4
call fcn.0044d418
xor ecx, ecx
cmp eax, esi
setne cl
cmp ecx, esi
jne 0x430858
push 0x80004005
call fcn.00407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x820], eax
mov byte [ebp - 4], 5
call fcn.0044d418
xor ecx, ecx
cmp eax, esi
setne cl
cmp ecx, esi
jne 0x430888
push 0x80004005
call fcn.00407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x824], eax
push 1
lea ecx, [ebp - 0x82c]
push ecx
push ecx
mov byte [ebp - 4], 6
mov ebx, esp
mov dword [ebp - 0x81c], esp
mov dword [ebp - 0x81c], ebx
call fcn.0044d418
xor ecx, ecx
cmp eax, esi
setne cl
cmp ecx, esi
jne 0x4308d0
push 0x80004005
call fcn.00407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebx], eax
mov ecx, str.strIniPath
mov byte [ebp - 4], 7
test ecx, 0xffff0000
jne 0x430909
mov edx, ecx
movzx edi, dx
push edi
call fcn.0044d834
cmp eax, esi
je 0x430917
push edi
push eax
mov ecx, ebx
call fcn.004074b0
jmp 0x430917
push 0xa
push str.strIniPath
mov ecx, ebx
call fcn.00407870
mov esi, dword [ebp + 8]
mov edi, dword [ebp - 0x818]
mov ebx, dword [ebp - 0x83c]
push esi
mov byte [ebp - 4], 6
call fcn.0043b9d0
mov dword [ebp - 0x828], eax
test eax, eax
jne 0x430a5c
mov ecx, 0xa0000001
lea esi, [ebp - 0x814]
call fcn.0041ae20
push eax
mov ecx, edi
mov byte [ebp - 4], 8
call fcn.0040d290
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x814]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430980
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x838]
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x824]
add eax, 0xfffffff0
mov dword [ecx], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4309b2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x820]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4309d8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x844]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4309fe
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x830]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430a24
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x834]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430a4a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x82c]
add eax, 0xfffffff0
jmp 0x431b3b
push 1
lea ecx, [ebp - 0x834]
push ecx
push ecx
mov ebx, esp
mov dword [ebp - 0x81c], esp
mov dword [ebp - 0x81c], ebx
call fcn.0044d418
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x430a8e
push 0x80004005
call fcn.00407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebx], eax
mov ecx, str.strSection
mov byte [ebp - 4], 9
test ecx, 0xffff0000
jne 0x430ac7
mov edx, ecx
movzx edi, dx
push edi
call fcn.0044d834
test eax, eax
je 0x430ad5
push edi
push eax
mov ecx, ebx
call fcn.004074b0
jmp 0x430ad5
push 0xa
push str.strSection
mov ecx, ebx
call fcn.00407870
mov edi, dword [ebp - 0x818]
mov ebx, dword [ebp - 0x83c]
push esi
mov byte [ebp - 4], 6
call fcn.0043b9d0
mov dword [ebp - 0x828], eax
test eax, eax
jne 0x430c1b
mov ecx, 0xa0000001
lea esi, [ebp - 0x814]
call fcn.0041ae20
push eax
mov ecx, edi
mov byte [ebp - 4], 0xa
call fcn.0040d290
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x814]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430b3b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x838]
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x824]
add eax, 0xfffffff0
mov dword [ecx], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x430b6d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x820]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430b93
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x844]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430bb9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x830]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430bdf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x834]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430a4a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x82c]
add eax, 0xfffffff0
jmp 0x431b3b
push 1
lea ecx, [ebp - 0x830]
push ecx
push ecx
mov ebx, esp
mov dword [ebp - 0x81c], esp
mov dword [ebp - 0x81c], ebx
call fcn.0044d418
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x430c4d
push 0x80004005
call fcn.00407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebx], eax
mov ecx, str.strKey
mov byte [ebp - 4], 0xb
test ecx, 0xffff0000
jne 0x430c86
mov edx, ecx
movzx edi, dx
push edi
call fcn.0044d834
test eax, eax
je 0x430c94
push edi
push eax
mov ecx, ebx
call fcn.004074b0
jmp 0x430c94
push 6
push str.strKey
mov ecx, ebx
call fcn.00407870
mov edi, dword [ebp - 0x818]
mov ebx, dword [ebp - 0x83c]
push esi
mov byte [ebp - 4], 6
call fcn.0043b9d0
mov dword [ebp - 0x828], eax
test eax, eax
jne 0x430dda
mov ecx, 0xa0000001
lea esi, [ebp - 0x814]
call fcn.0041ae20
push eax
mov ecx, edi
mov byte [ebp - 4], 0xc
call fcn.0040d290
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x814]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430cfa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x838]
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x824]
add eax, 0xfffffff0
mov dword [ecx], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x430d2c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x820]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430d52
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x844]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430d78
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x830]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430d9e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x834]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430a4a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x82c]
add eax, 0xfffffff0
jmp 0x431b3b
push 1
lea ecx, [ebp - 0x844]
push ecx
push ecx
mov ebx, esp
mov dword [ebp - 0x81c], esp
mov dword [ebp - 0x81c], ebx
call fcn.0044d418
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x430e0c
push 0x80004005
call fcn.00407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebx], eax
mov ecx, str.iValueType
mov byte [ebp - 4], 0xd
test ecx, 0xffff0000
jne 0x430e45
mov edx, ecx
movzx edi, dx
push edi
call fcn.0044d834
test eax, eax
je 0x430e53
push edi
push eax
mov ecx, ebx
call fcn.004074b0
jmp 0x430e53
push 0xa
push str.iValueType
mov ecx, ebx
call fcn.00407870
mov edi, dword [ebp - 0x818]
mov ebx, dword [ebp - 0x83c]
push esi
mov byte [ebp - 4], 6
call fcn.0043b9d0
mov dword [ebp - 0x828], eax
test eax, eax
jne 0x430f99
mov ecx, 0xa0000001
lea esi, [ebp - 0x814]
call fcn.0041ae20
push eax
mov ecx, edi
mov byte [ebp - 4], 0xe
call fcn.0040d290
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x814]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430eb9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x838]
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x824]
add eax, 0xfffffff0
mov dword [ecx], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x430eeb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x820]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430f11
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x844]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430f37
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x830]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430f5d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x834]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430a4a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x82c]
add eax, 0xfffffff0
jmp 0x431b3b
lea ecx, [ebp - 0x814]
push ecx
push ecx
mov edi, esp
mov dword [ebp - 0x81c], esp
mov dword [ebp - 0x814], edi
call fcn.0044d418
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x430fc9
push 0x80004005
call fcn.00407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [edi], eax
mov ecx, 0x5ab088
mov byte [ebp - 4], 0xf
test ecx, 0xffff0000
jne 0x431002
mov edx, ecx
movzx ebx, dx
push ebx
call fcn.0044d834
test eax, eax
je 0x431010
push ebx
push eax
mov ecx, edi
call fcn.004074b0
jmp 0x431010
push 3
push 0x5ab088
mov ecx, edi
call fcn.00407870
mov byte [ebp - 4], 0x10
mov edi, dword [ebp - 0x844]
push ecx
mov ecx, dword [edi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
add edi, 0xfffffff0
mov dword [ebp - 0x814], esp
mov esi, esp
mov dword [ebp - 0x848], edi
call edx
cmp dword [edi + 0xc], 0
lea ecx, [edi + 0xc]
jl 0x431050
cmp eax, dword [edi]
jne 0x431050
mov ebx, edi
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x43108c
mov ecx, dword [edi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
jne 0x431069
call fcn.0043d450
mov eax, dword [edi + 4]
mov dword [ebx + 4], eax
mov eax, dword [edi + 4]
lea ecx, [eax + eax + 2]
push ecx
add edi, 0x10
lea edx, [eax + eax + 2]
push edi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.0054de82
add esp, 0x10
add ebx, 0x10
mov dword [esi], ebx
mov byte [ebp - 4], 6
call fcn.0044bce0
mov eax, dword [ebp - 0x814]
add esp, 0xc
cmp eax, 1
jne 0x43136b
mov ecx, dword [ebp - 0x818]
push ecx
lea edx, [ebp - 0x840]
push edx
push ecx
mov ecx, esp
mov dword [ebp - 0x81c], esp
push str.strValue
call fcn.004079b0
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x83c]
push eax
call fcn.0043b8f0
mov dword [ebp - 0x828], eax
test eax, eax
jne 0x43120d
mov ecx, 0xa0000001
lea esi, [ebp - 0x814]
call fcn.0041ae20
mov ecx, dword [ebp - 0x818]
push eax
mov byte [ebp - 4], 0x11
call fcn.0040d290
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x814]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431130
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x838]
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x824]
add eax, 0xfffffff0
mov dword [ecx], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x431162
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x820]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431188
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x848]
mov byte [ebp - 4], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4311ab
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x830]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4311d1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x834]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430a4a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x82c]
add eax, 0xfffffff0
jmp 0x431b3b
push 1
lea ecx, [ebp - 0x820]
push ecx
push ecx
mov ecx, esp
mov dword [ebp - 0x81c], esp
push str.strValue
call fcn.004079b0
mov edx, dword [ebp + 8]
mov edi, dword [ebp - 0x818]
mov ebx, dword [ebp - 0x83c]
push edx
call fcn.0043b9d0
mov dword [ebp - 0x828], eax
test eax, eax
jne 0x431633
mov ecx, 0xa0000001
lea esi, [ebp - 0x814]
call fcn.0041ae20
push eax
mov ecx, edi
mov byte [ebp - 4], 0x12
call fcn.0040d290
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x814]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43128e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x838]
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x824]
add eax, 0xfffffff0
mov dword [ecx], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4312c0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x820]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4312e6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x848]
mov byte [ebp - 4], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431309
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x830]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43132f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x834]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430a4a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x82c]
add eax, 0xfffffff0
jmp 0x431b3b
cmp eax, 5
jne 0x431633
mov ecx, dword [ebp - 0x818]
push ecx
lea edx, [ebp - 0x840]
push edx
push ecx
mov ecx, esp
mov dword [ebp - 0x81c], esp
push str.iValue
call fcn.004079b0
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x83c]
push eax
call fcn.0043b8f0
mov dword [ebp - 0x828], eax
test eax, eax
jne 0x4314d5
mov ecx, 0xa0000001
lea esi, [ebp - 0x814]
call fcn.0041ae20
mov ecx, dword [ebp - 0x818]
push eax
mov byte [ebp - 4], 0x13
call fcn.0040d290
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x814]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4313f8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x838]
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x824]
add eax, 0xfffffff0
mov dword [ecx], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43142a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x820]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431450
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x848]
mov byte [ebp - 4], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431473
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x830]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431499
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x834]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430a4a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x82c]
add eax, 0xfffffff0
jmp 0x431b3b
push 1
lea ecx, [ebp - 0x820]
push ecx
push ecx
mov ecx, esp
mov dword [ebp - 0x81c], esp
push str.iValue
call fcn.004079b0
mov edx, dword [ebp + 8]
mov edi, dword [ebp - 0x818]
mov ebx, dword [ebp - 0x83c]
push edx
call fcn.0043b9d0
mov dword [ebp - 0x828], eax
test eax, eax
jne 0x431633
mov ecx, 0xa0000001
lea esi, [ebp - 0x814]
call fcn.0041ae20
push eax
mov ecx, edi
mov byte [ebp - 4], 0x14
call fcn.0040d290
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x814]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431556
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x838]
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x824]
add eax, 0xfffffff0
mov dword [ecx], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x431588
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x820]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4315ae
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x848]
mov byte [ebp - 4], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4315d1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x830]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4315f7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x834]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x430a4a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x82c]
add eax, 0xfffffff0
jmp 0x431b3b
xor ecx, ecx
push 0x7fe
push ecx
lea edx, [ebp - 0x80e]
push edx
mov word [ebp - 0x810], cx
call fcn.00550f40
mov esi, dword [ebp - 0x82c]
add esp, 8
mov dword [ebp - 0x81c], esp
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
add esi, 0xfffffff0
mov ebx, esp
mov dword [ebp - 0x84c], esi
call edx
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x43168c
cmp eax, dword [esi]
jne 0x43168c
mov edi, esi
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x4316d0
mov edx, dword [eax]
mov edx, dword [edx]
mov edi, esi
mov ecx, dword [edi + 4]
push 2
push ecx
mov ecx, eax
call edx
mov esi, eax
test esi, esi
jne 0x4316a7
call fcn.0043d450
mov eax, dword [edi + 4]
mov dword [esi + 4], eax
mov eax, dword [edi + 4]
lea ecx, [eax + eax + 2]
push ecx
add edi, 0x10
lea edx, [eax + eax + 2]
push edi
push edx
lea eax, [esi + 0x10]
push eax
call fcn.0054de82
mov edi, dword [ebp - 0x84c]
add esp, 0x10
add esi, 0x10
mov dword [ebx], esi
lea esi, [ebp - 0x81c]
call fcn.0044a6f0
add esp, 4
push eax
mov byte [ebp - 4], 0x15
push ecx
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x858], esp
mov ebx, esp
call eax
cmp dword [edi + 0xc], 0
lea edx, [edi + 0xc]
jl 0x431714
cmp eax, dword [edi]
jne 0x431714
mov esi, edi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x431750
mov ecx, dword [edi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov esi, eax
test esi, esi
jne 0x43172d
call fcn.0043d450
mov eax, dword [edi + 4]
mov dword [esi + 4], eax
mov eax, dword [edi + 4]
lea ecx, [eax + eax + 2]
push ecx
add edi, 0x10
lea edx, [eax + eax + 2]
push edi
push edx
lea eax, [esi + 0x10]
push eax
call fcn.0054de82
add esp, 0x10
add esi, 0x10
mov dword [ebx], esi
lea esi, [ebp - 0x828]
call fcn.0044a7b0
add esp, 4
push eax
lea ecx, [ebp - 0x814]
push ecx
mov byte [ebp - 4], 0x16
call fcn.004135f0
add esp, 0xc
mov byte [ebp - 4], 0x17
mov ecx, dword [eax]
mov esi, dword [ebp - 0x824]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x4317d8
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x4317c8
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x4317c8
push eax
call fcn.00407af0
mov ebx, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x4317bd
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [ebp - 0x824], ebx
jmp 0x4317d8
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [ebp - 0x824]
call fcn.00407870
mov byte [ebp - 4], 0x16
mov eax, dword [ebp - 0x814]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4317fe
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x15
mov eax, dword [ebp - 0x828]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431824
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x81c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43184a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x82c]
mov ebx, dword [ebp - 0x820]
mov eax, dword [ebp - 0x830]
push ecx
mov ecx, dword [ebp - 0x834]
push 0x400
lea edx, [ebp - 0x810]
push edx
push ebx
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
je 0x4318a9
lea eax, [ebp - 0x810]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x431885
sub eax, edx
sar eax, 1
push eax
lea edx, [ebp - 0x810]
push edx
lea ecx, [ebp - 0x820]
call fcn.00407870
jmp 0x431904
cmp dword [ebx - 0xc], 0
mov esi, dword [ebx - 0x10]
lea eax, [ebx - 0x10]
je 0x43190a
cmp dword [eax + 0xc], 0
lea ecx, [eax + 0xc]
jge 0x4318dc
cmp dword [ebx - 8], 0
jge 0x4318ce
push 0x80070057
call fcn.00407ad0
xor eax, eax
mov dword [ebx - 0xc], 0
mov word [ebx], ax
jmp 0x43190a
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4318f2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0xc]
mov ecx, esi
call eax
add eax, 0x10
mov dword [ebp - 0x820], eax
mov ebx, dword [ebp - 0x820]
call fcn.0044d418
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x431924
push 0x80004005
call fcn.00407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x814], eax
lea ecx, [ebp - 0x814]
push ecx
mov byte [ebp - 4], 0x18
push ecx
mov ecx, dword [ebx - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add ebx, 0xfffffff0
mov dword [ebp - 0x858], esp
mov edi, esp
call eax
cmp dword [ebx + 0xc], 0
lea edx, [ebx + 0xc]
jl 0x431971
cmp eax, dword [ebx]
jne 0x431971
mov esi, ebx
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x4319ad
mov ecx, dword [ebx + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov esi, eax
test esi, esi
jne 0x43198a
call fcn.0043d450
mov eax, dword [ebx + 4]
mov dword [esi + 4], eax
mov eax, dword [ebx + 4]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [ebx + 0x10]
push edx
lea eax, [eax + eax + 2]
push eax
lea ecx, [esi + 0x10]
push ecx
call fcn.0054de82
add esp, 0x10
mov edx, dword [ebp - 0x840]
mov ecx, dword [ebp - 0x83c]
add esi, 0x10
push edx
mov dword [edi], esi
call fcn.0043c250
mov ecx, dword [ebp - 0x838]
mov dword [ebp - 0x828], eax
test eax, eax
jne 0x431a36
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x10]
mov dword [ecx], eax
xor ecx, ecx
lea esi, [ebp - 0x840]
call fcn.0041ae20
mov byte [ebp - 4], 0x19
mov edx, dword [ebp - 0x840]
mov ecx, dword [ebp - 0x824]
mov eax, dword [edi + 0x2c]
push edx
mov edx, dword [ebp - 0x818]
push ecx
push eax
push edx
call fcn.00409220
mov byte [ebp - 4], 0x18
mov eax, dword [ebp - 0x840]
add eax, 0xfffffff0
add esp, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431a59
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x431a59
mov edx, dword [ebp + 8]
mov dword [ecx], 2
mov ecx, dword [ebp - 0x824]
mov eax, dword [edx + 0x30]
mov edx, dword [ebp - 0x818]
push ecx
push eax
push edx
call fcn.00409220
add esp, 0xc
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x814]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431a7f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x824]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431aa5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
lea ecx, [ebx + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431ac2
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebx
call edx
mov eax, dword [ebp - 0x848]
mov byte [ebp - 4], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431ae5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x830]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431b0b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x834]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431b31
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x84c]
mov byte [ebp - 4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x431b54
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x854], 0
je 0x431b88
push str.Wow64RevertWow64FsRedirection
push str.kernel32
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x431b88
mov ecx, dword [ebp - 0x850]
push ecx
call eax
mov eax, dword [ebp - 0x828]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0054bd91
mov esp, ebp
pop ebp
ret