Function at 0x405940
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push 0xffffffffffffffff
push 0x449a0f
mov eax, dword fs:[0]
push eax
sub esp, 0xc8
push ebx
push esi
push edi
mov eax, dword [0x45f5e0]
xor eax, esp
push eax
lea eax, [esp + 0xd8]
mov dword fs:[0], eax
mov esi, ecx
lea eax, [esp + 0xcc]
call fcn.00401620
xor edi, edi
mov dword [esp + 0xe0], edi
call fcn.0041472e
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40599d
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x44], eax
mov byte [esp + 0xe0], 1
mov ecx, dword [esi + 0xc]
push ecx
lea edx, [esp + 0x48]
push 0x451d2c
push edx
call fcn.00403290
add esp, 0xc
call fcn.0041472e
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x4059e5
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x3c], eax
mov byte [esp + 0xe0], 2
mov ecx, dword [esi + 0x10]
push ecx
lea edx, [esp + 0x40]
push 0x451d2c
push edx
call fcn.00403290
add esp, 0xc
call fcn.0041472e
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x405a2d
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x2c], eax
mov byte [esp + 0xe0], 3
mov ecx, dword [esi + 0x14]
push ecx
lea edx, [esp + 0x30]
push 0x451d2c
push edx
call fcn.00403290
add esp, 0xc
call fcn.0041472e
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x405a75
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
mov byte [esp + 0xe0], 4
mov ecx, dword [esi + 0x18]
push ecx
lea edx, [esp + 0x28]
push 0x451d2c
push edx
call fcn.00403290
add esp, 0xc
call fcn.0041472e
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x405abd
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
mov byte [esp + 0xe0], 5
mov ecx, dword [esi + 0x2c]
push ecx
lea edx, [esp + 0x20]
push 0x451d2c
push edx
call fcn.00403290
add esp, 0xc
call fcn.0041472e
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x405b05
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
mov byte [esp + 0xe0], 6
mov ecx, dword [esi + 0x30]
push ecx
lea edx, [esp + 0x18]
push 0x451d2c
push edx
call fcn.00403290
add esp, 0xc
call fcn.0041472e
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x405b4d
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x10], eax
mov byte [esp + 0xe0], 7
mov ecx, dword [esi + 0x34]
push ecx
lea edx, [esp + 0x14]
push 0x451d2c
push edx
call fcn.00403290
add esp, 0xc
call fcn.0041472e
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x405b95
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x30], eax
mov byte [esp + 0xe0], 8
mov ecx, dword [esi + 0x38]
push ecx
lea edx, [esp + 0x34]
push 0x451d2c
push edx
call fcn.00403290
add esp, 0xc
call fcn.0041472e
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x405bdd
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x28], eax
mov byte [esp + 0xe0], 9
mov ecx, dword [esi + 0x1c]
push ecx
lea edx, [esp + 0x2c]
push 0x451d2c
push edx
call fcn.00403290
add esp, 0xc
call fcn.0041472e
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x405c25
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x38], eax
mov byte [esp + 0xe0], 0xa
mov ecx, dword [esi + 0x20]
push ecx
lea edx, [esp + 0x3c]
push 0x451d2c
push edx
call fcn.00403290
add esp, 0xc
call fcn.0041472e
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x405c6d
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
mov byte [esp + 0xe0], 0xb
mov ecx, dword [esi + 0x24]
push ecx
lea edx, [esp + 0x24]
push 0x451d2c
push edx
call fcn.00403290
add esp, 0xc
call fcn.0041472e
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x405cb5
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x34], eax
mov byte [esp + 0xe0], 0xc
mov ecx, dword [esi + 0x28]
push ecx
lea edx, [esp + 0x38]
push 0x451d2c
push edx
call fcn.00403290
add esp, 0xc
call fcn.0041472e
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x405cfd
push 0x80004005
call fcn.004010a0
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 + 0xe0], 0xd
mov ecx, dword [esi + 0x3c]
push ecx
lea edx, [esp + 0x1c]
push 0x451d2c
push edx
call fcn.00403290
add esp, 0xc
call fcn.0041472e
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x405d45
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x40], eax
mov byte [esp + 0xe0], 0xe
mov ecx, dword [esi + 0x40]
push ecx
lea edx, [esp + 0x44]
push 0x451d2c
push edx
call fcn.00403290
add esp, 0xc
mov dword [esp + 0x4c], edi
lea eax, [esi + 4]
push eax
lea ecx, [esp + 0x4c]
push 0x451c38
push ecx
mov byte [esp + 0xec], 0xf
call fcn.00403090
add esp, 0xc
push 0x4513dc
push eax
lea edx, [esp + 0xc4]
push edx
mov byte [esp + 0xec], 0x10
call fcn.00402fb0
add esp, 0xc
add esi, 8
push esi
push eax
lea eax, [esp + 0xbc]
push eax
mov byte [esp + 0xec], 0x11
call fcn.00402ef0
add esp, 0xc
push 0x451c30
push eax
lea ecx, [esp + 0xb4]
push ecx
mov byte [esp + 0xec], 0x12
call fcn.00402fb0
add esp, 0xc
lea edx, [esp + 0x44]
push edx
push eax
lea eax, [esp + 0xac]
push eax
mov byte [esp + 0xec], 0x13
call fcn.00402ef0
add esp, 0xc
push 0x451c2c
push eax
lea ecx, [esp + 0xa4]
push ecx
mov byte [esp + 0xec], 0x14
call fcn.00402fb0
add esp, 0xc
lea edx, [esp + 0x3c]
push edx
push eax
lea eax, [esp + 0x9c]
push eax
mov byte [esp + 0xec], 0x15
call fcn.00402ef0
add esp, 0xc
push 0x451c2c
mov byte [esp + 0xe4], 0x16
push eax
lea ecx, [esp + 0x94]
push ecx
call fcn.00402fb0
add esp, 0xc
lea edx, [esp + 0x2c]
push edx
push eax
lea eax, [esp + 0x8c]
push eax
mov byte [esp + 0xec], 0x17
call fcn.00402ef0
add esp, 0xc
push 0x451c2c
push eax
lea ecx, [esp + 0x84]
push ecx
mov byte [esp + 0xec], 0x18
call fcn.00402fb0
add esp, 0xc
lea edx, [esp + 0x24]
push edx
push eax
lea eax, [esp + 0x7c]
push eax
mov byte [esp + 0xec], 0x19
call fcn.00402ef0
add esp, 0xc
push 0x451c2c
push eax
lea ecx, [esp + 0x74]
push ecx
mov byte [esp + 0xec], 0x1a
call fcn.00402fb0
add esp, 0xc
lea edx, [esp + 0x30]
push edx
push eax
lea eax, [esp + 0x6c]
push eax
mov byte [esp + 0xec], 0x1b
call fcn.00402ef0
add esp, 0xc
push 0x451c2c
push eax
lea ecx, [esp + 0x64]
push ecx
mov byte [esp + 0xec], 0x1c
call fcn.00402fb0
add esp, 0xc
lea edx, [esp + 0x14]
push edx
push eax
lea eax, [esp + 0x5c]
push eax
mov byte [esp + 0xec], 0x1d
call fcn.00402ef0
add esp, 0xc
push 0x451c2c
push eax
lea ecx, [esp + 0x98]
push ecx
mov byte [esp + 0xec], 0x1e
call fcn.00402fb0
add esp, 0xc
lea edx, [esp + 0x10]
push edx
push eax
lea eax, [esp + 0xd0]
push eax
mov byte [esp + 0xec], 0x1f
call fcn.00402ef0
add esp, 0xc
push 0x451c2c
push eax
lea ecx, [esp + 0x90]
push ecx
mov byte [esp + 0xec], 0x20
call fcn.00402fb0
add esp, 0xc
lea edx, [esp + 0x1c]
push edx
push eax
lea eax, [esp + 0xb0]
push eax
mov byte [esp + 0xec], 0x21
call fcn.00402ef0
add esp, 0xc
push 0x451c2c
push eax
lea ecx, [esp + 0x88]
push ecx
mov byte [esp + 0xec], 0x22
call fcn.00402fb0
add esp, 0xc
lea edx, [esp + 0x28]
push edx
push eax
lea eax, [esp + 0xc0]
push eax
mov byte [esp + 0xec], 0x23
call fcn.00402ef0
add esp, 0xc
push 0x451c2c
push eax
lea ecx, [esp + 0x80]
push ecx
mov byte [esp + 0xec], 0x24
call fcn.00402fb0
add esp, 0xc
lea edx, [esp + 0x38]
push edx
push eax
lea eax, [esp + 0xa8]
push eax
mov byte [esp + 0xec], 0x25
call fcn.00402ef0
add esp, 0xc
push 0x451c2c
push eax
lea ecx, [esp + 0x58]
push ecx
mov byte [esp + 0xec], 0x26
call fcn.00402fb0
add esp, 0xc
lea edx, [esp + 0x20]
push edx
push eax
lea eax, [esp + 0xc8]
push eax
mov byte [esp + 0xec], 0x27
call fcn.00402ef0
add esp, 0xc
push 0x451c2c
push eax
lea ecx, [esp + 0x70]
push ecx
mov byte [esp + 0xec], 0x28
call fcn.00402fb0
add esp, 0xc
lea edx, [esp + 0x34]
push edx
push eax
mov byte [esp + 0xe8], 0x29
lea eax, [esp + 0xa0]
push eax
call fcn.00402ef0
add esp, 0xc
push 0x451c2c
push eax
lea ecx, [esp + 0x68]
push ecx
mov byte [esp + 0xec], 0x2a
call fcn.00402fb0
add esp, 0xc
lea edx, [esp + 0x18]
push edx
push eax
lea eax, [esp + 0xb8]
push eax
mov byte [esp + 0xec], 0x2b
call fcn.00402ef0
add esp, 0xc
push 0x451c2c
push eax
lea ecx, [esp + 0x60]
push ecx
mov byte [esp + 0xec], 0x2c
call fcn.00402fb0
add esp, 0xc
lea edx, [esp + 0x40]
push edx
push eax
lea eax, [esp + 0xcc]
push eax
mov byte [esp + 0xec], 0x2d
call fcn.00402ef0
add esp, 0xc
push 0x451c28
push eax
lea ecx, [esp + 0x78]
push ecx
mov byte [esp + 0xec], 0x2e
call fcn.00402fb0
add esp, 0xc
mov byte [esp + 0xe0], 0x2f
mov eax, dword [eax]
push eax
lea ebx, [esp + 0x50]
call fcn.00401f70
mov byte [esp + 0xe0], 0x2e
mov eax, dword [esp + 0x70]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x406154
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0x2d
mov eax, dword [esp + 0xc4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40617f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0x2c
mov eax, dword [esp + 0x58]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4061a7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0x2b
mov eax, dword [esp + 0xb0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4061d2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0x2a
mov eax, dword [esp + 0x60]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4061fa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0x29
mov eax, dword [esp + 0x98]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406225
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0x28
mov eax, dword [esp + 0x68]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40624d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0x27
mov eax, dword [esp + 0xc0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406278
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0x26
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 0x4062a0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0x25
mov eax, dword [esp + 0xa0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4062cb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0x24
mov eax, dword [esp + 0x78]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4062f3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0x23
mov eax, dword [esp + 0xb8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40631e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0x22
mov eax, dword [esp + 0x80]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406349
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0x21
mov eax, dword [esp + 0xa8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406374
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0x20
mov eax, dword [esp + 0x88]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40639f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0x1f
mov eax, dword [esp + 0xc8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4063ca
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0x1e
mov eax, dword [esp + 0x90]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4063f5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0x1d
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40641d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0x1c
mov eax, dword [esp + 0x5c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406445
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0x1b
mov eax, dword [esp + 0x64]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40646d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0x1a
mov eax, dword [esp + 0x6c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406495
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0x19
mov eax, dword [esp + 0x74]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4064bd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0x18
mov eax, dword [esp + 0x7c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4064e5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0x17
mov eax, dword [esp + 0x84]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406510
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0x16
mov eax, dword [esp + 0x8c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40653b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0x15
mov eax, dword [esp + 0x94]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406566
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0x14
mov eax, dword [esp + 0x9c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406591
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0x13
mov eax, dword [esp + 0xa4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4065bc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0x12
mov eax, dword [esp + 0xac]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4065e7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0x11
mov eax, dword [esp + 0xb4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406612
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0x10
mov eax, dword [esp + 0xbc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40663d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0xf
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406665
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x4c]
push ecx
mov eax, esp
mov dword [esp + 0x4c], esp
mov dword [eax], esi
test esi, esi
je 0x406680
lea ecx, [esi + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
lea ecx, [esp + 0xd0]
call fcn.00401990
lea edi, [esp + 0xcc]
call fcn.00401af0
mov byte [esp + 0xe0], 0xe
test esi, esi
je 0x4066d8
lea edx, [esi + 8]
push edx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jne 0x4066d8
mov eax, dword [esi]
test eax, eax
je 0x4066bf
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
test eax, eax
je 0x4066cf
push eax
call fcn.00413827
add esp, 4
push esi
call fcn.00413827
add esp, 4
mov byte [esp + 0xe0], 0xd
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406700
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0xc
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 0x406728
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0xb
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406750
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0xa
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406778
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 9
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 0x4067a0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 8
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4067c8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 7
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4067f0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 6
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406818
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 5
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406840
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 4
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406868
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 3
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406890
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 2
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 0x4068b8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 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 0x4068e0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xe0], 0
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406908
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0xcc]
call fcn.00401650
mov ecx, dword [esp + 0xd8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0xd4
ret