Function at 0x566c10
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x57a225
mov eax, dword fs:[0]
push eax
sub esp, 0x18
push ebx
push esi
push edi
mov eax, dword [0x5d52e0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
call fcn.0040c84f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x566c52
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x1c], esi
mov dword [ebp - 4], 0
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, 0x104
or eax, ecx
jge 0x566c8c
push 0x104
lea ecx, [ebp - 0x1c]
call fcn.004019b0
mov esi, dword [ebp - 0x1c]
push 0x104
push esi
push str._APPDATA_CanonIJ_Scan_Utility
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
mov eax, dword [esi - 8]
push eax
push esi
call fcn.004ff818
add esp, 8
test eax, eax
js 0x5670fd
cmp eax, dword [esi - 8]
jg 0x5670fd
xor ecx, ecx
mov dword [esi - 0xc], eax
push ecx
mov word [esi + eax*2], cx
lea eax, [esi - 0x10]
mov dword [ebp - 0x24], esp
mov edi, esp
push eax
mov dword [ebp - 0x24], eax
call fcn.00401a10
add eax, 0x10
add esp, 4
mov dword [edi], eax
call fcn.0052bad0
add esp, 4
xor eax, eax
cmp dword [ebp + 8], 0x9fbf1
jne 0x566cf6
mov eax, 1
mov edx, dword [0x5dd53c]
test edx, edx
je 0x566d15
mov ecx, dword [esi - 0xc]
mov eax, dword [eax*4 + 0x5dd9a0]
inc ecx
push ecx
push esi
push 0x20007
push eax
call edx
call fcn.0040c84f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x566d2f
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x18], esi
mov byte [ebp - 4], 1
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, 0x104
or eax, ecx
jge 0x566d66
push 0x104
lea ecx, [ebp - 0x18]
call fcn.004019b0
mov esi, dword [ebp - 0x18]
call fcn.0040da38
mov eax, dword [eax + 8]
push 0x104
push esi
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov eax, dword [esi - 8]
push eax
push esi
call fcn.004ff818
add esp, 8
test eax, eax
js 0x5670fd
cmp eax, dword [esi - 8]
jg 0x5670fd
mov dword [esi - 0xc], eax
xor ecx, ecx
mov word [esi + eax*2], cx
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, 0x104
or eax, ecx
jge 0x566dc6
push 0x104
lea ecx, [ebp - 0x18]
call fcn.004019b0
mov esi, dword [ebp - 0x18]
mov ebx, dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push esi
call ebx
mov eax, dword [esi - 8]
push eax
push esi
call fcn.004ff818
add esp, 8
test eax, eax
js 0x5670fd
cmp eax, dword [esi - 8]
jg 0x5670fd
mov dword [esi - 0xc], eax
xor edx, edx
mov word [esi + eax*2], dx
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, 0x104
or eax, ecx
jge 0x566e1a
push 0x104
lea ecx, [ebp - 0x18]
call fcn.004019b0
mov esi, dword [ebp - 0x18]
push str.SUALMLIB.dll
push esi
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
mov eax, dword [esi - 8]
push eax
push esi
call fcn.004ff818
add esp, 8
test eax, eax
js 0x5670fd
cmp eax, dword [esi - 8]
jg 0x5670fd
xor ecx, ecx
mov dword [esi - 0xc], eax
mov word [esi + eax*2], cx
xor eax, eax
cmp dword [ebp + 8], 0x9fbf1
jne 0x566e5b
lea eax, [ecx + 1]
mov edx, dword [0x5dd53c]
test edx, edx
je 0x566e7a
mov ecx, dword [esi - 0xc]
mov eax, dword [eax*4 + 0x5dd9a0]
inc ecx
push ecx
push esi
push 0x2000e
push eax
call edx
call fcn.0040c84f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x566e94
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x10], eax
mov esi, dword [ebp + 8]
push 4
push esi
lea ecx, [ebp - 0x10]
push 0
push ecx
xor ecx, ecx
mov byte [ebp - 4], 2
call fcn.00532b80
mov edi, dword [ebp - 0x10]
mov eax, dword [edi - 8]
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, 0x104
add esp, 0x10
or eax, ecx
jge 0x566ee4
push 0x104
lea ecx, [ebp - 0x10]
call fcn.004019b0
mov edi, dword [ebp - 0x10]
push edi
call ebx
mov eax, dword [edi - 8]
push eax
push edi
call fcn.004ff818
add esp, 8
test eax, eax
js 0x5670fd
cmp eax, dword [edi - 8]
jg 0x5670fd
xor edx, edx
mov dword [edi - 0xc], eax
mov word [edi + eax*2], dx
cmp dword [edi - 0xc], edx
jne 0x566fc5
mov eax, dword [edi - 8]
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, 0x104
or eax, ecx
jge 0x566f3b
push 0x104
lea ecx, [ebp - 0x10]
call fcn.004019b0
mov edi, dword [ebp - 0x10]
call fcn.0040da38
mov eax, dword [eax + 8]
push 0x104
push edi
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov eax, dword [edi - 8]
push eax
push edi
call fcn.004ff818
add esp, 8
test eax, eax
js 0x5670fd
cmp eax, dword [edi - 8]
jg 0x5670fd
mov dword [edi - 0xc], eax
xor ecx, ecx
mov word [edi + eax*2], cx
mov eax, dword [edi - 8]
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, 0x104
or eax, ecx
jge 0x566f9b
push 0x104
lea ecx, [ebp - 0x10]
call fcn.004019b0
mov edi, dword [ebp - 0x10]
push edi
call ebx
mov eax, dword [edi - 8]
push eax
push edi
call fcn.004ff818
add esp, 8
test eax, eax
js 0x5670fd
cmp eax, dword [edi - 8]
jg 0x5670fd
xor edx, edx
mov dword [edi - 0xc], eax
mov word [edi + eax*2], dx
mov eax, dword [edi - 0xc]
test eax, eax
je 0x566ff7
xor ecx, ecx
cmp esi, 0x9fbf1
jne 0x566fdb
mov ecx, 1
mov edx, dword [0x5dd53c]
test edx, edx
je 0x566ff7
inc eax
push eax
mov eax, dword [ecx*4 + 0x5dd9a0]
push edi
push 0x20002
push eax
call edx
push 0
xor ecx, ecx
mov edx, str.cocr.dll
call fcn.0052e130
add esp, 4
test al, al
je 0x567107
xor eax, eax
cmp esi, 0x9fbf1
jne 0x56701f
mov eax, 1
mov ecx, dword [0x5dd534]
test ecx, ecx
je 0x56703d
mov edx, dword [eax*4 + 0x5dd9a0]
push 0x12b6
push 0x1000c
push edx
call ecx
lea eax, [edi - 0x10]
push eax
call fcn.00401a10
lea esi, [eax + 0x10]
add esp, 4
mov dword [ebp - 0x14], esi
mov byte [ebp - 4], 3
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, 0x104
or eax, ecx
jge 0x567077
push 0x104
lea ecx, [ebp - 0x14]
call fcn.004019b0
mov esi, dword [ebp - 0x14]
push str.cocr.dll
push esi
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
mov eax, dword [esi - 8]
push eax
push esi
call fcn.004ff818
add esp, 8
test eax, eax
js 0x5670fd
cmp eax, dword [esi - 8]
jg 0x5670fd
lea edx, [ebp - 0x14]
xor ecx, ecx
mov dword [esi - 0xc], eax
push edx
mov word [esi + eax*2], cx
call fcn.0052de30
add esp, 4
xor ecx, ecx
cmp dword [ebp + 8], 0x9fbf1
jne 0x5670be
mov ecx, 1
mov edx, dword [0x5dd534]
test edx, edx
je 0x5670d8
push eax
mov eax, dword [ecx*4 + 0x5dd9a0]
push 0x10011
push eax
call edx
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56715e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x56715e
push 0x80070057
call fcn.004010a0
xor eax, eax
cmp esi, 0x9fbf1
jne 0x567116
mov eax, 1
mov ecx, dword [0x5dd534]
test ecx, ecx
je 0x56713a
mov edx, dword [eax*4 + 0x5dd9a0]
push 0x12b7
push 0x1000c
push edx
call ecx
mov ecx, dword [0x5dd534]
xor eax, eax
cmp esi, 0x9fbf1
jne 0x567149
mov eax, 1
test ecx, ecx
je 0x56715e
mov eax, dword [eax*4 + 0x5dd9a0]
push 0
push 0x10011
push eax
call ecx
push str.basicJ.ocr
mov ecx, str.rdd20.dll
mov edx, str.cnpajaoc.dll
call fcn.0052e130
mov ebx, dword [ebp + 8]
add esp, 4
test al, al
je 0x567274
xor eax, eax
cmp ebx, 0x9fbf1
jne 0x56718f
mov eax, 1
mov ecx, dword [0x5dd534]
test ecx, ecx
je 0x5671ad
mov edx, dword [eax*4 + 0x5dd9a0]
push 0x12b6
push 0x1000b
push edx
call ecx
lea eax, [edi - 0x10]
push eax
call fcn.00401a10
lea esi, [eax + 0x10]
add esp, 4
mov dword [ebp - 0x14], esi
mov byte [ebp - 4], 4
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, 0x104
or eax, ecx
jge 0x5671e7
push 0x104
lea ecx, [ebp - 0x14]
call fcn.004019b0
mov esi, dword [ebp - 0x14]
push str.cnpajaoc.dll
push esi
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
mov eax, dword [esi - 8]
push eax
push esi
call fcn.004ff818
add esp, 8
test eax, eax
js 0x5670fd
cmp eax, dword [esi - 8]
jg 0x5670fd
lea edx, [ebp - 0x14]
xor ecx, ecx
mov dword [esi - 0xc], eax
push edx
mov word [esi + eax*2], cx
call fcn.0052de30
add esp, 4
xor ecx, ecx
cmp ebx, 0x9fbf1
jne 0x567235
mov ecx, 1
mov edx, dword [0x5dd534]
test edx, edx
je 0x56724f
push eax
mov eax, dword [ecx*4 + 0x5dd9a0]
push 0x10010
push eax
call edx
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5672cb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x5672cb
xor eax, eax
cmp ebx, 0x9fbf1
jne 0x567283
mov eax, 1
mov ecx, dword [0x5dd534]
test ecx, ecx
je 0x5672a7
mov edx, dword [eax*4 + 0x5dd9a0]
push 0x12b7
push 0x1000b
push edx
call ecx
mov ecx, dword [0x5dd534]
xor eax, eax
cmp ebx, 0x9fbf1
jne 0x5672b6
mov eax, 1
test ecx, ecx
je 0x5672cb
mov eax, dword [eax*4 + 0x5dd9a0]
push 0
push 0x10010
push eax
call ecx
push str.basiccn.ocr
mov ecx, str.rdd20cn.dll
mov edx, str.cnpacnoc.dll
call fcn.0052e130
add esp, 4
test al, al
je 0x5673de
xor eax, eax
cmp ebx, 0x9fbf1
jne 0x5672f9
mov eax, 1
mov ecx, dword [0x5dd534]
test ecx, ecx
je 0x567317
mov edx, dword [eax*4 + 0x5dd9a0]
push 0x12b6
push 0x1000d
push edx
call ecx
lea eax, [edi - 0x10]
push eax
call fcn.00401a10
lea esi, [eax + 0x10]
add esp, 4
mov dword [ebp - 0x14], esi
mov byte [ebp - 4], 5
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, 0x104
or eax, ecx
jge 0x567351
push 0x104
lea ecx, [ebp - 0x14]
call fcn.004019b0
mov esi, dword [ebp - 0x14]
push str.cnpacnoc.dll
push esi
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
mov eax, dword [esi - 8]
push eax
push esi
call fcn.004ff818
add esp, 8
test eax, eax
js 0x5670fd
cmp eax, dword [esi - 8]
jg 0x5670fd
lea edx, [ebp - 0x14]
xor ecx, ecx
mov dword [esi - 0xc], eax
push edx
mov word [esi + eax*2], cx
call fcn.0052de30
add esp, 4
xor ecx, ecx
cmp ebx, 0x9fbf1
jne 0x56739f
mov ecx, 1
mov edx, dword [0x5dd534]
test edx, edx
je 0x5673b9
push eax
mov eax, dword [ecx*4 + 0x5dd9a0]
push 0x10012
push eax
call edx
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x567435
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x567435
xor eax, eax
cmp ebx, 0x9fbf1
jne 0x5673ed
mov eax, 1
mov ecx, dword [0x5dd534]
test ecx, ecx
je 0x567411
mov edx, dword [eax*4 + 0x5dd9a0]
push 0x12b7
push 0x1000d
push edx
call ecx
mov ecx, dword [0x5dd534]
xor eax, eax
cmp ebx, 0x9fbf1
jne 0x567420
mov eax, 1
test ecx, ecx
je 0x567435
mov eax, dword [eax*4 + 0x5dd9a0]
push 0
push 0x10012
push eax
call ecx
push str.basicct.ocr
mov ecx, str.rdd20ct.dll
mov edx, str.cnpactoc.dll
call fcn.0052e130
add esp, 4
test al, al
je 0x567548
xor eax, eax
cmp ebx, 0x9fbf1
jne 0x567463
mov eax, 1
mov ecx, dword [0x5dd534]
test ecx, ecx
je 0x567481
mov edx, dword [eax*4 + 0x5dd9a0]
push 0x12b6
push 0x1000e
push edx
call ecx
lea eax, [edi - 0x10]
push eax
call fcn.00401a10
lea esi, [eax + 0x10]
add esp, 4
mov dword [ebp - 0x14], esi
mov byte [ebp - 4], 6
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, 0x104
or eax, ecx
jge 0x5674bb
push 0x104
lea ecx, [ebp - 0x14]
call fcn.004019b0
mov esi, dword [ebp - 0x14]
push str.cnpactoc.dll
push esi
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
mov eax, dword [esi - 8]
push eax
push esi
call fcn.004ff818
add esp, 8
test eax, eax
js 0x5670fd
cmp eax, dword [esi - 8]
jg 0x5670fd
lea edx, [ebp - 0x14]
xor ecx, ecx
mov dword [esi - 0xc], eax
push edx
mov word [esi + eax*2], cx
call fcn.0052de30
add esp, 4
xor ecx, ecx
cmp ebx, 0x9fbf1
jne 0x567509
mov ecx, 1
mov edx, dword [0x5dd534]
test edx, edx
je 0x567523
push eax
mov eax, dword [ecx*4 + 0x5dd9a0]
push 0x10013
push eax
call edx
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56759f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x56759f
xor eax, eax
cmp ebx, 0x9fbf1
jne 0x567557
mov eax, 1
mov ecx, dword [0x5dd534]
test ecx, ecx
je 0x56757b
mov edx, dword [eax*4 + 0x5dd9a0]
push 0x12b7
push 0x1000e
push edx
call ecx
mov ecx, dword [0x5dd534]
xor eax, eax
cmp ebx, 0x9fbf1
jne 0x56758a
mov eax, 1
test ecx, ecx
je 0x56759f
mov eax, dword [eax*4 + 0x5dd9a0]
push 0
push 0x10013
push eax
call ecx
push str.basickr.ocr
mov ecx, str.rdd20kr.dll
mov edx, str.cnpakroc.dll
call fcn.0052e130
add esp, 4
test al, al
je 0x5676b2
xor eax, eax
cmp ebx, 0x9fbf1
jne 0x5675cd
mov eax, 1
mov ecx, dword [0x5dd534]
test ecx, ecx
je 0x5675eb
mov edx, dword [eax*4 + 0x5dd9a0]
push 0x12b6
push 0x1000f
push edx
call ecx
lea eax, [edi - 0x10]
push eax
call fcn.00401a10
lea esi, [eax + 0x10]
add esp, 4
mov dword [ebp - 0x14], esi
mov byte [ebp - 4], 7
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, 0x104
or eax, ecx
jge 0x567625
push 0x104
lea ecx, [ebp - 0x14]
call fcn.004019b0
mov esi, dword [ebp - 0x14]
push str.cnpakroc.dll
push esi
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
mov eax, dword [esi - 8]
push eax
push esi
call fcn.004ff818
add esp, 8
test eax, eax
js 0x5670fd
cmp eax, dword [esi - 8]
jg 0x5670fd
lea edx, [ebp - 0x14]
xor ecx, ecx
mov dword [esi - 0xc], eax
push edx
mov word [esi + eax*2], cx
call fcn.0052de30
add esp, 4
xor ecx, ecx
cmp ebx, 0x9fbf1
jne 0x567673
mov ecx, 1
mov edx, dword [0x5dd534]
test edx, edx
je 0x56768d
push eax
mov eax, dword [ecx*4 + 0x5dd9a0]
push 0x10014
push eax
call edx
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x567709
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x567709
xor eax, eax
cmp ebx, 0x9fbf1
jne 0x5676c1
mov eax, 1
mov ecx, dword [0x5dd534]
test ecx, ecx
je 0x5676e5
mov edx, dword [eax*4 + 0x5dd9a0]
push 0x12b7
push 0x1000f
push edx
call ecx
mov ecx, dword [0x5dd534]
xor eax, eax
cmp ebx, 0x9fbf1
jne 0x5676f4
mov eax, 1
test ecx, ecx
je 0x567709
mov eax, dword [eax*4 + 0x5dd9a0]
push 0
push 0x10014
push eax
call ecx
call fcn.0052bc20
xor ecx, ecx
cmp ebx, 0x9fbf1
jne 0x56771d
mov ecx, 1
mov edx, dword [0x5dd534]
test edx, edx
je 0x567737
mov ecx, dword [ecx*4 + 0x5dd9a0]
push eax
push 0x10001
push ecx
call edx
push ebx
mov ecx, 0x23b1
lea edi, [ebp - 0x14]
call fcn.00530ca0
mov eax, dword [eax]
add esp, 4
push 0
push 0
push eax
call fcn.00500a26
mov esi, eax
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
add esp, 0xc
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x567778
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
cmp ebx, 0x9fbf1
jne 0x567787
mov eax, 1
mov ecx, dword [0x5dd534]
test ecx, ecx
je 0x5677a1
mov edx, dword [eax*4 + 0x5dd9a0]
push esi
push 0x10006
push edx
call ecx
call fcn.0052bca0
neg eax
sbb eax, eax
neg eax
add eax, 0x123e
xor ecx, ecx
cmp ebx, 0x9fbf1
jne 0x5677c0
mov ecx, 1
mov edx, dword [0x5dd534]
test edx, edx
je 0x5677da
push eax
mov eax, dword [ecx*4 + 0x5dd9a0]
push 0x10009
push eax
call edx
call fcn.0040c84f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x5677f4
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x14], eax
mov ecx, 0x5aa8ec
mov byte [ebp - 4], 8
test ecx, 0xffff0000
jne 0x56782f
mov edx, ecx
movzx esi, dx
push esi
call fcn.0040c76a
test eax, eax
je 0x56783c
push esi
push eax
lea ecx, [ebp - 0x14]
call fcn.00401440
jmp 0x56783c
push 0x5aa8ec
lea ecx, [ebp - 0x14]
call fcn.00404b30
mov bl, 9
mov byte [ebp - 4], bl
mov esi, dword [ebp - 0x14]
push 0x2e
push esi
call fcn.00500a5a
add esp, 8
test eax, eax
jne 0x567858
or eax, 0xffffffff
jmp 0x56785c
sub eax, esi
sar eax, 1
push eax
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x14]
call fcn.00406da0
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0xa
call fcn.004015b0
mov byte [ebp - 4], bl
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 0x567898
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x5aa8f8
push 0x5aa8fc
lea ecx, [ebp - 0x14]
call fcn.00402c50
xor ecx, ecx
cmp dword [ebp + 8], 0x9fbf1
jne 0x5678ba
mov ecx, 1
mov edx, dword [0x5dd53c]
mov esi, dword [ebp - 0x14]
test edx, edx
je 0x5678dc
mov eax, dword [esi - 0xc]
mov ecx, dword [ecx*4 + 0x5dd9a0]
inc eax
push eax
push esi
push 0xa000f
push ecx
call edx
lea eax, [esi - 0x10]
mov byte [ebp - 4], 2
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x5678fc
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 - 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x56791f
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 - 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x567942
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x567965
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret