Function at 0x422e50
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5735ba
mov eax, dword fs:[0]
push eax
sub esp, 0xa4
push esi
push edi
mov eax, dword [0x5d2614]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor eax, eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0xb0], vtable.CMap_int__int__class_ATL::CStringT_wchar_t__class_StrTraitMFC_wchar_t__class_ATL::ChTraitsCRT_wchar_t_____class_ATL::CStringT_wchar_t__class_StrTraitMFC_wchar_t__class_ATL::ChTraitsCRT_wchar_t____.0
mov dword [ebp - 0xac], eax
mov dword [ebp - 0xa8], 0x11
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x98], 0xa
xor ecx, ecx
mov eax, 1
mov edx, 4
mul edx
seto cl
mov byte [ebp - 4], 1
neg ecx
or ecx, eax
push ecx
call fcn.00447f3e
xor ecx, ecx
add esp, 4
test eax, eax
setne cl
mov dword [ebp - 0xac], eax
test ecx, ecx
jne 0x422efc
call fcn.00448939
mov esi, dword [ebp + 8]
mov dword [eax], 0
mov edx, dword [esi + 0xb0]
lea eax, [ebp - 0xb0]
mov dword [ebp - 0x4c], eax
xor eax, eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x60], eax
mov eax, dword [esi + 0xac]
mov dword [ebp - 0x64], eax
mov eax, dword [esi + 0xbc]
lea edi, [esi + 0xbc]
mov ecx, 1
sub eax, 0x10
mov dword [ebp - 0xa8], ecx
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x6c], edx
sub ecx, dword [eax + 0xc]
mov eax, dword [eax + 8]
or eax, ecx
jge 0x422f68
push 0
mov ecx, edi
call fcn.00401de0
mov edx, dword [esi + 0xb4]
mov esi, dword [ebx + 8]
mov ecx, dword [edi]
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x30], 0xffffffff
mov dword [ebp - 0x38], esi
test esi, esi
jle 0x4242a9
xor ecx, ecx
mov eax, esi
mov edx, 0x418
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00447f3e
mov edi, dword [ebp - 0x38]
xor ecx, ecx
add esp, 4
xor esi, esi
cmp edi, ecx
mov dword [ebp - 0x34], eax
jle 0x423011
xor edx, edx
add eax, 0x10
jmp 0x422fc2
xor ecx, ecx
cmp edx, ecx
mov dword [eax - 4], ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
jl 0x422ef7
cmp esi, dword [ebx + 8]
jge 0x422ef7
mov ecx, dword [ebx + 4]
add ecx, edx
mov ecx, dword [ecx + 0x1c]
mov dword [eax - 8], ecx
cmp esi, dword [ebx + 8]
jge 0x422ef7
mov ecx, dword [ebx + 4]
add ecx, edx
mov ecx, dword [ecx + 0x18]
mov dword [eax - 0x10], ecx
mov dword [eax - 0xc], 0
inc esi
add edx, 0xe0
add eax, 0x418
cmp esi, edi
jl 0x422fc0
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0xa8]
add edi, 0xa8
sub eax, 0x10
mov ecx, 1
sub ecx, dword [eax + 0xc]
mov eax, dword [eax + 8]
or eax, ecx
jge 0x42303b
push 0
mov ecx, edi
call fcn.00401de0
cmp dword [ebp + 0x10], 3
mov edx, dword [edi]
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x5c], edx
lea edx, [ebp - 0x6c]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x50], edx
jne 0x42308e
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx - 8]
mov eax, 1
sub eax, dword [edx - 4]
or ecx, eax
jge 0x423077
push 0
lea ecx, [ebp + 0xc]
call fcn.00401de0
mov edx, dword [ebp + 0xc]
push ecx
mov ecx, esp
mov dword [ebp - 0x48], esp
push edx
call fcn.00401a30
mov eax, dword [ebp - 0x4c]
push 0
push eax
call fcn.00427d00
call fcn.00451b96
mov eax, dword [eax + 4]
lea ecx, [ebp - 0x5c]
mov dword [eax + 0x124], 0x13
mov dword [eax + 0x128], ecx
call fcn.00451b96
call fcn.00451b96
mov eax, dword [eax + 4]
lea esi, [eax + 0xd0]
mov dword [ebp - 0x30], 0xffffffff
test esi, esi
je 0x4230ee
mov eax, dword [esi + 0x60]
test eax, eax
je 0x4230ee
push str.Download
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4230ee
mov edx, dword [esi + 0x58]
mov ecx, dword [esi + 0x54]
push edx
push ecx
call eax
mov dword [ebp - 0x30], eax
mov dword [esi + 0x5c], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x30], eax
cmp eax, 0xfffffffe
je 0x423104
cmp eax, 0x80000000
jne 0x423196
mov eax, dword [edi]
sub eax, 0x10
mov ecx, 1
sub ecx, dword [eax + 0xc]
mov eax, dword [eax + 8]
or eax, ecx
jge 0x423121
push 0
mov ecx, edi
call fcn.00401de0
mov edx, dword [edi]
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x7c], edx
lea edx, [ebp - 0x6c]
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x70], edx
call fcn.00451b96
mov eax, dword [eax + 4]
lea ecx, [ebp - 0x7c]
mov dword [eax + 0x124], 8
mov dword [eax + 0x128], ecx
call fcn.00451b96
call fcn.00451b96
mov eax, dword [eax + 4]
lea esi, [eax + 0xd0]
or edi, 0xffffffff
test esi, esi
je 0x423193
mov eax, dword [esi + 0x60]
test eax, eax
je 0x423193
push str.Download
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x423193
mov edx, dword [esi + 0x58]
mov ecx, dword [esi + 0x54]
push edx
push ecx
call eax
mov edi, eax
mov dword [esi + 0x5c], edi
mov dword [ebp - 0x30], edi
cmp dword [ebp - 0x38], 0
mov dword [ebp - 0x18], 0
jle 0x424297
jmp 0x4231b0
mov eax, dword [ebp - 0x18]
test eax, eax
jl 0x422ef7
cmp eax, dword [ebx + 8]
jge 0x422ef7
mov esi, dword [ebp - 0x34]
mov ecx, dword [ebx + 4]
mov edx, eax
imul edx, edx, 0x418
mov edi, eax
imul edi, edi, 0xe0
add esi, edx
mov edx, dword [esi + 0xc]
add ecx, edi
mov dword [ecx + 0xac], edx
cmp eax, dword [ebx + 8]
mov dword [ebp - 0x1c], edi
jge 0x422ef7
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0xc]
add ecx, edi
mov dword [ecx + 0xa8], edx
cmp eax, dword [ebx + 8]
jge 0x422ef7
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0x10]
add ecx, edi
mov dword [ecx + 0xb0], edx
cmp eax, dword [ebx + 8]
jge 0x422ef7
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0x14]
add ecx, edi
mov dword [ecx + 0xa4], edx
cmp eax, dword [ebx + 8]
jge 0x422ef7
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0x14]
add ecx, edi
mov dword [ecx + 0x3c], edx
cmp eax, dword [ebx + 8]
jge 0x422ef7
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 4]
add eax, edi
add eax, 0x2c
mov dword [ebp - 0x2c], eax
test ecx, ecx
jne 0x423262
xor eax, eax
jmp 0x423280
mov eax, ecx
lea edx, [eax + 2]
mov dword [ebp - 0x20], edx
lea ebx, [ebx]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x423270
sub eax, dword [ebp - 0x20]
sar eax, 1
push eax
push ecx
mov ecx, dword [ebp - 0x2c]
call fcn.00401e90
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebx + 8]
jge 0x422ef7
mov eax, dword [ebx + 4]
add eax, edi
add esi, 0x18
lea ecx, [eax + 0x30]
jne 0x4232a7
xor eax, eax
jmp 0x4232c0
mov eax, esi
lea edx, [eax + 2]
mov dword [ebp - 0x20], edx
nop
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x4232b0
sub eax, dword [ebp - 0x20]
sar eax, 1
push eax
push esi
call fcn.00401e90
mov esi, dword [ebp - 0x18]
cmp esi, dword [ebx + 8]
jge 0x422ef7
mov eax, dword [ebx + 4]
add eax, edi
mov dword [eax + 0x14], 0x270f
cmp esi, dword [ebx + 8]
jge 0x422ef7
mov eax, dword [ebx + 4]
add eax, edi
mov dword [eax + 0xc8], 1
call fcn.00448a4d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4242e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x2c], eax
mov byte [ebp - 4], 2
cmp dword [eax - 0xc], 0
jne 0x423468
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.ApplicationName
call fcn.00401a30
push ecx
mov byte [ebp - 4], 3
mov ecx, esp
mov dword [ebp - 0x24], esp
push 0x5a5b30
call fcn.00401a30
mov byte [ebp - 4], 4
cmp esi, dword [ebx + 8]
jge 0x422ef7
mov eax, dword [ebx + 4]
mov esi, dword [eax + edi + 0x30]
add eax, edi
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
sub esi, 0x10
mov dword [ebp - 0x20], esp
mov dword [ebp - 0x20], esp
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x423390
cmp eax, dword [esi]
jne 0x423390
mov edi, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x4233cb
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x4242ea
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.00541902
add esp, 0x10
mov ecx, dword [ebp - 0x20]
lea edx, [ebp - 0x90]
add edi, 0x10
mov dword [ecx], edi
push edx
mov byte [ebp - 4], 2
call fcn.00407a20
add esp, 0x10
mov byte [ebp - 4], 5
mov ecx, dword [eax]
mov esi, dword [ebp - 0x2c]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x423442
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x423435
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x423435
push eax
call fcn.00402000
mov dword [ebp - 0x20], eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x42342a
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x20]
add ecx, 0x10
mov dword [ebp - 0x2c], ecx
jmp 0x423442
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [ebp - 0x2c]
call fcn.00401e90
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x90]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x423468
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ecx
mov ecx, esp
mov dword [ebp - 0x24], esp
push str._Firmware_Update_
call fcn.00401a30
lea ecx, [ebp - 0x44]
push ecx
lea ecx, [ebp - 0x2c]
call fcn.00407740
add esp, 8
mov byte [ebp - 4], 6
call fcn.00448a4d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4242e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x20], eax
push 0
push 0x5a14b0
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 7
call fcn.00401e90
mov byte [ebp - 4], 8
xor eax, eax
cmp dword [ebp + 0x10], 2
jne 0x4234d2
mov eax, 1
mov esi, dword [ebp + 0xc]
push eax
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add esi, 0xfffffff0
mov dword [ebp - 0x24], esp
mov dword [ebp - 0x14], esp
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x423504
cmp eax, dword [esi]
jne 0x423504
mov edi, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x42353f
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x4242ea
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.00541902
add esp, 0x10
mov ecx, dword [ebp - 0x14]
add edi, 0x10
mov dword [ecx], edi
mov byte [ebp - 4], 9
mov esi, dword [ebp - 0x44]
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
add esi, 0xfffffff0
mov dword [ebp - 0x14], esp
mov dword [ebp - 0x14], esp
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x42357c
cmp eax, dword [esi]
jne 0x42357c
mov edi, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x4235b7
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x4242ea
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.00541902
add esp, 0x10
mov ecx, dword [ebp - 0x14]
add edi, 0x10
mov dword [ecx], edi
lea edx, [ebp - 0x80]
push edx
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 8
call fcn.0040bf50
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], 0xa
cmp ecx, dword [ebx + 8]
jge 0x422ef7
mov ecx, dword [ebx + 4]
add ecx, dword [ebp - 0x1c]
mov esi, dword [ecx + 0x90]
lea edi, [ecx + 0x90]
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x423644
cmp dword [esi + 0xc], 0
jl 0x423638
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x423638
push eax
call fcn.00402000
mov dword [ebp - 0x14], eax
add esp, 4
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42362e
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x14]
add ecx, 0x10
mov dword [edi], ecx
jmp 0x423644
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, edi
call fcn.00401e90
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x80]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x423667
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ecx
mov ecx, esp
mov dword [ebp - 0x24], esp
push str.ApplicationDescription
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0xb
mov ecx, esp
mov dword [ebp - 0x28], esp
push 0x5a5b30
call fcn.00401a30
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], 0xc
cmp ecx, dword [ebx + 8]
jge 0x422ef7
mov eax, dword [ebx + 4]
add eax, dword [ebp - 0x1c]
push ecx
mov esi, dword [eax + 0x30]
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
sub esi, 0x10
mov dword [ebp - 0x14], esp
mov dword [ebp - 0x14], esp
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x4236d2
cmp eax, dword [esi]
jne 0x4236d2
mov edi, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x42370d
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x4242ea
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.00541902
add esp, 0x10
mov ecx, dword [ebp - 0x14]
lea edx, [ebp - 0x3c]
add edi, 0x10
mov dword [ecx], edi
push edx
mov byte [ebp - 4], 8
call fcn.00407a20
add esp, 0x10
lea esi, [ebp - 0x3c]
mov byte [ebp - 4], 0xd
call fcn.004154a0
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebx + 8]
jge 0x422ef7
mov eax, dword [ebx + 4]
add eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x3c]
mov esi, dword [eax + 0x9c]
lea edi, [eax + 0x9c]
lea eax, [ecx - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x4237a3
cmp dword [esi + 0xc], 0
jl 0x423797
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x423797
push eax
call fcn.00402000
mov dword [ebp - 0x14], eax
add esp, 4
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42378d
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x14]
add ecx, 0x10
mov dword [edi], ecx
jmp 0x4237a3
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, edi
call fcn.00401e90
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push str.NewVersion
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0xe
mov ecx, esp
mov dword [ebp - 0x24], esp
push 0x5a5b30
call fcn.00401a30
mov edx, dword [ebp - 0x18]
mov byte [ebp - 4], 0xf
cmp edx, dword [ebx + 8]
jge 0x422ef7
mov eax, dword [ebx + 4]
add eax, dword [ebp - 0x1c]
push ecx
mov esi, dword [eax + 0x30]
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
sub esi, 0x10
mov dword [ebp - 0x14], esp
mov dword [ebp - 0x14], esp
call edx
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x42380e
cmp eax, dword [esi]
jne 0x42380e
mov edi, esi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x423849
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x4242ea
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.00541902
add esp, 0x10
mov ecx, dword [ebp - 0x14]
lea edx, [ebp - 0x94]
add edi, 0x10
mov dword [ecx], edi
push edx
mov byte [ebp - 4], 0xd
call fcn.00407a20
add esp, 0x10
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], 0x10
cmp ecx, dword [ebx + 8]
jge 0x422ef7
mov ecx, dword [ebx + 4]
add ecx, dword [ebp - 0x1c]
mov esi, dword [ecx + 0x94]
lea edi, [ecx + 0x94]
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x4238d9
cmp dword [esi + 0xc], 0
jl 0x4238cd
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x4238cd
push eax
call fcn.00402000
mov dword [ebp - 0x14], eax
add esp, 4
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4238c3
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x14]
add ecx, 0x10
mov dword [edi], ecx
jmp 0x4238d9
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, edi
call fcn.00401e90
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x94]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4238ff
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push str.CurrentVersion
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0x11
mov ecx, esp
mov dword [ebp - 0x24], esp
push 0x5a5b30
call fcn.00401a30
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], 0x12
cmp ecx, dword [ebx + 8]
jge 0x422ef7
mov eax, dword [ebx + 4]
add eax, dword [ebp - 0x1c]
push ecx
mov esi, dword [eax + 0x30]
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
sub esi, 0x10
mov dword [ebp - 0x14], esp
mov dword [ebp - 0x14], esp
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x42396a
cmp eax, dword [esi]
jne 0x42396a
mov edi, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x4239a5
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x4242ea
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.00541902
add esp, 0x10
mov ecx, dword [ebp - 0x14]
lea edx, [ebp - 0x8c]
add edi, 0x10
mov dword [ecx], edi
push edx
mov byte [ebp - 4], 0xd
call fcn.00407a20
add esp, 0x10
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], 0x13
cmp ecx, dword [ebx + 8]
jge 0x422ef7
mov ecx, dword [ebx + 4]
add ecx, dword [ebp - 0x1c]
mov esi, dword [ecx + 0x98]
lea edi, [ecx + 0x98]
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x423a35
cmp dword [esi + 0xc], 0
jl 0x423a29
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x423a29
push eax
call fcn.00402000
mov dword [ebp - 0x14], eax
add esp, 4
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x423a1f
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x14]
add ecx, 0x10
mov dword [edi], ecx
jmp 0x423a35
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, edi
call fcn.00401e90
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x8c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x423a5b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push str.ExecuteName
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0x14
mov ecx, esp
mov dword [ebp - 0x24], esp
push 0x5a5b30
call fcn.00401a30
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], 0x15
cmp ecx, dword [ebx + 8]
jge 0x422ef7
mov eax, dword [ebx + 4]
add eax, dword [ebp - 0x1c]
push ecx
mov esi, dword [eax + 0x30]
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
sub esi, 0x10
mov dword [ebp - 0x14], esp
mov dword [ebp - 0x14], esp
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x423ac6
cmp eax, dword [esi]
jne 0x423ac6
mov edi, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x423b01
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x4242ea
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.00541902
add esp, 0x10
mov ecx, dword [ebp - 0x14]
lea edx, [ebp - 0x84]
add edi, 0x10
mov dword [ecx], edi
push edx
mov byte [ebp - 4], 0xd
call fcn.00407a20
add esp, 0x10
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], 0x16
cmp ecx, dword [ebx + 8]
jge 0x422ef7
mov ecx, dword [ebx + 4]
add ecx, dword [ebp - 0x1c]
mov esi, dword [ecx + 8]
lea edi, [ecx + 8]
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x423b8b
cmp dword [esi + 0xc], 0
jl 0x423b7f
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x423b7f
push eax
call fcn.00402000
mov dword [ebp - 0x14], eax
add esp, 4
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x423b75
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x14]
add ecx, 0x10
mov dword [edi], ecx
jmp 0x423b8b
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, edi
call fcn.00401e90
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x84]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x423bb1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xa4], 0
jne 0x423d1d
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push str.UpdateInfoLocation
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0x17
mov ecx, esp
mov dword [ebp - 0x24], esp
push 0x5a5b30
call fcn.00401a30
mov edx, dword [ebp - 0x18]
mov byte [ebp - 4], 0x18
cmp edx, dword [ebx + 8]
jge 0x422ef7
mov eax, dword [ebx + 4]
add eax, dword [ebp - 0x1c]
push ecx
mov esi, dword [eax + 0x30]
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
sub esi, 0x10
mov dword [ebp - 0x14], esp
mov dword [ebp - 0x14], esp
call edx
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x423c2c
cmp eax, dword [esi]
jne 0x423c2c
mov edi, esi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x423c67
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x4242ea
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.00541902
add esp, 0x10
mov ecx, dword [ebp - 0x14]
lea edx, [ebp - 0x88]
add edi, 0x10
mov dword [ecx], edi
push edx
mov byte [ebp - 4], 0xd
call fcn.00407a20
add esp, 0x10
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], 0x19
cmp ecx, dword [ebx + 8]
jge 0x422ef7
mov ecx, dword [ebx + 4]
add ecx, dword [ebp - 0x1c]
mov esi, dword [ecx + 0xa0]
lea edi, [ecx + 0xa0]
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x423cf7
cmp dword [esi + 0xc], 0
jl 0x423ceb
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x423ceb
push eax
call fcn.00402000
mov dword [ebp - 0x14], eax
add esp, 4
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x423ce1
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x14]
add ecx, 0x10
mov dword [edi], ecx
jmp 0x423cf7
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, edi
call fcn.00401e90
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x88]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x423d1d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push str.RequiredOption
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0x1a
mov ecx, esp
mov dword [ebp - 0x24], esp
push 0x5a5b30
call fcn.00401a30
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], 0x1b
cmp ecx, dword [ebx + 8]
jge 0x422ef7
mov eax, dword [ebx + 4]
add eax, dword [ebp - 0x1c]
push ecx
mov esi, dword [eax + 0x30]
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
sub esi, 0x10
mov dword [ebp - 0x14], esp
mov dword [ebp - 0x14], esp
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x423d88
cmp eax, dword [esi]
jne 0x423d88
mov edi, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x423dc3
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x4242ea
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.00541902
add esp, 0x10
mov ecx, dword [ebp - 0x14]
lea edx, [ebp - 0x40]
add edi, 0x10
mov dword [ecx], edi
push edx
mov byte [ebp - 4], 0xd
call fcn.00407a20
add esp, 0x10
mov byte [ebp - 4], 0x1c
mov esi, dword [ebp - 0x40]
cmp dword [esi - 0xc], 0
je 0x423e7a
push ecx
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
add esi, 0xfffffff0
mov dword [ebp - 0x28], esp
mov dword [ebp - 0x14], esp
call edx
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x423e1a
cmp eax, dword [esi]
jne 0x423e1a
mov edi, esi
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x423e55
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x4242ea
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.00541902
add esp, 0x10
mov ecx, dword [ebp - 0x14]
add edi, 0x10
mov dword [ecx], edi
call fcn.004279b0
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebx + 8]
jge 0x422ef7
mov ecx, dword [ebx + 4]
add ecx, dword [ebp - 0x1c]
mov dword [ecx + 0xd8], eax
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebx + 8]
jge 0x422ef7
mov ecx, dword [ebx + 4]
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + ecx + 0x30]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
lea edi, [edx + ecx]
push eax
push 0
push str.LastFirmVer
push 0x5a5b30
call esi
mov dword [edi + 0xb4], eax
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebx + 8]
jge 0x422ef7
mov ecx, dword [ebx + 4]
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + ecx + 0x30]
lea edi, [edx + ecx]
push eax
push 0
push str.PrinterOnline
push 0x5a5b30
call esi
mov dword [edi + 0xb8], eax
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebx + 8]
jge 0x422ef7
mov ecx, dword [ebx + 4]
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + ecx + 0x30]
lea edi, [edx + ecx]
push eax
push 0
push str.DefaultInstall
push 0x5a5b30
call esi
mov dword [edi + 0xbc], eax
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebx + 8]
jge 0x422ef7
mov ecx, dword [ebx + 4]
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + ecx + 0x30]
lea edi, [edx + ecx]
push eax
push 0
push str.UpdateOnly
push 0x5a5b30
call esi
mov dword [edi + 0xc0], eax
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebx + 8]
jge 0x422ef7
mov ecx, dword [ebx + 4]
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + ecx + 0x30]
lea edi, [edx + ecx]
push eax
push 0
push str.RunServerOS
push 0x5a5b30
call esi
mov dword [edi + 0xc4], eax
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebx + 8]
jge 0x422ef7
mov ecx, dword [ebx + 4]
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + ecx + 0x30]
lea edi, [edx + ecx]
push eax
push 0
push str.Essential
push 0x5a5b30
call esi
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push str.Status
mov dword [edi + 0xcc], eax
call fcn.00401a30
push ecx
mov byte [ebp - 4], 0x1d
mov ecx, esp
mov dword [ebp - 0x24], esp
push 0x5a5b30
call fcn.00401a30
mov eax, dword [ebp - 0x18]
mov byte [ebp - 4], 0x1e
cmp eax, dword [ebx + 8]
jge 0x422ef7
mov eax, dword [ebx + 4]
add eax, dword [ebp - 0x1c]
push ecx
mov esi, dword [eax + 0x30]
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
sub esi, 0x10
mov dword [ebp - 0x14], esp
mov dword [ebp - 0x14], esp
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x423fff
cmp eax, dword [esi]
jne 0x423fff
mov edi, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x42403a
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x4242ea
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.00541902
add esp, 0x10
mov ecx, dword [ebp - 0x14]
lea edx, [ebp - 0x48]
add edi, 0x10
mov dword [ecx], edi
push edx
mov byte [ebp - 4], 0x1c
call fcn.00407a20
add esp, 0x10
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], 0x1f
cmp ecx, dword [ebx + 8]
jge 0x422ef7
mov ecx, dword [ebx + 4]
add ecx, dword [ebp - 0x1c]
mov esi, dword [ecx + 0xd0]
lea edi, [ecx + 0xd0]
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x4240c7
cmp dword [esi + 0xc], 0
jl 0x4240bb
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x4240bb
push eax
call fcn.00402000
mov dword [ebp - 0x14], eax
add esp, 4
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4240b1
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x14]
add ecx, 0x10
mov dword [edi], ecx
jmp 0x4240c7
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, edi
call fcn.00401e90
mov byte [ebp - 4], 0x1c
mov eax, dword [ebp - 0x48]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4240ea
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebx + 8]
jge 0x422ef7
mov edx, dword [ebx + 4]
mov esi, dword [ebp - 0x1c]
mov eax, dword [esi + edx + 0x30]
lea edi, [esi + edx]
push eax
push 0
push str.NoInternetOnly
push 0x5a5b30
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
sub esp, 0x28
mov dword [edi + 0xdc], eax
mov eax, esp
mov dword [ebp - 0x28], esp
push eax
lea edi, [ebp + 0xc]
call fcn.004242f0
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], 0x20
cmp ecx, dword [ebx + 8]
jge 0x422ef7
mov eax, dword [ebx + 4]
mov edi, dword [eax + esi + 0x90]
add eax, esi
push ecx
mov ecx, dword [edi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
sub edi, 0x10
mov dword [ebp - 0x24], esp
mov dword [ebp - 0x14], esp
call eax
cmp dword [edi + 0xc], 0
lea edx, [edi + 0xc]
jl 0x424177
cmp eax, dword [edi]
jne 0x424177
mov esi, edi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x4241b2
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
je 0x4242ea
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.00541902
add esp, 0x10
mov ecx, dword [ebp - 0x14]
add esi, 0x10
mov dword [ecx], esi
mov byte [ebp - 4], 0x1c
call fcn.00427280
mov esi, dword [ebp - 0x18]
cmp esi, dword [ebx + 8]
jge 0x422ef7
mov ecx, dword [ebx + 4]
add ecx, dword [ebp - 0x1c]
mov byte [ebp - 4], 0xd
mov dword [ecx + 0xd4], eax
mov eax, dword [ebp - 0x40]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4241fe
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x424221
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 - 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x424244
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 - 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x424267
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 - 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42428a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
inc esi
cmp esi, dword [ebp - 0x38]
mov dword [ebp - 0x18], esi
jl 0x4231b0
cmp dword [ebp - 0x34], 0
je 0x4242a9
mov ecx, dword [ebp - 0x34]
push ecx
call fcn.00447f33
add esp, 4
mov byte [ebp - 4], 0
lea edi, [ebp - 0xb0]
mov dword [ebp - 0xb0], vtable.CMap_int__int__class_ATL::CStringT_wchar_t__class_StrTraitMFC_wchar_t__class_ATL::ChTraitsCRT_wchar_t_____class_ATL::CStringT_wchar_t__class_StrTraitMFC_wchar_t__class_ATL::ChTraitsCRT_wchar_t____.0
call fcn.004282d0
lea esi, [ebp + 0xc]
call fcn.00421b00
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x2c
push 0x80004005
call fcn.00401fd0
call fcn.00401ff0
int3