Function at 0x41a3e0
Capabilities:
Delete registry key
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5899f9
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x1f34
call fcn.0055d880
mov eax, dword [0x5eb770]
xor eax, esp
mov dword [esp + 0x1f30], eax
push ebx
push esi
push edi
mov eax, dword [0x5eb770]
xor eax, esp
push eax
lea eax, [esp + 0x1f48]
mov dword fs:[0], eax
xor ebx, ebx
push ebx
mov edi, ecx
mov esi, edx
push str.Tool_DeleteNetworkPrinter
push ebx
lea ecx, [esp + 0x28]
mov dword [esp + 0x6c], edi
mov dword [esp + 0x54], esi
call fcn.0044ca70
add esp, 0xc
push ebx
push ebx
push esi
push edi
push str.lpszPrinter___s__lpszVersion___s__bJob___d__bDebug___d
mov esi, 1
lea eax, [esp + 0x30]
push esi
push eax
mov dword [esp + 0x1f6c], ebx
call fcn.0044cd10
add esp, 0x1c
call fcn.0046d2d8
mov ecx, dword [eax + 4]
call fcn.00464015
push 0x860
lea ecx, [esp + 0x16e0]
push ebx
push ecx
mov byte [esp + 0x1f5c], 1
call fcn.0055ca80
add esp, 0xc
push 0x208
lea edx, [esp + 0x290]
push ebx
push edx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x20], ebx
call fcn.0055ca80
add esp, 0xc
push 0x410
lea eax, [esp + 0x498]
push ebx
push eax
call fcn.0055ca80
add esp, 0xc
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x68], esi
mov dword [esp + 0x70], esi
mov dword [esp + 0x64], ebx
mov dword [esp + 0x6c], esi
call fcn.0046d2d8
mov ecx, dword [eax + 4]
mov dword [esp + 0x28], ecx
push ebx
push esi
mov ecx, edi
call fcn.0041b830
add esp, 8
cmp eax, esi
jne 0x41a53e
push 3
push str.return___08x
lea edx, [esp + 0x24]
push 2
push edx
call fcn.0044cd10
add esp, 0x10
lea ecx, [esp + 0x13]
mov byte [esp + 0x1f50], bl
call fcn.004078f0
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1f50], 0xffffffff
call fcn.0044cc70
lea eax, [ebx + 3]
jmp 0x41b27c
mov dword [esp + 0x58], ebx
test edi, edi
je 0x41a551
mov ecx, edi
call fcn.0045dcf0
mov dword [esp + 0x58], eax
mov esi, dword [sym.imp.WINSPOOL.DRV_EnumPrintersW]
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x34]
push ecx
push 0
push 0
push 2
push 0
push 4
call esi
test eax, eax
jne 0x41a5c0
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
je 0x41a5c0
push 1
push str.return___08x
lea edx, [esp + 0x24]
push 2
push edx
call fcn.0044cd10
mov byte [esp + 0x1f60], bl
add esp, 0x10
lea ecx, [esp + 0x13]
call fcn.004078f0
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1f50], 0xffffffff
call fcn.0044cc70
mov eax, 1
jmp 0x41b27c
mov eax, dword [esp + 0x30]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ebx, eax
test ebx, ebx
jne 0x41a5f0
push 1
push str.return___08x
lea ecx, [esp + 0x24]
push 2
push ecx
call fcn.0044cd10
mov byte [esp + 0x1f60], 0
jmp 0x41a596
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x34]
push eax
push ecx
push ebx
push 2
push 0
push 4
call esi
test eax, eax
je 0x41a658
cmp dword [esp + 0x34], 0
mov dword [esp + 0x14], 0
jbe 0x41a658
lea esi, [ebx + 4]
mov edi, edi
mov edx, dword [esi]
push edi
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
mov eax, dword [esp + 0x14]
je 0x41a642
inc eax
add esi, 0x54
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x34]
jb 0x41a620
jmp 0x41a658
imul eax, eax, 0x54
mov ecx, dword [eax + ebx + 0x10]
push ecx
lea edx, [esp + 0x498]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
push 0x820
xor ebx, ebx
lea eax, [esp + 0xec0]
push ebx
push eax
call fcn.0055ca80
lea ecx, [esp + 0x4c]
add esp, 0xc
push ecx
lea edx, [esp + 0xec0]
mov ecx, edi
mov dword [esp + 0x44], ebx
call fcn.0040fdd0
mov edx, dword [esp + 0x2c]
mov esi, dword [edx + 0x634]
add esp, 4
cmp edi, ebx
je 0x41a71c
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov byte [esp + 0x1f50], 2
test byte [0x60aea0], 1
jne 0x41a6e5
or dword [0x60aea0], 1
mov byte [esp + 0x1f50], 3
call fcn.00458180
push 0x58b2e0
call fcn.005597b9
add esp, 4
mov byte [esp + 0x1f50], 2
test dword [0x60ac7c], 0x800
jne 0x41a704
cmp esi, ebx
je 0x41a704
xor edx, edx
xor ecx, ecx
mov ebx, edi
call fcn.00459780
xor ebx, ebx
jmp 0x41a710
push ebx
push ebx
mov ecx, edi
call fcn.0045db00
add esp, 8
mov byte [esp + 0x1f50], 1
cmp eax, ebx
je 0x41a770
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
jne 0x41a5d3
push 4
push str.return___08x
lea eax, [esp + 0x24]
push 2
push eax
call fcn.0044cd10
add esp, 0x10
lea ecx, [esp + 0x13]
mov byte [esp + 0x1f50], 0
call fcn.004078f0
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1f50], 0xffffffff
call fcn.0044cc70
mov eax, 4
jmp 0x41b27c
call fcn.0046d2d8
mov ecx, dword [eax + 4]
call fcn.0046403f
call fcn.00461e32
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x41a797
push 0x80004005
call fcn.004025a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x3c], eax
lea ecx, [esp + 0x3c]
push ecx
push ecx
lea edx, [esp + 0x49c]
mov ecx, esp
mov dword [esp + 0x5c], esp
push edx
mov byte [esp + 0x1f5c], 4
call fcn.00403340
call fcn.0041cef0
add esp, 8
call fcn.00461e32
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x41a7ea
push 0x80004005
call fcn.004025a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov byte [esp + 0x1f50], 5
call fcn.00461e32
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x41a81c
push 0x80004005
call fcn.004025a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x2c], eax
push edi
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1f54], 6
call fcn.00403340
mov ecx, dword [esp + 0x48]
push ecx
lea ecx, [esp + 0x48]
mov byte [esp + 0x1f54], 7
call fcn.00403340
mov eax, dword [esp + 0x28]
add eax, 0x5d8
push 0x5b9f70
push eax
mov byte [esp + 0x1f58], 8
mov dword [esp + 0x50], ebx
mov dword [esp + 0x5c], eax
call fcn.00404f40
add esp, 8
test al, al
je 0x41a88f
mov ecx, edi
call fcn.00424e00
mov dword [esp + 0x48], eax
jmp 0x41aa34
mov edx, dword [esp + 0x38]
mov eax, dword [edx - 0xc]
dec eax
push eax
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x40]
call fcn.0040a1c0
mov esi, dword [esp + 0x28]
push eax
add esi, 0xf0
lea ecx, [esp + 0x28]
push esi
mov bl, 9
push ecx
mov byte [esp + 0x1f5c], bl
call fcn.0040a2c0
add esp, 0xc
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1f54], 0xa
call fcn.00404890
mov byte [esp + 0x1f50], bl
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41a901
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1f50], 8
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41a929
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push esi
lea ecx, [esp + 0x30]
call fcn.00404890
mov esi, dword [esp + 0x18]
push esi
push SysReAllocStringLen
call fcn.0041a0a0
mov ebx, dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
add esp, 8
push esi
push SysReAllocStringLen
call ebx
push edi
lea ecx, [esp + 0x50]
call fcn.00403340
mov ecx, esi
push 0x5c
push ecx
mov byte [esp + 0x1f58], 0xb
call fcn.005589fd
add esp, 8
test eax, eax
jne 0x41a97b
or eax, 0xffffffff
jmp 0x41a981
sub eax, dword [esp + 0x18]
sar eax, 1
push eax
lea edx, [esp + 0x28]
push edx
lea ecx, [esp + 0x20]
call fcn.0040a240
mov byte [esp + 0x1f50], 0xc
mov edi, dword [esp + 0x24]
mov esi, SysReAllocStringLen
call fcn.0041a290
cmp eax, 1
jne 0x41a9b1
mov eax, edi
push eax
push esi
call ebx
mov edi, dword [esp + 0x2c]
call fcn.0041a290
cmp eax, 1
jne 0x41a9e0
mov ecx, edi
push ecx
push SysReAllocStringLen
call ebx
mov edi, str.SOFTWARECANON_
call fcn.0041a290
cmp eax, 1
jne 0x41a9e0
push edi
push SysReAllocStringLen
call ebx
mov byte [esp + 0x1f50], 0xb
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41aa08
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1f50], 8
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41aa30
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x60]
mov esi, dword [sym.imp.WINSPOOL.DRV_EnumPrinterDriversW]
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x34]
push edx
push 0
push 0
push 3
push 0
push 0
call esi
test eax, eax
jne 0x41ab52
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
je 0x41ab52
push 1
push str.return___08x
push 2
lea eax, [esp + 0x28]
push eax
call fcn.0044cd10
mov byte [esp + 0x1f60], 7
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
add esp, 0x10
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41aaa5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1f50], 6
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41aacd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1f50], 5
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41aaf5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1f50], 4
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41ab1d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1f50], 1
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41ab45
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1f50], 0
jmp 0x41a599
mov ecx, dword [esp + 0x30]
push ecx
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ebx, eax
mov dword [esp + 0x50], ebx
test ebx, ebx
jne 0x41ab7c
push 1
push str.return___08x
push 2
lea edx, [esp + 0x28]
push edx
jmp 0x41aa75
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x34]
push edx
push eax
push ebx
push 3
push 0
push 0
call esi
test eax, eax
je 0x41abd7
cmp dword [esp + 0x34], 0
mov dword [esp + 0x14], 0
jbe 0x41abd7
lea esi, [ebx + 4]
lea ebx, [ebx]
mov edx, dword [esi]
lea ecx, [esp + 0x494]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x41abd7
mov eax, dword [esp + 0x14]
inc eax
add esi, 0x28
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x34]
jb 0x41abb0
mov eax, dword [esp + 0x14]
lea eax, [eax + eax*4]
mov ecx, dword [ebx + eax*8 + 4]
lea esi, [ebx + eax*8]
push edi
push ecx
call fcn.00419ae0
add esp, 8
test eax, eax
jne 0x41af5a
lea edx, [esp + 0x28c]
mov ecx, esi
call fcn.00419e80
push 0x206
mov dword [esp + 0x50], eax
xor ebx, ebx
lea eax, [esp + 0x8a]
xor edx, edx
push ebx
push eax
mov word [esp + 0x90], dx
call fcn.0055ca80
add esp, 0xc
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov edi, dword [esp + 0x28]
mov byte [esp + 0x1f50], 0xd
cmp dword [edi + 0x8bc], ebx
je 0x41ad26
call fcn.00413710
mov ecx, str.SPOOLER
call fcn.00413910
test byte [0x60aea0], 1
jne 0x41ac90
or dword [0x60aea0], 1
mov byte [esp + 0x1f50], 0xe
call fcn.00458180
push 0x58b2e0
call fcn.005597b9
add esp, 4
mov byte [esp + 0x1f50], 0xd
mov ebx, 6
cmp dword [0x60ac84], ebx
jne 0x41acaf
cmp dword [0x60ac88], 1
jne 0x41acaf
cmp byte [0x60ad9a], 1
je 0x41acf7
call fcn.004588b0
cmp dword [eax + 0x1c], ebx
jne 0x41acc8
cmp dword [eax + 0x20], 1
jne 0x41acc8
cmp byte [eax + 0x132], 1
jne 0x41acf7
call fcn.004588b0
cmp dword [eax + 0x1c], ebx
jne 0x41ace1
cmp dword [eax + 0x20], 2
jb 0x41ace1
cmp byte [eax + 0x132], 1
je 0x41acf7
call fcn.004588b0
call fcn.00418920
test eax, eax
jne 0x41acf7
mov dword [edi + 0x8bc], eax
jmp 0x41ad01
mov dword [edi + 0x8bc], 1
mov edx, dword [esi + 4]
push 0
lea ecx, [esp + 0x88]
push 0
push ecx
lea ecx, [esp + 0x80]
call fcn.00421520
mov ebx, dword [esp + 0x80]
add esp, 0xc
call fcn.00423660
sub eax, 0
je 0x41ad3a
sub eax, 2
mov edi, 5
je 0x41ad3c
mov edi, dword [esi]
mov edx, dword [esp + 0x54]
push str.CAPT
push edx
call fcn.00404f40
add esp, 8
test al, al
je 0x41ad6c
mov eax, dword [esp + 0x28]
cmp dword [eax + 0x668], 0
je 0x41ad6c
call fcn.00425750
test eax, eax
jne 0x41ad6c
mov dword [esp + 0x6c], eax
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0x634]
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x40]
push edx
push eax
push edi
lea edx, [esp + 0xec8]
call fcn.004287b0
add esp, 0xc
mov edi, eax
neg edi
sbb edi, edi
inc edi
mov dword [esp + 0x68], edi
je 0x41adc6
push 0x5b69a4
lea ecx, [esp + 0x88]
push 1
push ecx
lea ecx, [esp + 0x80]
mov edx, 0x5b69a4
call fcn.00421520
mov ebx, dword [esp + 0x80]
add esp, 0xc
cmp edi, 1
jne 0x41ae40
test byte [0x60aea0], 1
jne 0x41adfc
or dword [0x60aea0], edi
mov byte [esp + 0x1f50], 0xf
call fcn.00458180
push 0x58b2e0
call fcn.005597b9
add esp, 4
mov byte [esp + 0x1f50], 0xd
test dword [0x60ac7c], 0x800
je 0x41ae22
mov ecx, dword [esp + 0x28]
mov eax, dword [esi + 4]
mov edx, dword [ecx + 0x164]
add ecx, 0x15c
push eax
push edx
call fcn.0046c98a
cmp dword [esp + 0x4c], 0
jne 0x41ae40
mov edx, dword [esi + 0x20]
lea ecx, [esp + 0x28c]
call fcn.0041b2a0
mov dword [esp + 0x5c], 1
mov eax, 1
mov dword [esp + 0x14], eax
mov dword [esp + 0x64], eax
mov byte [esp + 0x1f50], 8
test ebx, ebx
je 0x41ae6d
mov edi, dword [esp + 0x78]
mov eax, ebx
call fcn.00402240
push ebx
call fcn.00461cb5
add esp, 4
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0x130]
cmp byte [eax + 0x6c], 0
jne 0x41af5a
mov ecx, dword [esi + 4]
call fcn.00412470
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x41aecc
call fcn.00412a70
lea ecx, [esp + 0x40]
push ecx
push 0x2001f
xor ebx, ebx
push ebx
push str.SOFTWARECanonVDCSETUPVDCUser
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [esp + 0x54], ebx
call esi
test eax, eax
jne 0x41aece
mov edx, dword [esp + 0x40]
push edx
mov dword [esp + 0x18], ebx
call edi
jmp 0x41aece
xor ebx, ebx
call fcn.004163a0
test eax, eax
je 0x41af69
call fcn.00415fe0
push 0x616
lea ecx, [esp + 0x8aa]
xor eax, eax
push ebx
push ecx
mov dword [esp + 0x30], ebx
mov word [esp + 0x8b0], ax
call fcn.0055ca80
add esp, 0xc
push str.DIASUser
push str.SOFTWARECanonDIASSETUP
lea edx, [esp + 0x8ac]
push str._s_s
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea eax, [esp + 0x24]
push eax
push 0x2001f
push ebx
lea ecx, [esp + 0x8b0]
push ecx
push reloc.OLEAUT32.dll_SysReAllocString
call esi
test eax, eax
jne 0x41af69
mov edx, dword [esp + 0x24]
push edx
mov dword [esp + 0x74], ebx
call edi
mov dword [esp + 0x24], ebx
call fcn.00425310
mov edi, eax
jmp 0x41af77
cmp dword [esp + 0x64], 0
mov dword [esp + 0x14], 1
je 0x41af72
call fcn.00425310
mov edi, eax
jmp 0x41af77
mov edi, 1
mov eax, dword [esp + 0x50]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
cmp dword [esp + 0x5c], 0
je 0x41af98
call fcn.00413710
mov ecx, str.SPOOLER
call fcn.00413910
mov ebx, dword [esp + 0x3c]
push ecx
add ebx, 0xfffffff0
mov dword [esp + 0x58], esp
mov esi, esp
push ebx
call fcn.00404900
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.0041d4e0
add esp, 4
cmp dword [esp + 0x58], 1
jne 0x41afdb
lea esi, [esp + 0x16dc]
call fcn.0041baa0
cmp eax, 1
jne 0x41afdb
mov ecx, esi
call fcn.0045da30
cmp dword [esp + 0x68], 0
jne 0x41b0ec
push 6
push str.return___08x
lea ecx, [esp + 0x24]
push 2
push ecx
call fcn.0044cd10
mov byte [esp + 0x1f60], 7
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
add esp, 0x10
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41b024
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1f50], 6
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b04c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1f50], 5
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b074
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1f50], 4
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b09c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1f50], 1
lea ecx, [ebx + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b0bd
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebx
call edx
lea ecx, [esp + 0x13]
mov byte [esp + 0x1f50], 0
call fcn.004078f0
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1f50], 0xffffffff
call fcn.0044cc70
mov eax, 6
jmp 0x41b27c
cmp dword [esp + 0x14], 0
je 0x41b17b
cmp dword [esp + 0x70], 0
je 0x41b17b
test edi, edi
je 0x41b17b
cmp dword [esp + 0x6c], 0
je 0x41b17b
mov esi, dword [esp + 0x48]
push esi
push str.return___08x
lea eax, [esp + 0x24]
push 2
push eax
call fcn.0044cd10
add esp, 0x10
lea ecx, [esp + 0x44]
call fcn.004037a0
lea ecx, [esp + 0x38]
call fcn.004037a0
lea ecx, [esp + 0x2c]
call fcn.004037a0
lea ecx, [esp + 0x18]
call fcn.004037a0
lea ecx, [esp + 0x3c]
call fcn.004037a0
lea ecx, [esp + 0x13]
mov byte [esp + 0x1f50], 0
call fcn.004078f0
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1f50], 0xffffffff
call fcn.0044cc70
mov eax, esi
jmp 0x41b27c
push 5
push str.return___08x
lea ecx, [esp + 0x24]
push 2
push ecx
call fcn.0044cd10
mov byte [esp + 0x1f60], 7
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
add esp, 0x10
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41b1b9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1f50], 6
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b1e1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1f50], 5
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b209
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1f50], 4
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b231
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1f50], 1
lea ecx, [ebx + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41b252
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebx
call edx
lea ecx, [esp + 0x13]
mov byte [esp + 0x1f50], 0
call fcn.004078f0
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1f50], 0xffffffff
call fcn.0044cc70
mov eax, 5
mov ecx, dword [esp + 0x1f48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1f30]
xor ecx, esp
call fcn.0055649d
mov esp, ebp
pop ebp
ret