Function at 0x1006fe95
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push 0x8c
mov eax, 0x101777fc
call fcn.1015f08b
mov ebx, ecx
mov dword [ebp - 0x28], ebx
xor eax, eax
push eax
push 0x101b82d4
push 0x101b82b8
mov dword [ebp - 0x1c], eax
push eax
mov eax, dword [ebp + 0xc]
push dword [eax]
call sub.MSVCR100.dll___RTDynamicCast
xor edx, edx
mov edi, eax
add esp, 0x14
inc edx
mov dword [ebp - 0x40], edi
test edi, edi
je 0x1006fedc
lea eax, [edi + 4]
mov ecx, edx
lock xadd dword [eax], ecx
lea eax, [ebp - 0x40]
push eax
mov ecx, ebx
mov dword [ebp - 4], edx
call fcn.1006f99f
mov dword [ebp - 0x2c], ebx
test ebx, ebx
je 0x1006fefb
xor ecx, ecx
lea eax, [ebx + 4]
inc ecx
lock xadd dword [eax], ecx
push 0
push 0x101b8320
push 0x101b8304
push 0
push dword [edi + 8]
mov byte [ebp - 4], 2
call sub.MSVCR100.dll___RTDynamicCast
mov esi, eax
add esp, 0x14
mov dword [ebp - 0x5c], esi
test esi, esi
je 0x1006ff2b
xor ecx, ecx
lea eax, [esi + 4]
inc ecx
lock xadd dword [eax], ecx
cmp byte [esi + 0x2c8], 0
mov byte [ebp - 4], 3
je 0x1006ff47
cmp dword [esi + 0x2c4], 0
je 0x1006ff47
mov byte [ebp - 0xd], 0
jmp 0x1006ff57
push 1
push dword [ebp + 0xc]
mov ecx, ebx
mov byte [ebp - 0xd], 1
call fcn.1007d4b9
mov al, byte [edi + 0x10]
or dword [ebp - 0x48], 0xffffffff
test al, al
jne 0x10070012
xor eax, eax
mov dword [ebp - 0x3c], eax
cmp dword [ebx + 0xf4], eax
jle 0x1006ffbf
push eax
lea eax, [ebp - 0x18]
push eax
mov ecx, ebx
call fcn.1006e2f3
mov ebx, eax
mov ecx, esi
mov byte [ebp - 4], 4
call fcn.100a39e0
mov ecx, dword [ebx]
cmp dword [eax], ecx
jne 0x1006ff96
mov bl, 1
jmp 0x1006ff98
xor bl, bl
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 3
call fcn.10053649
mov eax, dword [ebp - 0x3c]
test bl, bl
mov ebx, dword [ebp - 0x28]
jne 0x1006ffbc
inc eax
mov dword [ebp - 0x3c], eax
cmp eax, dword [ebx + 0xf4]
jl 0x1006ff73
jmp 0x1006ffbf
mov dword [ebp - 0x48], eax
lea eax, [ebx + 0x144]
push eax
mov dword [ebp - 0x50], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [ebp - 0x54], 1
push dword [ebp - 0x48]
lea ecx, [ebx + 0xc4]
mov byte [ebp - 4], 5
call fcn.1006c5e8
cmp dword [eax], 3
jne 0x10070001
push dword [ebp - 0x48]
lea ecx, [ebx + 0xc4]
call fcn.1006c5e8
mov dword [eax], 4
lea eax, [ebx + 0x144]
push eax
mov byte [ebp - 4], 3
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
cmp byte [ebp - 0xd], 0
je 0x10070117
push dword [ebp - 0x2c]
lea eax, [ebp - 0x18]
push eax
call fcn.1007b76c
lea ecx, [esi + 0x2d4]
push eax
mov byte [ebp - 4], 6
call fcn.1014b6df
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 3
call fcn.10053649
push ebx
lea eax, [ebp - 0x18]
push eax
call fcn.1007b76c
lea ecx, [esi + 0x2d8]
push eax
mov byte [ebp - 4], 7
call fcn.1014b6df
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 3
call fcn.10053649
push 1
lea ecx, [esi + 0x2e4]
call fcn.1014b6df
push 1
lea ecx, [esi + 0x308]
call fcn.1014b6df
mov dword [ebp - 0x18], ebx
test ebx, ebx
je 0x10070095
xor ecx, ecx
lea eax, [ebx + 4]
inc ecx
lock xadd dword [eax], ecx
push ebx
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 8
call fcn.1008390e
push eax
lea ecx, [esi + 0x348]
mov byte [ebp - 4], 9
call fcn.1014b6df
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 8
call fcn.1007dd02
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 3
call fcn.10053649
push 0x18
call fcn.1014b6df
pop ecx
test eax, eax
je 0x100700e5
mov ecx, eax
call fcn.100699cb
jmp 0x100700e7
xor eax, eax
mov dword [ebp - 0x20], eax
test eax, eax
je 0x100700f8
xor ecx, ecx
add eax, 4
inc ecx
lock xadd dword [eax], ecx
lea eax, [ebp - 0x20]
lea ecx, [esi + 0x3a4]
push eax
mov byte [ebp - 4], 0xa
call fcn.1014b6df
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 3
call fcn.10053649
mov al, byte [edi + 0x10]
test al, al
je 0x10070132
mov ecx, dword [ebx + 0x100]
lea eax, [ebp - 0x74]
push eax
call fcn.1014b6df
xor edx, edx
inc edx
jmp 0x1007014c
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x10070146
xor ecx, ecx
add eax, 4
inc ecx
lock xadd dword [eax], ecx
push 2
lea eax, [ebp - 0x20]
pop edx
mov eax, dword [eax]
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x10070162
xor ecx, ecx
add eax, 4
inc ecx
lock xadd dword [eax], ecx
mov dword [ebp - 4], 0xc
test dl, 2
je 0x1007017f
and edx, 0xfffffffd
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x1c], edx
call fcn.10053649
mov edx, dword [ebp - 0x1c]
mov byte [ebp - 4], 0xd
test dl, 1
je 0x10070196
and edx, 0xfffffffe
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x1c], edx
call fcn.10053649
mov ecx, dword [ebp - 0x2c]
lea eax, [ebp - 0x18]
push eax
call fcn.10074eb5
mov ecx, dword [ebp - 0x2c]
push 0
push eax
mov byte [ebp - 4], 0xe
call fcn.10078c70
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0xd
call fcn.10053649
cmp byte [ebx + 0xfc], 0
je 0x100701f2
push ebx
lea eax, [ebp + 0xc]
push eax
call fcn.1007b76c
push eax
add edi, 0xc
push edi
push dword [ebp + 8]
mov byte [ebp - 4], 0xf
call fcn.1007b6dd
mov ecx, dword [ebp - 0x1c]
or ecx, 4
mov dword [ebp - 0x1c], ecx
lea ecx, [ebp + 0xc]
jmp 0x10070e99
and dword [ebp - 0x30], 0
lea eax, [ebp - 0x24]
push eax
mov ecx, esi
call fcn.1014b6df
lea ecx, [ebp - 0x44]
push ecx
mov ecx, dword [eax]
mov byte [ebp - 4], 0x10
call fcn.10074eb5
mov ecx, dword [eax]
mov byte [ebp - 4], 0x11
call fcn.1008c612
mov eax, dword [eax]
cmp dword [eax + 0x10], 0
setg bl
jmp 0x1007037e
lea eax, [ebp - 0x4c]
push eax
mov ecx, esi
call fcn.1014b6df
lea ecx, [ebp - 0x18]
push ecx
mov ecx, dword [eax]
mov byte [ebp - 4], 0x12
call fcn.10074eb5
mov ecx, dword [eax]
mov byte [ebp - 4], 0x13
call fcn.1008c612
mov ecx, dword [eax]
push dword [ebp - 0x30]
add ecx, 8
call fcn.10064ad1
mov ebx, dword [eax]
mov dword [ebp - 0x20], ebx
test ebx, ebx
je 0x1007026e
xor ecx, ecx
lea eax, [ebx + 4]
inc ecx
lock xadd dword [eax], ecx
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x15
call fcn.10053649
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x16
call fcn.10053649
mov ecx, ebx
call fcn.10085c73
test al, al
jne 0x1007033e
lea eax, [ebp - 0x34]
push eax
mov ecx, ebx
call fcn.1014b6df
push dword [0x101c4d34]
mov ecx, eax
call fcn.1014b6df
lea ecx, [ebp - 0x34]
mov byte [ebp - 0xd], al
call fcn.10053649
cmp byte [ebp - 0xd], 0
je 0x10070321
and dword [ebp - 0x14], 0
mov ecx, ebx
call fcn.1008c612
mov eax, dword [eax]
cmp dword [eax + 0x10], 0
jle 0x1007033e
mov edi, dword [ebp - 0x14]
mov ecx, ebx
call fcn.1008c612
mov ecx, dword [eax]
push edi
add ecx, 8
call fcn.10064ad1
mov ecx, dword [eax]
call fcn.10085c73
test al, al
jne 0x1007030d
mov ecx, ebx
call fcn.1008c612
mov ecx, dword [eax]
push edi
add ecx, 8
call fcn.10064ad1
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.1006fcff
mov ecx, ebx
inc edi
call fcn.1008c612
mov eax, dword [eax]
cmp edi, dword [eax + 0x10]
jl 0x100702d4
mov edi, dword [ebp - 0x40]
jmp 0x1007033e
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.1006fcff
mov eax, dword [ebp - 0x28]
cmp byte [eax + 0xfc], 0
jne 0x10070439
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0xd
call fcn.10053649
mov ebx, dword [ebp - 0x30]
lea eax, [ebp - 0x24]
inc ebx
push eax
mov ecx, esi
mov dword [ebp - 0x30], ebx
call fcn.1014b6df
lea ecx, [ebp - 0x44]
push ecx
mov ecx, dword [eax]
mov byte [ebp - 4], 0x10
call fcn.10074eb5
mov ecx, dword [eax]
mov byte [ebp - 4], 0x11
call fcn.1008c612
mov eax, dword [eax]
cmp ebx, dword [eax + 0x10]
setl bl
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0x10
call fcn.10053649
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0xd
call fcn.10053649
test bl, bl
jne 0x10070229
lea eax, [ebp - 0x3c]
push eax
push ecx
mov eax, esp
mov byte [esi + 0x3a8], bl
mov dword [eax], esi
xor eax, eax
mov dword [ebp - 0x50], esp
lea ecx, [esi + 4]
inc eax
lock xadd dword [ecx], eax
mov ebx, dword [ebp - 0x28]
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x14]
push eax
mov ecx, ebx
call fcn.10070f76
lea ecx, [ebp - 0x14]
call fcn.10053649
cmp byte [esi + 0x2c8], 0
je 0x10070471
mov ecx, esi
call fcn.100a34ca
test al, al
jne 0x10070471
push ebx
lea eax, [ebp - 0x14]
push eax
call fcn.1007b76c
mov esi, eax
push ebx
lea eax, [ebp + 0xc]
push eax
mov byte [ebp - 4], 0x18
call fcn.1007b76c
push esi
push eax
add edi, 0xc
push edi
push dword [ebp + 8]
mov byte [ebp - 4], 0x19
call fcn.1007b723
mov ecx, dword [ebp - 0x1c]
or ecx, 4
mov dword [ebp - 0x1c], ecx
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 0x18
call fcn.10053649
lea ecx, [ebp - 0x14]
jmp 0x10070e99
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.1007b76c
push eax
add edi, 0xc
push edi
push dword [ebp + 8]
mov byte [ebp - 4], 0x17
call fcn.1007b6dd
mov ecx, dword [ebp - 0x1c]
or ecx, 4
mov dword [ebp - 0x1c], ecx
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 0x16
call fcn.10053649
lea ecx, [ebp - 0x20]
jmp 0x10070e99
mov byte [esi + 0x3a8], 1
mov al, byte [edi + 0x18]
test al, al
je 0x10070526
push 0x2018
call fcn.1014b6df
pop ecx
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0x1a
test eax, eax
je 0x100704c8
lea eax, [ebp - 0x34]
push 0x136
push eax
call fcn.1014b6df
pop ecx
pop ecx
mov ecx, dword [ebp - 0x1c]
or ecx, 8
mov dword [ebp - 0x1c], ecx
mov ecx, dword [eax]
mov byte [ebp - 4], 0x1b
call fcn.100b7787
mov ecx, dword [ebp - 0x14]
push eax
call fcn.1014b6df
jmp 0x100704ca
xor eax, eax
mov dword [ebp + 0xc], eax
test eax, eax
je 0x100704db
xor ecx, ecx
add eax, 4
inc ecx
lock xadd dword [eax], ecx
lea eax, [ebp + 0xc]
push eax
push 0x10008828
push 0xa3a
push 0x10007ec4
mov dword [ebp - 4], 0x1d
call fcn.1014b6df
jmp 0x100704fc
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 0x1c
call fcn.10053649
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 4], 0xd
test al, 8
je 0x10070534
and eax, 0xfffffff7
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x1c], eax
call fcn.10053649
jmp 0x10070534
push dword [ebp + 0xc]
mov ecx, ebx
call fcn.10077690
mov byte [edi + 0x18], 1
push ebx
lea eax, [ebp - 0x38]
push eax
call fcn.1007b76c
push ebx
lea eax, [ebp - 0x68]
push eax
mov byte [ebp - 4], 0x1e
call fcn.1007b76c
lea eax, [ebp + 0xc]
push eax
mov ecx, esi
mov byte [ebp - 4], 0x1f
call fcn.10074f58
mov ecx, dword [ebp - 0x38]
push eax
mov byte [ebp - 4], 0x20
call fcn.1014b6df
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 0x1f
call fcn.10053649
push 0
push ecx
lea eax, [esi + 0x2d8]
mov dword [ebp + 0xc], esp
mov ecx, esp
push eax
call fcn.1014b6df
call fcn.10081939
mov ecx, dword [ebp - 0x38]
lea eax, [esi + 0x2d8]
push eax
call fcn.10081841
lea eax, [esi + 0x2d4]
push eax
lea eax, [esi + 0x300]
push eax
mov eax, dword [ebp - 0x68]
push ecx
mov ecx, esp
mov dword [ecx], eax
mov eax, dword [ebp - 0x68]
mov dword [ebp + 0xc], esp
test eax, eax
je 0x100705c6
xor ecx, ecx
add eax, 4
inc ecx
lock xadd dword [eax], ecx
call fcn.10070edd
mov ecx, dword [ebp - 0x38]
lea eax, [ebp - 0x68]
push eax
call fcn.1014b6df
mov ecx, dword [ebp - 0x2c]
lea eax, [ebp + 0xc]
push eax
call fcn.10074f58
lea ecx, [esi + 0x2d8]
push ecx
mov ecx, dword [eax]
mov byte [ebp - 4], 0x21
call fcn.1014b6df
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 0x1f
call fcn.10053649
push ecx
mov eax, esp
mov dword [eax], esi
xor eax, eax
mov dword [ebp + 0xc], esp
inc eax
lea ecx, [esi + 4]
lock xadd dword [ecx], eax
push ecx
mov ecx, dword [ebp - 0x2c]
mov eax, esp
mov dword [ebp - 0x50], esp
push eax
mov byte [ebp - 4], 0x22
call fcn.10074f58
lea eax, [ebp - 0x2c]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x1f
call fcn.1006fda0
push 0
push ecx
mov ecx, dword [ebp - 0x2c]
mov eax, esp
mov dword [ebp + 0xc], esp
push eax
call fcn.10074f58
call fcn.10081939
push ebx
lea eax, [ebp - 0x58]
push eax
call fcn.1007b76c
lea eax, [esi + 0x2d4]
push eax
lea eax, [esi + 0x2dc]
push eax
mov eax, dword [ebp - 0x58]
push ecx
mov ecx, esp
mov dword [ecx], eax
mov eax, dword [ebp - 0x58]
mov byte [ebp - 4], 0x23
mov dword [ebp + 0xc], esp
test eax, eax
je 0x10070683
xor ecx, ecx
add eax, 4
inc ecx
lock xadd dword [eax], ecx
call fcn.10070edd
mov al, byte [edi + 0x10]
xor cl, cl
mov byte [ebp + 0xf], cl
test al, al
jne 0x10070e43
mov ecx, esi
call fcn.100a39e0
push ecx
mov dword [ebp - 0x50], esp
mov ecx, esp
push eax
call fcn.1014b6df
mov ecx, ebx
call fcn.1006e22f
cmp dword [ebx + 0xc], 2
lea ecx, [eax - 1]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x20], ecx
jne 0x100706f3
cmp eax, 1
jne 0x100706f3
push dword [0x101c4d30]
lea eax, [ebp - 0x24]
push eax
mov ecx, ebx
call fcn.1007b110
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x10], 0
jle 0x100706e8
and dword [ebp - 0x30], 0
and dword [ebp - 0x20], 0
lea ecx, [ebp - 0x24]
call fcn.10053649
mov eax, dword [ebp - 0x30]
test eax, eax
js 0x1007070e
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x40]
push eax
mov ecx, ebx
mov byte [ebp + 0xf], 1
call fcn.10071079
mov ecx, dword [edi + 0x14]
mov byte [ebp - 0xd], 0
call fcn.100a10b9
test al, al
jne 0x10070dad
lea eax, [esi + 0x2d8]
mov ecx, dword [eax]
call fcn.10080d71
mov ecx, dword [ebp - 0x30]
neg al
sbb al, al
inc al
movzx eax, al
push eax
push ecx
lea eax, [ebp - 0x14]
push 0x20e
push eax
test ecx, ecx
js 0x100709ff
call fcn.1014b6df
add esp, 0x10
lea ecx, [ebp - 0x14]
call fcn.10053649
mov ecx, dword [ebp - 0x38]
call fcn.10080d71
test al, al
jne 0x100709ea
lea eax, [ebx + 0x144]
push eax
mov dword [ebp - 0x50], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [ebp - 0x54], 1
push dword [ebp - 0x48]
lea ecx, [ebx + 0xdc]
mov byte [ebp - 4], 0x24
call fcn.1006c85b
cmp dword [eax], 0
je 0x100707c9
and dword [ebp - 0x24], 0
push dword [ebp - 0x48]
lea ecx, [ebx + 0xdc]
mov byte [ebp - 4], 0x25
call fcn.1006c85b
lea ecx, [ebp - 0x24]
push ecx
mov ecx, eax
call fcn.1014b6df
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x24
call fcn.10053649
lea eax, [ebx + 0x144]
push eax
mov byte [ebp - 4], 0x23
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
mov ecx, dword [ebp - 0x2c]
lea eax, [ebp - 0x34]
push eax
call fcn.10074f58
lea ecx, [ebp - 0x14]
push ecx
mov ecx, dword [eax]
mov byte [ebp - 4], 0x26
call fcn.10081687
push eax
mov ecx, esi
mov byte [ebp - 4], 0x27
call fcn.1014b6df
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x26
call fcn.10053649
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x23
call fcn.10053649
and dword [ebp - 0x24], 0
mov eax, dword [ebp - 0x20]
mov byte [ebp - 4], 0x28
cmp dword [ebp - 0x30], eax
jne 0x10070832
test byte [ebx + 0x244], 0x10
jne 0x1007083e
lea eax, [ebp - 0x5c]
push eax
lea ecx, [ebp - 0x24]
call fcn.1014b6df
lea eax, [ebp - 0x14]
push eax
mov ecx, esi
call fcn.100750ee
push 0
lea ecx, [ebp - 0x24]
push ecx
push dword [ebp - 0x20]
mov ecx, esi
push eax
mov byte [ebp - 4], 0x29
call fcn.100a2f3c
push eax
mov ecx, esi
call fcn.100a2fef
push eax
mov ecx, esi
call fcn.100a2f52
push eax
lea eax, [ebp - 0x38]
push eax
push dword [ebp - 0x30]
mov ecx, ebx
call fcn.1007858b
lea ecx, [ebp - 0x14]
mov bl, al
mov byte [ebp - 4], 0x28
call fcn.10053649
test bl, bl
jne 0x100709d6
lea eax, [ebp - 0x14]
push 0x1fc
push eax
call fcn.1014b6df
pop ecx
pop ecx
lea ecx, [ebp - 0x14]
call fcn.10053649
mov eax, dword [ebp - 0x50]
push eax
mov dword [ebp - 0x60], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [ebp - 0x64], 1
mov ebx, dword [ebp - 0x28]
lea eax, [ebp - 0x14]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x2a
call fcn.10074580
lea ecx, [ebp - 0x38]
push ecx
mov ecx, dword [eax]
mov byte [ebp - 4], 0x2b
call fcn.1014b6df
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x2a
call fcn.10053649
lea eax, [ebp - 0x14]
push eax
mov ecx, ebx
call fcn.100745d1
mov ebx, dword [eax]
mov ecx, esi
mov byte [ebp - 4], 0x2c
call fcn.100a2f52
push eax
mov ecx, ebx
call fcn.1014b6df
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x2a
call fcn.10053649
mov ecx, esi
call fcn.100a2fef
push ecx
mov dword [ebp - 0x50], esp
mov ecx, esp
push eax
call fcn.1014b6df
mov ebx, dword [ebp - 0x28]
lea eax, [ebp - 0x14]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x2d
call fcn.10074622
mov ecx, dword [eax]
mov byte [ebp - 4], 0x2e
mov byte [ebp - 4], 0x2f
call fcn.1007e014
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x2a
call fcn.10053649
lea eax, [ebp - 0x34]
push eax
mov ecx, ebx
call fcn.1007469b
mov ebx, dword [eax]
mov ecx, esi
mov byte [ebp - 4], 0x30
call fcn.100a2f3c
push eax
mov ecx, ebx
call fcn.1014b6df
mov byte [ebp - 4], 0x2a
lea ecx, [ebp - 0x34]
call fcn.10053649
lea eax, [ebp - 0x4c]
push eax
mov ecx, esi
call fcn.100750ee
mov esi, eax
mov ebx, dword [ebp - 0x28]
lea eax, [ebp - 0x14]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x31
call fcn.100746ec
mov ecx, dword [eax]
push esi
mov byte [ebp - 4], 0x32
call fcn.1014b6df
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x31
call fcn.10053649
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x2a
call fcn.10053649
lea eax, [ebx + 0x144]
push eax
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
jmp 0x100709d9
mov ebx, dword [ebp - 0x28]
mov byte [ebp - 4], 0x23
lea ecx, [ebp - 0x24]
call fcn.10053649
jmp 0x10070dad
lea eax, [ebp - 0x14]
push 0x20c
push eax
call fcn.1014b6df
pop ecx
pop ecx
lea ecx, [ebp - 0x14]
jmp 0x100709e0
call fcn.1014b6df
add esp, 0x10
lea ecx, [ebp - 0x14]
call fcn.10053649
xor eax, eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
lea eax, [ebx + 0x144]
push eax
mov dword [ebp - 0x6c], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [ebp - 0x70], 1
lea eax, [ebp - 0x34]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x38
call fcn.10074580
lea ecx, [ebp - 0x14]
push ecx
mov ecx, dword [eax]
mov byte [ebp - 4], 0x39
call fcn.10081687
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x3a
call fcn.1014b6df
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x39
call fcn.10053649
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x38
call fcn.10053649
lea eax, [ebp - 0x4c]
push eax
mov ecx, ebx
call fcn.10074580
mov ecx, dword [eax]
mov byte [ebp - 4], 0x3b
call fcn.10080db7
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x38
call fcn.10053649
lea eax, [ebp - 0x18]
push eax
mov ecx, ebx
call fcn.100745d1
lea ecx, [ebp - 0x14]
push ecx
mov ecx, dword [eax]
mov byte [ebp - 4], 0x3c
call fcn.10081687
push eax
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0x3d
call fcn.1014b6df
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x3c
call fcn.10053649
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x38
call fcn.10053649
lea eax, [ebp - 0x60]
push eax
mov ecx, ebx
call fcn.100745d1
mov byte [ebp - 4], 0x3e
mov ecx, dword [eax]
call fcn.10080db7
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x38
call fcn.10053649
push 0x18
call fcn.1014b6df
pop ecx
mov dword [ebp - 0x60], eax
mov byte [ebp - 4], 0x3f
test eax, eax
je 0x10070b37
lea eax, [ebp - 0x14]
push eax
mov ecx, ebx
call fcn.10074622
mov ecx, dword [ebp - 0x1c]
mov eax, dword [eax]
push dword [eax + 0x10]
or ecx, 0x10
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x60]
mov byte [ebp - 4], 0x40
call fcn.1005b381
jmp 0x10070b39
xor eax, eax
mov dword [ebp - 0x18], eax
test eax, eax
je 0x10070b4a
xor ecx, ecx
add eax, 4
inc ecx
lock xadd dword [eax], ecx
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x30]
mov dword [ebp - 4], 0x42
call fcn.1014b6df
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x41
call fcn.10053649
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 4], 0x38
test al, 0x10
je 0x10070b85
and eax, 0xffffffef
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x1c], eax
call fcn.10053649
lea eax, [ebp - 0x60]
push eax
mov ecx, ebx
call fcn.10074622
push dword [ebp - 0x30]
mov ecx, dword [eax]
mov byte [ebp - 4], 0x43
call fcn.1014b6df
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x38
call fcn.10053649
lea eax, [ebp - 0x14]
push eax
mov ecx, ebx
call fcn.10074622
mov ecx, dword [eax]
mov byte [ebp - 4], 0x44
call fcn.1007e051
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x38
call fcn.10053649
lea eax, [ebp - 0x34]
push eax
mov ecx, ebx
call fcn.1007469b
lea ecx, [ebp - 0x60]
push ecx
mov ecx, dword [eax]
mov byte [ebp - 4], 0x45
call fcn.10081687
push eax
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x46
call fcn.1014b6df
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x45
call fcn.10053649
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x38
call fcn.10053649
lea eax, [ebp - 0x4c]
push eax
mov ecx, ebx
call fcn.1007469b
mov ecx, dword [eax]
mov byte [ebp - 4], 0x47
call fcn.10080db7
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x38
call fcn.10053649
lea eax, [ebp - 0x18]
push eax
mov ecx, ebx
call fcn.100746ec
lea ecx, [ebp - 0x60]
push ecx
mov ecx, dword [eax]
mov byte [ebp - 4], 0x48
call fcn.10081687
push eax
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x49
call fcn.1014b6df
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x48
call fcn.10053649
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x38
call fcn.10053649
lea eax, [ebp - 0x50]
push eax
mov ecx, ebx
call fcn.100746ec
mov ecx, dword [eax]
mov byte [ebp - 4], 0x4a
call fcn.10080db7
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x38
call fcn.10053649
lea eax, [ebx + 0x144]
push eax
mov byte [ebp - 4], 0x37
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
mov ecx, dword [ebp - 0x28]
call fcn.10080d71
test al, al
jne 0x10070d67
lea eax, [ebp - 0x50]
push 0x1fe
push eax
call fcn.1014b6df
pop ecx
pop ecx
lea ecx, [ebp - 0x50]
call fcn.10053649
mov ecx, dword [esi + 0x2d8]
call fcn.10080d71
test al, al
jne 0x10070cf0
mov ecx, dword [ebp - 0x28]
lea eax, [esi + 0x2d8]
push eax
call fcn.1014b6df
mov ecx, dword [esi + 0x2d8]
call fcn.10080db7
push ecx
mov eax, esp
mov dword [eax], esi
xor eax, eax
mov dword [ebp - 0x50], esp
inc eax
lea ecx, [esi + 4]
lock xadd dword [ecx], eax
mov eax, dword [ebp - 0x28]
push ecx
mov ecx, esp
mov dword [ecx], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x50], esp
test eax, eax
je 0x10070d1e
xor ecx, ecx
add eax, 4
inc ecx
lock xadd dword [eax], ecx
lea eax, [ebp - 0x2c]
push eax
mov ecx, ebx
call fcn.1006fda0
and dword [ebp - 0x18], 0
push 0
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x48]
push eax
lea ecx, [ebp - 0x20]
push ecx
lea ecx, [ebp - 0x24]
push ecx
lea ecx, [ebp - 0x30]
push ecx
lea ecx, [ebp - 0x44]
push ecx
lea ecx, [ebp - 0x28]
push ecx
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x4b
call fcn.1007858b
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x37
call fcn.10053649
mov byte [ebp - 0xd], 1
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x36
call fcn.10053649
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x35
call fcn.10053649
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x34
call fcn.10053649
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0x33
call fcn.10053649
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x23
call fcn.10053649
cmp byte [ebp - 0xd], 0
jne 0x10070e40
lea eax, [ebx + 0x144]
push eax
mov byte [ebp - 0xd], 0
mov dword [ebp - 0x6c], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [ebp - 0x70], 1
mov esi, dword [ebp - 0x48]
push esi
lea ecx, [ebx + 0xc4]
mov byte [ebp - 4], 0x4c
call fcn.1006c5e8
cmp dword [eax], 4
jne 0x10070e1e
and dword [ebp - 0x18], 0
push esi
lea ecx, [ebx + 0xdc]
mov byte [ebp - 4], 0x4d
call fcn.1006c85b
lea ecx, [ebp - 0x18]
push ecx
mov ecx, eax
call fcn.1014b6df
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0x4c
call fcn.10053649
push esi
lea ecx, [ebx + 0xc4]
call fcn.1006c5e8
and dword [eax], 0
mov byte [ebp - 0xd], 1
lea eax, [ebx + 0x144]
push eax
mov byte [ebp - 4], 0x23
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
cmp byte [ebp - 0xd], 0
je 0x10070e40
push 0x100088fc
push esi
call fcn.1014b6df
mov cl, byte [ebp + 0xf]
mov al, byte [edi + 0x10]
test al, al
jne 0x10070e4e
test cl, cl
jne 0x10070e61
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x40]
push eax
mov ecx, ebx
call fcn.10071079
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x58]
push eax
add edi, 0xc
push edi
push dword [ebp + 8]
call fcn.1007b723
mov ecx, dword [ebp - 0x1c]
or ecx, 4
mov dword [ebp - 0x1c], ecx
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x1f
call fcn.10053649
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x1e
call fcn.10053649
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0xd
call fcn.10053649
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 3
call fcn.10053649
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 2
call fcn.10053649
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 1
call fcn.10053649
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0
call fcn.10053649
mov eax, dword [ebp + 8]
call fcn.1015f163
ret 8