Function at 0x40b410
Capabilities:
Check for time delay via gettickcount
Check http status code
Get disk size

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47bb9c
mov eax, dword fs:[0]
push eax
sub esp, 0x464
mov eax, dword [0x4ade78]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
push eax
lea eax, [ebp - 0x46c]
push eax
mov dword [ebp - 0x470], ecx
call fcn.00452c50
add esp, 8
mov eax, dword [0x4adbb8]
mov ecx, 0x4adbb8
mov dword [ebp - 4], 0
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x468], eax
mov eax, dword [0x4adbb8]
mov ecx, 0x4adbb8
mov byte [ebp - 4], 1
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x440], eax
push 0
lea ecx, [ebp - 0x464]
mov byte [ebp - 4], 3
call fcn.0042daf0
mov byte [ebp - 4], 4
call fcn.0040cde0
test al, al
jne 0x40b519
mov esi, dword [0x4af2c0]
mov eax, 0xb92143fb
imul esi
add edx, esi
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, ecx, 0xb1
mov eax, esi
sub eax, ecx
xor edi, edi
cmp eax, 0x3f
je 0x40b513
lea esp, [esp]
mov eax, esi
or eax, 0xffffffa7
add esi, eax
mov eax, esi
imul eax, esi
inc edi
cmp edi, eax
jg 0x40b513
mov eax, 0xb92143fb
imul esi
add edx, esi
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, ecx, 0xb1
mov eax, esi
sub eax, ecx
cmp eax, 0x3f
jne 0x40b4e0
mov dword [0x4af2c0], edi
lea ecx, [ebp - 0x3e8]
call fcn.00429a00
mov ecx, dword [0x4af2c0]
mov eax, ecx
imul eax, ecx
imul eax, ecx
cdq
mov ecx, 0x13
idiv ecx
mov byte [ebp - 4], 5
cmp edx, 6
jne 0x40b5aa
xor eax, eax
push 0x31e
push eax
mov word [ebp - 0x334], ax
lea eax, [ebp - 0x332]
push eax
call fcn.00462e00
add esp, 0xc
xor edi, edi
xor esi, esi
xor edx, edx
test edi, edi
je 0x40b58f
test edx, edx
je 0x40b58f
lea eax, [esi + edx]
lea ecx, [esi + edx]
mov ax, word [ebp + eax*2 - 0x35c]
inc ax
add ax, word [ebp + ecx*2 - 0x336]
mov word [ebp + ecx*2 - 0x334], ax
inc edx
cmp edx, 0x14
jl 0x40b567
add esi, 0x14
inc edi
cmp esi, 0x190
jl 0x40b565
movsx eax, word [ebp - 0x16]
mov dword [0x4af2c0], eax
lea eax, [ebp - 0x46c]
push eax
lea eax, [ebp - 0x400]
push eax
call fcn.00452ec0
add esp, 8
push 1
lea ecx, [ebp - 0x464]
push ecx
push eax
lea ecx, [ebp - 0x3e8]
mov byte [ebp - 4], 6
call fcn.0042be30
cmp dword [ebp - 0x3ec], 0x10
mov bl, al
mov byte [ebp - 4], 5
jb 0x40b5f6
push dword [ebp - 0x400]
call fcn.00460a34
add esp, 4
test bl, bl
jne 0x40b739
push 0xb
push str.parse_error
lea ecx, [ebp - 0x440]
call fcn.00408620
cmp dword [ebp - 0x380], 0x10
jb 0x40b627
push dword [ebp - 0x394]
call fcn.00460a34
add esp, 4
cmp dword [ebp - 0x3ac], 0x10
mov dword [ebp - 0x380], 0xf
mov dword [ebp - 0x384], 0
mov byte [ebp - 0x394], 0
jb 0x40b659
push dword [ebp - 0x3c0]
call fcn.00460a34
add esp, 4
lea ecx, [ebp - 0x3d4]
mov dword [ebp - 0x3ac], 0xf
mov dword [ebp - 0x3b0], 0
mov byte [ebp - 0x3c0], 0
call fcn.00408c90
push dword [ebp - 0x3d4]
call fcn.00460a34
mov eax, dword [ebp - 0x3d8]
add esp, 4
mov dword [ebp - 0x3d4], 0
test eax, eax
je 0x40b6c0
mov ecx, dword [ebp - 0x3dc]
dec eax
mov edx, 0
cmove ecx, edx
mov dword [ebp - 0x3d8], eax
mov dword [ebp - 0x3dc], ecx
test eax, eax
jne 0x40b6a7
mov esi, dword [ebp - 0x3e0]
mov eax, dword [ebp - 0x3e4]
test esi, esi
je 0x40b6ec
mov ecx, dword [eax + esi*4 - 4]
dec esi
test ecx, ecx
je 0x40b6e8
push ecx
call fcn.00460a34
mov eax, dword [ebp - 0x3e4]
add esp, 4
test esi, esi
jne 0x40b6d0
test eax, eax
je 0x40b6f9
push eax
call fcn.00460a34
add esp, 4
push dword [ebp - 0x3e8]
mov dword [ebp - 0x3e0], 0
mov dword [ebp - 0x3e4], 0
call fcn.00460a34
add esp, 4
lea ecx, [ebp - 0x464]
mov dword [ebp - 0x3e8], 0
mov byte [ebp - 4], 3
call fcn.0042dd80
jmp 0x40be2e
mov eax, dword [0x4adbb8]
mov ecx, 0x4adbb8
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x448], esi
push str.hive
lea ecx, [ebp - 0x464]
mov byte [ebp - 4], 7
call fcn.0042f180
test al, al
je 0x40b846
push str.hive
lea ecx, [ebp - 0x464]
call fcn.0042e010
mov ecx, eax
call fcn.0042f1e0
test al, al
je 0x40b846
push str.hive
lea ecx, [ebp - 0x464]
call fcn.0042e010
sub esp, 0x18
mov ecx, eax
push esp
call fcn.0042e850
lea eax, [ebp - 0x43c]
push eax
call fcn.00452d60
add esp, 0x1c
mov ecx, dword [eax]
lea ebx, [esi - 0x10]
lea edx, [ecx - 0x10]
mov byte [ebp - 4], 8
cmp edx, ebx
je 0x40b81e
cmp dword [ebx + 0xc], 0
lea esi, [ebx + 0xc]
jl 0x40b809
mov eax, dword [edx]
cmp eax, dword [ebx]
jne 0x40b809
push edx
call fcn.00403ee0
or edi, 0xffffffff
add esp, 4
mov dword [ebp - 0x450], eax
mov ecx, edi
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x40b7fe
mov ecx, dword [ebx]
push ebx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x450]
lea esi, [eax + 0x10]
mov dword [ebp - 0x448], esi
jmp 0x40b821
push dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x448]
call fcn.00408620
mov esi, dword [ebp - 0x448]
or edi, 0xffffffff
mov edx, dword [ebp - 0x43c]
add edx, 0xfffffff0
mov byte [ebp - 4], 7
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40b849
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x40b849
or edi, 0xffffffff
push ecx
mov ecx, dword [esi - 0x10]
lea ebx, [esi - 0x10]
mov eax, dword [ecx]
mov dword [ebp - 0x43c], esp
call dword [eax + 0x10]
cmp dword [ebx + 0xc], 0
lea edx, [ebx + 0xc]
mov ecx, eax
jl 0x40b877
cmp ecx, dword [ebx]
jne 0x40b877
mov esi, ebx
mov eax, 1
lock xadd dword [edx], eax
jmp 0x40b8a7
mov eax, dword [ecx]
push 1
push dword [ebx + 4]
call dword [eax]
mov esi, eax
test esi, esi
jne 0x40b88b
call fcn.00408840
mov eax, dword [ebx + 4]
mov dword [esi + 4], eax
mov ecx, dword [ebx + 4]
inc ecx
push ecx
lea eax, [ebx + 0x10]
push eax
push ecx
lea eax, [esi + 0x10]
push eax
call fcn.00462094
add esp, 0x10
mov ecx, dword [ebp - 0x43c]
lea eax, [esi + 0x10]
mov dword [ecx], eax
call fcn.0040aaf0
mov ecx, dword [0x4af2c0]
mov dword [ebp - 0x44c], eax
lea eax, [ecx + 1]
imul eax, ecx
cdq
mov ecx, 0x16
idiv ecx
add esp, 4
cmp edx, 0xd
jne 0x40b8e9
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceA]
mov eax, dword [0x4adbb8]
mov ecx, 0x4adbb8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x444], eax
push str.keyPath
lea ecx, [ebp - 0x464]
mov byte [ebp - 4], 9
call fcn.0042f180
test al, al
je 0x40bc8c
push str.keyPath
lea ecx, [ebp - 0x464]
call fcn.0042e010
mov ecx, eax
call fcn.0042f1e0
test al, al
je 0x40bc8c
push str.keyPath
lea ecx, [ebp - 0x464]
call fcn.0042e010
sub esp, 0x18
mov ecx, eax
push esp
call fcn.0042e850
lea eax, [ebp - 0x450]
push eax
call fcn.00452d60
add esp, 0x1c
mov ecx, dword [eax]
mov esi, dword [ebp - 0x444]
lea edx, [ecx - 0x10]
add esi, 0xfffffff0
mov byte [ebp - 4], 0xa
cmp edx, esi
je 0x40b9cb
cmp dword [esi + 0xc], 0
jl 0x40b9bc
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x40b9bc
push edx
call fcn.00403ee0
add esp, 4
mov dword [ebp - 0x43c], eax
mov ecx, edi
lea edx, [esi + 0xc]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40b9b1
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x43c]
add eax, 0x10
mov dword [ebp - 0x444], eax
jmp 0x40b9cb
push dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x444]
call fcn.00408620
mov edx, dword [ebp - 0x450]
add edx, 0xfffffff0
mov byte [ebp - 4], 9
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40b9ee
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x4adbb8]
mov ecx, 0x4adbb8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x454], eax
push str.valueName
lea ecx, [ebp - 0x464]
mov byte [ebp - 4], 0xb
call fcn.0042f180
test al, al
je 0x40bbfb
push str.valueName
lea ecx, [ebp - 0x464]
call fcn.0042e010
mov ecx, eax
call fcn.0042f1e0
test al, al
je 0x40bbfb
push str.valueName
lea ecx, [ebp - 0x464]
call fcn.0042e010
sub esp, 0x18
mov ecx, eax
push esp
call fcn.0042e850
lea eax, [ebp - 0x43c]
push eax
call fcn.00452d60
add esp, 0x1c
push eax
lea ecx, [ebp - 0x454]
mov byte [ebp - 4], 0xc
call fcn.00402970
mov edx, dword [ebp - 0x43c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xb
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40ba9c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [0x4af2c0]
mov ecx, 0xe
lea eax, [esi + 1]
imul eax, esi
cdq
idiv ecx
cmp edx, 0xd
jne 0x40baf3
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, ecx, 0x64
sub esi, ecx
xor ecx, ecx
lea eax, [esi + 0x2f4]
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004601e0
add esp, 4
push eax
call fcn.0046208f
add esp, 4
lea eax, [ebp - 0x440]
push eax
lea eax, [ebp - 0x468]
push eax
lea eax, [ebp - 0x454]
push eax
lea eax, [ebp - 0x444]
push eax
push dword [ebp - 0x44c]
call fcn.0045c940
mov esi, dword [0x4af2c0]
add esp, 0x14
lea ecx, [esi + 1]
lea eax, [esi + 2]
imul eax, ecx
imul eax, esi
cdq
mov ecx, 0x15
idiv ecx
cmp edx, 8
jne 0x40bb75
xor ecx, ecx
mov edi, edi
mov eax, dword [ebp + ecx*4 - 0x378]
add eax, dword [ebp + ecx*4 - 0x36c]
add ecx, 4
add eax, dword [ebp + ecx*4 - 0x380]
add eax, dword [ebp + ecx*4 - 0x384]
lea eax, [eax + eax*4]
shl eax, 4
add esi, eax
mov dword [0x4af2c0], esi
cmp ecx, 0x364
jb 0x40bb40
mov edx, dword [ebp - 0x454]
add edx, 0xfffffff0
mov byte [ebp - 4], 9
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40bb98
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x444]
add edx, 0xfffffff0
mov byte [ebp - 4], 7
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40bbbb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 5
lea eax, [ebx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40bbd5
mov ecx, dword [ebx]
push ebx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x3e8]
call fcn.00402870
lea ecx, [ebp - 0x464]
mov byte [ebp - 4], 3
call fcn.0042dd80
mov dword [ebp - 4], 2
jmp 0x40be31
push 0xf
push str.valueName_error
lea ecx, [ebp - 0x440]
call fcn.00408620
mov edx, dword [ebp - 0x454]
add edx, 0xfffffff0
mov byte [ebp - 4], 9
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40bc30
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x444]
add edx, 0xfffffff0
mov byte [ebp - 4], 7
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40bc53
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 5
lea eax, [ebx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40bc6d
mov ecx, dword [ebx]
push ebx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x3e8]
call fcn.00402870
lea ecx, [ebp - 0x464]
mov byte [ebp - 4], 3
call fcn.0042dd80
jmp 0x40be31
push 0xd
push str.keyPath_error
lea ecx, [ebp - 0x440]
call fcn.00408620
mov edx, dword [ebp - 0x444]
add edx, 0xfffffff0
mov byte [ebp - 4], 7
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40bcc1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 5
lea eax, [ebx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40bcdb
mov ecx, dword [ebx]
push ebx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x380], 0x10
jb 0x40bcf2
push dword [ebp - 0x394]
call fcn.00460a34
add esp, 4
cmp dword [ebp - 0x3ac], 0x10
mov dword [ebp - 0x380], 0xf
mov dword [ebp - 0x384], 0
mov byte [ebp - 0x394], 0
jb 0x40bd24
push dword [ebp - 0x3c0]
call fcn.00460a34
add esp, 4
lea ecx, [ebp - 0x3d4]
mov dword [ebp - 0x3ac], 0xf
mov dword [ebp - 0x3b0], 0
mov byte [ebp - 0x3c0], 0
call fcn.00408c90
push dword [ebp - 0x3d4]
call fcn.00460a34
mov eax, dword [ebp - 0x3d8]
add esp, 4
mov dword [ebp - 0x3d4], 0
test eax, eax
je 0x40bd8b
mov ecx, dword [ebp - 0x3dc]
dec eax
mov edx, 0
cmove ecx, edx
mov dword [ebp - 0x3d8], eax
mov dword [ebp - 0x3dc], ecx
test eax, eax
jne 0x40bd72
mov esi, dword [ebp - 0x3e0]
mov eax, dword [ebp - 0x3e4]
test esi, esi
je 0x40bdbc
jmp 0x40bda0
mov ecx, dword [eax + esi*4 - 4]
dec esi
test ecx, ecx
je 0x40bdb8
push ecx
call fcn.00460a34
mov eax, dword [ebp - 0x3e4]
add esp, 4
test esi, esi
jne 0x40bda0
test eax, eax
je 0x40bdc9
push eax
call fcn.00460a34
add esp, 4
push dword [ebp - 0x3e8]
mov dword [ebp - 0x3e0], 0
mov dword [ebp - 0x3e4], 0
call fcn.00460a34
add esp, 4
lea ecx, [ebp - 0x464]
mov dword [ebp - 0x3e8], 0
mov byte [ebp - 4], 3
call fcn.0042dd80
jmp 0x40be31
or edi, 0xffffffff
call fcn.0040ce30
test al, al
jne 0x40be91
movd xmm4, dword [0x4af2c0]
movsd xmm3, qword [0x4919d0]
movsd xmm6, qword [0x4919d8]
movsd xmm5, qword [0x4919c8]
xorps xmm2, xmm2
cvtdq2pd xmm4, xmm4
addsd xmm2, xmm3
movapd xmm0, xmm2
mulsd xmm0, xmm2
comisd xmm0, xmm4
jbe 0x40be7b
subsd xmm2, xmm3
divsd xmm3, xmm6
movapd xmm1, xmm2
mulsd xmm1, xmm2
movapd xmm0, xmm4
subsd xmm0, xmm1
comisd xmm0, xmm5
ja 0x40be61
mov byte [ebp - 4], 0xe
call fcn.0040ce60
test al, al
jne 0x40beb0
push 0
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_PeekNamedPipe]
push 0
lea ecx, [ebp - 0x464]
call fcn.0042daf0
mov byte [ebp - 4], 0xf
call fcn.0040cde0
test al, al
jne 0x40beda
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetMailslotInfo]
lea eax, [ebp - 0x468]
push eax
lea eax, [ebp - 0x418]
push eax
call fcn.00452ec0
add esp, 8
push eax
lea ecx, [ebp - 0x3f8]
mov byte [ebp - 4], 0x10
call fcn.0042da10
push str.value
lea ecx, [ebp - 0x464]
mov byte [ebp - 4], 0x11
call fcn.0042e010
lea ecx, [ebp - 0x3f8]
push ecx
mov ecx, eax
call fcn.0042de20
lea ecx, [ebp - 0x3f8]
mov byte [ebp - 4], 0x10
call fcn.0042dd80
cmp dword [ebp - 0x404], 0x10
mov byte [ebp - 4], 0xf
jb 0x40bf4c
push dword [ebp - 0x418]
call fcn.00460a34
add esp, 4
mov eax, dword [ebp - 0x440]
cmp dword [eax - 0xc], 0
je 0x40bfce
lea eax, [ebp - 0x440]
push eax
lea eax, [ebp - 0x418]
push eax
call fcn.00452ec0
add esp, 8
push eax
lea ecx, [ebp - 0x3f8]
mov byte [ebp - 4], 0x12
call fcn.0042da10
push str.error
lea ecx, [ebp - 0x464]
mov byte [ebp - 4], 0x13
call fcn.0042e010
lea ecx, [ebp - 0x3f8]
push ecx
mov ecx, eax
call fcn.0042de20
lea ecx, [ebp - 0x3f8]
mov byte [ebp - 4], 0x12
call fcn.0042dd80
cmp dword [ebp - 0x404], 0x10
mov byte [ebp - 4], 0xf
jb 0x40bfce
push dword [ebp - 0x418]
call fcn.00460a34
add esp, 4
lea ecx, [ebp - 0x438]
call fcn.0042fdd0
mov eax, dword [0x4adbb8]
mov ecx, 0x4adbb8
mov byte [ebp - 4], 0x14
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x448], eax
lea eax, [ebp - 0x464]
push eax
lea eax, [ebp - 0x418]
push eax
lea ecx, [ebp - 0x438]
mov byte [ebp - 4], 0x15
call fcn.00433150
mov edx, eax
cmp dword [edx + 0x14], 0x10
mov byte [ebp - 4], 0x16
jb 0x40c01e
mov edx, dword [edx]
test edx, edx
jne 0x40c026
xor ecx, ecx
jmp 0x40c039
mov ecx, edx
lea esi, [ecx + 1]
jmp 0x40c030
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40c030
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x448]
call fcn.00408620
cmp dword [ebp - 0x404], 0x10
mov byte [ebp - 4], 0x15
jb 0x40c061
push dword [ebp - 0x418]
call fcn.00460a34
add esp, 4
mov ebx, dword [ebp - 0x448]
push ecx
mov ecx, dword [ebx - 0x10]
add ebx, 0xfffffff0
mov eax, dword [ecx]
mov dword [ebp - 0x44c], esp
call dword [eax + 0x10]
cmp dword [ebx + 0xc], 0
mov ecx, eax
lea eax, [ebx + 0xc]
jl 0x40c095
cmp ecx, dword [ebx]
jne 0x40c095
mov esi, ebx
mov ecx, 1
lock xadd dword [eax], ecx
jmp 0x40c0c5
mov eax, dword [ecx]
push 1
push dword [ebx + 4]
call dword [eax]
mov esi, eax
test esi, esi
jne 0x40c0a9
call fcn.00408840
mov eax, dword [ebx + 4]
mov dword [esi + 4], eax
mov ecx, dword [ebx + 4]
inc ecx
push ecx
lea eax, [ebx + 0x10]
push eax
push ecx
lea eax, [esi + 0x10]
push eax
call fcn.00462094
add esp, 0x10
mov ecx, dword [ebp - 0x44c]
lea eax, [esi + 0x10]
mov dword [ecx], eax
call fcn.00452960
mov ecx, dword [ebp - 0x470]
add esp, 4
mov dword [ecx], eax
call fcn.0040cfe0
test al, al
jne 0x40c115
call dword [sym.imp.KERNEL32.dll_GetTickCount]
xor edx, edx
mov ecx, 0x4ed3606f
div ecx
mov esi, edx
lea ebx, [ebx]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov eax, esi
xor edx, edx
div ecx
lea esi, [edx - 1]
test esi, esi
jg 0x40c100
mov byte [ebp - 4], 0x14
lea eax, [ebx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c12f
mov ecx, dword [ebx]
push ebx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x420], 0x10
mov byte [ebp - 4], 0xf
mov dword [ebp - method.Json::FastWriter.virtual_0], vtable.Json::FastWriter.0
jb 0x40c154
push dword [ebp - 0x434]
call fcn.00460a34
add esp, 4
lea ecx, [ebp - 0x438]
mov dword [ebp - 0x420], 0xf
mov dword [ebp - 0x424], 0
mov byte [ebp - 0x434], 0
call fcn.0042ff20
lea ecx, [ebp - 0x464]
mov byte [ebp - 4], 0xe
call fcn.0042dd80
jmp 0x40c194
mov edx, dword [ebp - 0x440]
add edx, 0xfffffff0
mov dword [ebp - 4], 2
mov byte [ebp - 4], 1
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c1be
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x468]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c1e1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x46c]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x40c205
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00461234
mov esp, ebp
pop ebp
ret 0xc