Function at 0x447650
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5f6430
mov eax, dword fs:[0]
push eax
sub esp, 0x78
push ebx
push esi
push edi
mov eax, dword [0x6b7e40]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 4], 2
mov ebx, dword [ebp + 8]
mov ecx, ebx
mov byte [ebx + 8], 0
mov eax, dword [ebx]
push dword [eax + 4]
call fcn.00443fa0
mov eax, dword [ebx]
mov dword [eax + 4], eax
mov eax, dword [ebx]
mov dword [eax], eax
mov eax, dword [ebx]
mov dword [eax + 8], eax
mov dword [ebx + 4], 0
call fcn.004364e0
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x3c], eax
call fcn.0041c5c0
mov byte [ebp - 4], 3
call fcn.004a4516
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4476d7
push 0x80004005
call fcn.00402040
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x34], eax
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 4
call fcn.00419000
mov ecx, eax
mov byte [ebp - 4], 5
call fcn.00419220
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x40]
add edx, 0xfffffff0
or ebx, 0xffffffff
movzx esi, ax
lea ecx, [edx + 0xc]
mov eax, ebx
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x447721
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push esi
lea eax, [ebp - 0x34]
push 0x641d0c
push eax
call fcn.00404520
add esp, 0xc
lea ecx, [ebp - 0x4c]
call fcn.0043f750
mov byte [ebp - 4], 6
mov eax, dword [ebp + 0x14]
push ecx
add eax, 0xfffffff0
mov esi, esp
push eax
call fcn.004046f0
add eax, 0x10
add esp, 4
lea ecx, [ebp - 0x48]
mov dword [esi], eax
call fcn.004365b0
add esp, 4
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 7
call fcn.00434ff0
push str.GetIMVersions.aspx
push eax
lea eax, [ebp - 0x30]
push eax
mov byte [ebp - 4], 8
call fcn.004067b0
add esp, 0xc
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x54]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4477a3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.004a4516
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4477bf
push 0x80004005
call fcn.00402040
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0xb
push dword [ebp - 0x4c]
mov edi, dword [ebp - 0x34]
push edi
push dword [ebp - 0x50]
lea eax, [ebp - 0x18]
push dword [ebp + 0x10]
push 1
push dword [ebp - 0x3c]
push dword [ebp + 0xc]
push dword [ebp - 0x48]
push str._serial_number_sMajorVersion_sdebug_dmaxaccess_dRelease_sosa_slid_sapp_s
push eax
call fcn.00404520
add esp, 0x28
lea ecx, [ebp - 0x18]
push 0x6463b8
push 0x63c0a0
call fcn.00411ec0
lea eax, [ebp - 0x2c]
push eax
push 0x20019
push 0
push str.SoftwareSolidWorksIM
push SysReAllocStringLen
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x58], 4
mov dword [ebp - 0x40], 0x400
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x44791e
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x58]
push eax
push 0
push str.DummyNVA
push dword [ebp - 0x2c]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push dword [ebp - 0x2c]
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test esi, esi
jne 0x44791e
cmp dword [ebp - 0x20], 1
jb 0x44791e
call fcn.004a4516
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x447898
push 0x80004005
call fcn.00402040
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 0x10
push dword [ebp - 0x20]
lea eax, [ebp - 0x1c]
push str.dummy_d
push eax
call fcn.00404520
add esp, 0xc
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.004066f0
add esp, 0xc
push eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x11
call fcn.00404570
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x40]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4478fe
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44791e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.004066f0
add esp, 0xc
lea eax, [ebp - 0x38]
push eax
mov ecx, 0x6c1f28
mov byte [ebp - 4], 0x12
call fcn.00402500
push 0
mov dl, 1
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0x13
call fcn.0041a520
add esp, 4
call fcn.004a4516
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x447973
push 0x80004005
call fcn.00402040
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x2c], eax
mov byte [ebp - 4], 0x14
push dword [ebp + 0xc]
mov esi, dword [ebp - 0x38]
push esi
lea eax, [ebp - 0x2c]
push str._sIMVersions__s.xml
push eax
call fcn.00404520
add esp, 0x10
lea ecx, [ebp - 0x28]
push 0x63bfdc
call fcn.004021e0
push ecx
lea eax, [ebp - 0x28]
push eax
lea edx, [ebp - 0x2c]
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0x15
call fcn.0040a940
add esp, 8
mov byte [ebp - 0x11], al
test al, al
je 0x447f39
push str.New_IM_Versions
lea ecx, [ebp - 0x1c]
call fcn.004021e0
push str.Called_GetXMLFromWeb
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x16
call fcn.004021e0
push 0x63bfdc
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x17
call fcn.004021e0
xor ecx, ecx
call fcn.004051a0
mov dword [ebp - 0x40], eax
push ecx
mov byte [ebp - 4], 0x18
mov ecx, dword [ebp - 0x24]
add ecx, 0xfffffff0
mov ebx, esp
push ecx
call fcn.004046f0
mov ecx, dword [ebp - 0x40]
add esp, 4
add eax, 0x10
push 0
push 0
mov dword [ebx], eax
lea eax, [ebp - 0x3c]
push eax
push 0x14a
push str.C:_amintegration_tools_setupishield_sldim_sldbgdwldBgDwldXML.cpp
push 0
push 2
call fcn.004055a0
mov byte [ebp - 4], 0x17
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
or ebx, 0xffffffff
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x447a60
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x16
mov edx, dword [ebp - 0x3c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x447a80
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
xor ecx, ecx
call fcn.004051a0
mov ecx, eax
call fcn.00405cd0
lea ecx, [ebp - 0x80]
call fcn.00455da0
mov byte [ebp - 4], 0x19
push dword [ebp + 0x18]
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x80]
call fcn.00456010
test al, al
jne 0x447b68
call fcn.004a4516
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x447acd
push 0x80004005
call fcn.00402040
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
push 0
mov edx, 0x1f9
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x1a
call fcn.00419a90
add esp, 4
mov byte [ebp - 4], 0x1b
mov ecx, dword [ebp + 0x18]
push dword [ecx]
push dword [ebp - 0x1c]
push dword [eax]
lea eax, [ebp + 8]
push eax
call fcn.00404520
mov byte [ebp - 4], 0x1a
mov edx, dword [ebp - 0x40]
add edx, 0xfffffff0
add esp, 0x10
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x447b2a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
push 0x63bfdc
call fcn.004021e0
push 0x1f9
lea eax, [ebp + 8]
push eax
push 0x152
push str.C:_amintegration_tools_setupishield_sldim_sldbgdwldBgDwldXML.cpp
push 1
push 1
xor ecx, ecx
call fcn.004051a0
mov ecx, eax
call fcn.004022e0
mov byte [ebp - 4], 0x19
mov edx, dword [ebp + 8]
jmp 0x447cfe
push str.AllSourceIMs
lea ecx, [ebp - 0x3c]
call fcn.004021e0
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0x1c
call fcn.00456550
mov dword [ebp - 0x40], eax
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x3c]
add eax, 0xfffffff0
mov dword [ebp - 0x24], eax
lea ecx, [eax + 0xc]
mov edx, ebx
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x447bad
mov ecx, dword [eax]
push dword [ebp - 0x24]
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x40], 0
jne 0x447d4c
call fcn.004a4516
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x447bd3
push 0x80004005
call fcn.00402040
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 0x18], eax
push str.AllSourceIMs
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x1d
call fcn.004021e0
mov ebx, eax
push str.Root_node_not_found:
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x1e
call fcn.004021e0
push ebx
push eax
lea eax, [ebp - 0x40]
push eax
mov byte [ebp - 4], 0x1f
call fcn.004066f0
add esp, 0xc
mov ebx, eax
push 0
mov edx, 0x1f8
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0x20
call fcn.00419a90
add esp, 4
mov byte [ebp - 4], 0x21
push dword [ebx]
push dword [eax]
lea eax, [ebp + 0x18]
push eax
call fcn.00404520
mov byte [ebp - 4], 0x20
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
or ebx, 0xffffffff
add esp, 0xc
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x447c65
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x1f
mov edx, dword [ebp - 0x40]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x447c85
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x1e
mov edx, dword [ebp - 0x3c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x447ca5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x1d
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x447cc5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
push 0x63bfdc
call fcn.004021e0
push 0x1f8
lea eax, [ebp + 0x18]
push eax
push 0x15d
push str.C:_amintegration_tools_setupishield_sldim_sldbgdwldBgDwldXML.cpp
push 1
push 1
xor ecx, ecx
call fcn.004051a0
mov ecx, eax
call fcn.004022e0
mov byte [ebp - 4], 0x19
mov edx, dword [ebp + 0x18]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x447d17
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0x16
call fcn.00455ee0
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x447d43
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 0x11], 0
jmp 0x44800b
push str.About_to_call_GetAllSourceIMs
lea ecx, [ebp - 0x24]
call fcn.004021e0
push ecx
mov ecx, esp
push 0x63bfdc
mov byte [ebp - 4], 0x22
call fcn.004021e0
push 0
lea eax, [ebp - 0x24]
push eax
push 0x162
push str.C:_amintegration_tools_setupishield_sldim_sldbgdwldBgDwldXML.cpp
push 0
push 2
xor ecx, ecx
call fcn.004051a0
mov ecx, eax
call fcn.004022e0
mov byte [ebp - 4], 0x19
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x447dac
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
xor ecx, ecx
call fcn.004051a0
mov ecx, eax
call fcn.00405cd0
mov dword [ebp - 0x64], vtable.CSourceXML.0
mov byte [ebp - 0x60], 0
mov byte [ebp - 4], 0x23
push dword [ebp + 0x18]
lea ecx, [ebp - 0x64]
push dword [ebp + 8]
push dword [ebp - 0x40]
call fcn.0044dd10
mov byte [ebp - 0x11], al
test al, al
jne 0x447e8f
lea ecx, [ebp - 0x24]
call fcn.00404540
push 0
mov edx, 0x1fb
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x24
call fcn.00419a90
add esp, 4
mov byte [ebp - 4], 0x25
mov ecx, dword [ebp + 0x18]
push dword [ecx]
push dword [ebp - 0x1c]
push dword [eax]
lea eax, [ebp - 0x24]
push eax
call fcn.00404520
mov byte [ebp - 4], 0x24
mov edx, dword [ebp - 0x40]
add edx, 0xfffffff0
add esp, 0x10
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x447e3d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
push 0x63bfdc
call fcn.004021e0
push 0x1fb
lea eax, [ebp - 0x24]
push eax
push 0x16b
push str.C:_amintegration_tools_setupishield_sldim_sldbgdwldBgDwldXML.cpp
push 1
push 1
xor ecx, ecx
call fcn.004051a0
mov ecx, eax
call fcn.004022e0
mov byte [ebp - 4], 0x23
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x447e8f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.Called_GetAllSourceIMs
lea ecx, [ebp + 0x18]
call fcn.004021e0
push ecx
mov ecx, esp
push 0x63bfdc
mov byte [ebp - 4], 0x26
call fcn.004021e0
push 0
lea eax, [ebp + 0x18]
push eax
push 0x16f
push str.C:_amintegration_tools_setupishield_sldim_sldbgdwldBgDwldXML.cpp
push 0
push 2
xor ecx, ecx
call fcn.004051a0
mov ecx, eax
call fcn.004022e0
mov byte [ebp - 4], 0x23
mov edx, dword [ebp + 0x18]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x447eef
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
xor ecx, ecx
call fcn.004051a0
mov ecx, eax
call fcn.00405cd0
lea ecx, [ebp - 0x80]
mov dword [ebp - 0x64], vtable.CSourceXML.0
mov byte [ebp - 4], 0x16
call fcn.00455ee0
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x448002
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x448002
push 0
mov edx, 0x2842
lea ecx, [ebp - 0x40]
call fcn.00419a90
add esp, 4
mov byte [ebp - 4], 0x27
push dword [ebp - 0x30]
push dword [eax]
push dword [ebp + 0x18]
call fcn.00404520
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x40]
add edx, 0xfffffff0
add esp, 0xc
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x447f7f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x63bfdc
lea ecx, [ebp - 0x40]
call fcn.004021e0
xor ecx, ecx
call fcn.004051a0
mov dword [ebp - 0x3c], eax
push ecx
mov byte [ebp - 4], 0x28
mov ecx, dword [ebp - 0x40]
add ecx, 0xfffffff0
mov ebx, esp
push ecx
call fcn.004046f0
mov ecx, dword [ebp - 0x3c]
add esp, 4
add eax, 0x10
push 0x2842
push 0
push dword [ebp + 0x18]
mov dword [ebx], eax
push 0x175
push str.C:_amintegration_tools_setupishield_sldim_sldbgdwldBgDwldXML.cpp
push 1
push 1
call fcn.004055a0
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x40]
add edx, 0xfffffff0
or ebx, 0xffffffff
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x447ff4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
xor ecx, ecx
call fcn.004051a0
mov ecx, eax
call fcn.00405cd0
mov eax, dword [ebp + 8]
mov cl, byte [ebp - 0x11]
mov byte [eax + 8], cl
mov byte [ebp - 4], 0x14
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44802b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x13
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x44804b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [ebp - 4], 0x12
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x448068
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x44]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x448088
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4480a8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4480c8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x48]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4480e8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x4c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x448108
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 0xfffffff0
mov byte [ebp - 4], 3
lea eax, [edi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x448125
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x50]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x448145
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
mov edx, dword [ebp + 0xc]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x448165
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov edx, dword [ebp + 0x10]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x448185
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp + 0x14]
add esi, 0xfffffff0
lea eax, [esi + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x4481a6
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov al, byte [ebp - 0x11]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14