Function at 0x10022720
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100cd027
mov eax, dword fs:[0]
push eax
sub esp, 0x50
mov eax, dword [0x10102f10]
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 ebx, ecx
mov esi, dword [ebp + 8]
push str.ThemeComponentIcons::Decorate
mov dword [ebp - 0x50], esi
call fcn.10015f50
mov al, byte [ebp + 0xc]
add esp, 4
or edi, 0xffffffff
mov byte [ebx + 0x4c], al
test esi, esi
je 0x10022a9a
push 0x100d85d4
lea ecx, [ebp - 0x48]
call fcn.1001d320
push 0x100d5be8
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.10026550
push 0xfde9
lea eax, [ebp - 0x48]
mov byte [ebp - 4], 1
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x44]
push esi
push eax
call fcn.10041ec0
add esp, 0x14
lea ecx, [ebx + 0x44]
mov byte [ebp - 4], 2
push eax
call fcn.10019a20
mov edx, dword [ebp - 0x44]
mov eax, edi
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100227ed
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
mov byte [ebp - 4], 0
cmp edx, 0x10
jb 0x10022825
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1002281b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1002332c
push edx
push ecx
call fcn.10064ae7
add esp, 8
mov edx, dword [ebp - 0x48]
mov eax, edi
mov dword [ebp - 0x18], 0
add edx, 0xfffffff0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov dword [ebp - 4], 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10022858
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x48]
push eax
call fcn.10032130
add esp, 4
lea esi, [ebx + 0x34]
mov dword [ebp - 4], 3
push eax
mov ecx, esi
call fcn.10019a20
mov edx, dword [ebp - 0x48]
mov eax, edi
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10022897
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebx + 0x44]
push 0x100d8e38
push esi
call fcn.1001bb30
add esp, 0xc
lea eax, [ebx + 0x34]
lea ecx, [ebx + 0xbc]
push eax
call fcn.10019a20
push 0xa
push str._files.ini
lea ecx, [ebx + 0xbc]
call fcn.100222b0
push 0x100d85d4
lea ecx, [ebp - 0x48]
call fcn.1001d320
push str.resource_url
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 4
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.10026550
mov esi, dword [ebp - 0x50]
lea eax, [ebp - 0x48]
push 0xfde9
push eax
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 5
push eax
lea eax, [ebp - 0x44]
push esi
push eax
call fcn.10041ec0
add esp, 0x14
push eax
lea ecx, [ebx + 0x38]
mov byte [ebp - 4], 6
call fcn.10019a20
mov edx, dword [ebp - 0x44]
mov eax, edi
mov byte [ebp - 4], 5
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10022948
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
mov byte [ebp - 4], 4
cmp edx, 0x10
jb 0x10022980
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10022976
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10023331
push edx
push ecx
call fcn.10064ae7
add esp, 8
mov edx, dword [ebp - 0x48]
mov eax, edi
mov dword [ebp - 0x18], 0
add edx, 0xfffffff0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov dword [ebp - 4], 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100229b3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x100d85d4
lea ecx, [ebp - 0x48]
call fcn.1001d320
push str.resource_md5
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 7
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.10026550
push 0xfde9
lea eax, [ebp - 0x48]
mov byte [ebp - 4], 8
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x50]
push esi
push eax
call fcn.10041ec0
add esp, 0x14
push eax
lea ecx, [ebx + 0x30]
mov byte [ebp - 4], 9
call fcn.10019a20
mov edx, dword [ebp - 0x50]
mov eax, edi
mov byte [ebp - 4], 8
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10022a2f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
mov byte [ebp - 4], 7
cmp edx, 0x10
jb 0x10022a67
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10022a5d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10023336
push edx
push ecx
call fcn.10064ae7
add esp, 8
mov edx, dword [ebp - 0x48]
mov eax, edi
mov dword [ebp - 0x18], 0
add edx, 0xfffffff0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov dword [ebp - 4], 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10022a9a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebx + 0x34]
lea esi, [ebx + 0x34]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x1002324d
push dword [ebx + 0xbc]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x1002324d
cmp byte [ebp + 0xc], 0
je 0x100231bf
push str.20D04FE0_3AEA_1069_A2D8_08002B30309D
lea ecx, [ebp - 0x40]
call fcn.10021910
mov dword [ebp - 4], 0xa
call fcn.100093c0
mov ecx, eax
test ecx, ecx
je 0x1002333b
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x44], eax
mov eax, str.sys_1.ico
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x44]
test eax, 0xffff0000
jne 0x10022b18
movzx eax, ax
push eax
call fcn.10009ca0
jmp 0x10022b24
push 9
push str.sys_1.ico
call fcn.1000aeb0
xor eax, eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
lea eax, [ebp - 0x44]
mov byte [ebp - 4], 0xd
push eax
push esi
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.100233b0
add esp, 0x10
lea ecx, [ebp - 0x28]
call fcn.100081c0
mov edx, dword [ebp - 0x44]
mov eax, edi
mov byte [ebp - 4], 0xa
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10022b77
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0xffffffff
call fcn.100081c0
push str.645FF040_5081_101B_9F08_00AA002F954E
lea ecx, [ebp - 0x40]
call fcn.10021910
mov dword [ebp - 4], 0xe
call fcn.100093c0
mov ecx, eax
test ecx, ecx
je 0x10023345
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x44], eax
mov eax, str.sys_2.ico
mov byte [ebp - 4], 0xf
shr eax, 0x10
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x50], eax
test eax, eax
jne 0x10022bdd
mov eax, str.sys_2.ico
movzx eax, ax
push eax
mov dword [ebp - 0x48], eax
call fcn.10009ca0
jmp 0x10022bf4
push 9
push str.sys_2.ico
call fcn.1000aeb0
mov eax, str.sys_2.ico
movzx eax, ax
mov dword [ebp - 0x48], eax
xor eax, eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
lea eax, [ebp - 0x44]
mov byte [ebp - 4], 0x11
push eax
push esi
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.100233b0
add esp, 0x10
lea ecx, [ebp - 0x28]
call fcn.100081c0
mov edx, dword [ebp - 0x44]
mov eax, edi
mov byte [ebp - 4], 0xe
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10022c4d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x48], eax
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0xffffffff
call fcn.100081c0
push str.645FF040_5081_101B_9F08_00AA002F954E
lea ecx, [ebp - 0x40]
call fcn.10021910
mov dword [ebp - 4], 0x12
call fcn.100093c0
mov ecx, eax
test ecx, ecx
je 0x1002334f
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x50], 0
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0x13
jne 0x10022ca1
push dword [ebp - 0x48]
call fcn.10009ca0
jmp 0x10022cad
push 9
push str.sys_2.ico
call fcn.1000aeb0
push str.full
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x14
call fcn.10021910
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0x15
push ecx
push esi
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.100233b0
add esp, 0x10
lea ecx, [ebp - 0x28]
call fcn.100081c0
mov edx, dword [ebp - 0x44]
mov eax, edi
mov byte [ebp - 4], 0x12
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10022cfa
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0xffffffff
call fcn.100081c0
push str.645FF040_5081_101B_9F08_00AA002F954E
lea ecx, [ebp - 0x40]
call fcn.10021910
mov dword [ebp - 4], 0x16
call fcn.100093c0
mov ecx, eax
test ecx, ecx
je 0x10023359
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x48], eax
mov eax, str.sys_3.ico
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x48]
test eax, 0xffff0000
jne 0x10022d55
movzx eax, ax
push eax
call fcn.10009ca0
jmp 0x10022d61
push 9
push str.sys_3.ico
call fcn.1000aeb0
push str.empty
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x18
call fcn.10021910
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x19
push ecx
push esi
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.100233b0
add esp, 0x10
lea ecx, [ebp - 0x28]
call fcn.100081c0
mov edx, dword [ebp - 0x48]
mov eax, edi
mov byte [ebp - 4], 0x16
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10022dae
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0xffffffff
call fcn.100081c0
push str.59031a47_3f72_44a7_89c5_5595fe6b30ee
lea ecx, [ebp - 0x40]
call fcn.10021910
mov dword [ebp - 4], 0x1a
call fcn.100093c0
mov ecx, eax
test ecx, ecx
je 0x10023363
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x48], eax
mov eax, str.sys_4.ico
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x48]
test eax, 0xffff0000
jne 0x10022e09
movzx eax, ax
push eax
call fcn.10009ca0
jmp 0x10022e15
push 9
push str.sys_4.ico
call fcn.1000aeb0
xor eax, eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
lea eax, [ebp - 0x48]
mov byte [ebp - 4], 0x1d
push eax
push esi
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.100233b0
add esp, 0x10
lea ecx, [ebp - 0x28]
call fcn.100081c0
mov edx, dword [ebp - 0x48]
mov eax, edi
mov byte [ebp - 4], 0x1a
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10022e68
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0xffffffff
call fcn.100081c0
push str.5399E694_6CE5_4D6C_8FCE_1D8870FDCBA0
lea ecx, [ebp - 0x40]
call fcn.10021910
mov dword [ebp - 4], 0x1e
call fcn.100093c0
mov ecx, eax
test ecx, ecx
je 0x1002336d
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x48], eax
mov eax, str.sys_5.ico
mov byte [ebp - 4], 0x1f
shr eax, 0x10
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x50], eax
test eax, eax
jne 0x10022ece
mov eax, str.sys_5.ico
movzx eax, ax
push eax
mov dword [ebp - 0x44], eax
call fcn.10009ca0
jmp 0x10022ee5
push 9
push str.sys_5.ico
call fcn.1000aeb0
mov eax, str.sys_5.ico
movzx eax, ax
mov dword [ebp - 0x44], eax
xor eax, eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
lea eax, [ebp - 0x48]
mov byte [ebp - 4], 0x21
push eax
push esi
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.100233b0
add esp, 0x10
lea ecx, [ebp - 0x28]
call fcn.100081c0
mov edx, dword [ebp - 0x48]
mov eax, edi
mov byte [ebp - 4], 0x1e
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10022f3e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x44], eax
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0xffffffff
call fcn.100081c0
push str.26EE0668_A00A_44D7_9371_BEB064C98683
lea ecx, [ebp - 0x40]
call fcn.10021910
mov dword [ebp - 4], 0x22
call fcn.100093c0
mov ecx, eax
test ecx, ecx
je 0x10023377
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x50], 0
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x23
jne 0x10022f92
push dword [ebp - 0x44]
call fcn.10009ca0
jmp 0x10022f9e
push 9
push str.sys_5.ico
call fcn.1000aeb0
xor eax, eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
lea eax, [ebp - 0x48]
mov byte [ebp - 4], 0x25
push eax
push esi
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.100233b0
add esp, 0x10
lea ecx, [ebp - 0x28]
call fcn.100081c0
mov edx, dword [ebp - 0x48]
mov eax, edi
mov byte [ebp - 4], 0x22
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x10022ff1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0xffffffff
call fcn.100081c0
push str.F02C1A0D_BE21_4350_88B0_7367FC96EF3C
lea ecx, [ebp - 0x40]
call fcn.10021910
mov dword [ebp - 4], 0x26
call fcn.100093c0
mov ecx, eax
test ecx, ecx
je 0x10023381
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x48], eax
mov eax, str.sys_6.ico
mov byte [ebp - 4], 0x27
lea ecx, [ebp - 0x48]
test eax, 0xffff0000
jne 0x1002304c
movzx eax, ax
push eax
call fcn.10009ca0
jmp 0x10023058
push 9
push str.sys_6.ico
call fcn.1000aeb0
xor eax, eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
lea eax, [ebp - 0x48]
mov byte [ebp - 4], 0x29
push eax
push esi
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.100233b0
add esp, 0x10
lea ecx, [ebp - 0x28]
call fcn.100081c0
mov edx, dword [ebp - 0x48]
mov byte [ebp - 4], 0x26
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x100230a9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0xffffffff
call fcn.100081c0
mov ecx, ebx
call fcn.100237e0
push 0x60
call fcn.10056980
add esp, 4
mov dword [ebp - 0x5c], eax
mov dword [ebp - 4], 0x2a
test eax, eax
je 0x100230e0
mov ecx, eax
call fcn.10019910
jmp 0x100230e2
xor eax, eax
mov esi, dword [ebx + 0xb8]
mov dword [ebp - 4], 0xffffffff
mov dword [ebx + 0xb8], eax
test esi, esi
je 0x1002310b
mov ecx, esi
call fcn.100199b0
push 0x60
push esi
call fcn.10064ae7
add esp, 8
mov ecx, dword [ebx + 0xb8]
lea eax, [ebx + 0x9c]
mov edx, ebx
neg edx
sbb edx, edx
and edx, eax
push edx
call fcn.1001a670
push 0
push 0x74
push 0x100
mov byte [ebx + 0x60], 1
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
push 0
push 0
push 0x1000
push 0x8000000
call dword [sym.imp.SHELL32.dll_SHChangeNotify]
lea esi, [ebx + 0x28]
push esi
lea ecx, [ebx + 4]
call fcn.10019a20
lea eax, [esi + 4]
push eax
lea ecx, [ebx + 8]
call fcn.10019a20
lea eax, [esi + 8]
push eax
lea ecx, [ebx + 0xc]
call fcn.10019a20
lea eax, [esi + 0xc]
push eax
lea ecx, [ebx + 0x10]
call fcn.10019a20
lea eax, [esi + 0x10]
push eax
lea ecx, [ebx + 0x14]
call fcn.10019a20
lea eax, [esi + 0x14]
push eax
lea ecx, [ebx + 0x18]
call fcn.10019a20
lea eax, [esi + 0x18]
push eax
lea ecx, [ebx + 0x1c]
call fcn.10019a20
lea eax, [esi + 0x1c]
push eax
lea ecx, [ebx + 0x20]
call fcn.10019a20
lea eax, [esi + 0x20]
push eax
lea ecx, [ebx + 0x24]
call fcn.10019a20
mov byte [ebp - 0x55], 0
lea eax, [ebp - 0x54]
mov dword [ebp - 4], 0x2b
push eax
call fcn.1003a002
lea eax, [ebp - 0x54]
mov dword [ebp - 4], 0x2c
mov dword [ebp - 0x4c], eax
lea eax, [ebp - 0x55]
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x4c]
push eax
push 0x10007660
push 0x10108254
call fcn.1003a67b
add esp, 0x10
test eax, eax
je 0x1002322c
lea eax, [ebp - 0x54]
mov dword [ebp - 4], 0x2d
push eax
call fcn.1003a03c
mov ecx, dword [0x10108250]
add esp, 4
mov dword [ebp - 4], 0xffffffff
call fcn.1002ff50
mov al, 1
jmp 0x1002330e
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 0x2e
push eax
call fcn.1003a05d
add esp, 4
mov byte [ebp - 4], 0x2c
test al, al
je 0x1002339e
jmp 0x1002338b
cmp byte [ebp + 0x10], 0
je 0x1002330c
push ecx
mov esi, esp
mov dword [ebp - 0x50], esi
mov eax, dword [ebx + 0x44]
sub eax, 0x10
push eax
call fcn.10008b90
add eax, 0x10
add esp, 4
mov dword [esi], eax
lea eax, [ebp - 0x50]
push eax
call fcn.100325c0
add esp, 8
lea ecx, [ebx + 0x2c]
mov dword [ebp - 4], 0x30
push eax
call fcn.10019a20
mov edx, dword [ebp - 0x50]
mov eax, edi
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100232ae
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x5c]
push eax
call fcn.10032130
add esp, 4
lea esi, [ebx + 0x28]
mov dword [ebp - 4], 0x31
push eax
mov ecx, esi
call fcn.10019a20
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x100232eb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebx + 0x44]
push 0x100d8e38
push esi
call fcn.1001bb30
add esp, 0xc
lea eax, [ebx + 0x2c]
mov ecx, ebx
push esi
push eax
lea eax, [ebx + 0x38]
push eax
call fcn.1001c370
xor al, al
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.10064e61
mov esp, ebp
pop ebp
ret 0xc
call fcn.100963a9
call fcn.100963a9
call fcn.100963a9
push 0x80004005
call fcn.10008920
push 0x80004005
call fcn.10008920
push 0x80004005
call fcn.10008920
push 0x80004005
call fcn.10008920
push 0x80004005
call fcn.10008920
push 0x80004005
call fcn.10008920
push 0x80004005
call fcn.10008920
push 0x80004005
call fcn.10008920
sub esp, 8
lea eax, [ebp - 0x54]
mov ecx, esp
push eax
call fcn.100080b0
call fcn.1000c770
call fcn.1003a693
int3