Function at 0x405e80
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x6c
mov edi, dword [0x428a70]
mov dword [ebp - 0x4c], 0
test edi, edi
jne 0x4072c6
mov eax, dword [0x4287dc]
test eax, eax
jle 0x405ead
add dword [0x426058], eax
mov esi, dword [0x4281e4]
mov dword [0x4287dc], 0
test esi, esi
jne 0x4072bc
mov ebx, dword [0x428788]
test ebx, ebx
je 0x406048
mov dword [ebp - 0x34], 0x41f020
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x38], 0x41f020
mov eax, dword [eax]
lea edi, [eax + 4]
add eax, 0x404
mov dword [ebp - 0x30], eax
jmp 0x405f00
mov edx, dword [edi]
test edx, edx
je 0x405f93
mov esi, edx
mov dword [ebp - 0x2c], edi
and esi, 0xfffff000
mov eax, esi
shr eax, 0x16
mov ecx, dword [eax*4 + 0x444474]
mov eax, esi
shr eax, 0xc
and eax, 0x3ff
mov ebx, dword [ecx + eax*4]
nop
mov eax, edx
sub eax, esi
mov ecx, eax
shr eax, 8
mov edi, dword [ebx + eax*4 + 0x20]
shr ecx, 3
and ecx, 0x1f
bt edi, ecx
jb 0x405f57
mov edi, 1
shl edi, cl
or dword [ebx + eax*4 + 0x20], edi
add dword [ebx + 0x1c], 1
mov edx, dword [edx]
test edx, edx
je 0x405f90
mov eax, edx
and eax, 0xfffff000
cmp esi, eax
je 0x405f82
mov ecx, eax
shr ecx, 0x16
mov ebx, dword [ecx*4 + 0x444474]
mov ecx, eax
shr ecx, 0xc
and ecx, 0x3ff
mov ebx, dword [ebx + ecx*4]
mov esi, eax
jmp 0x405f30
mov edi, dword [ebp - 0x2c]
add edi, 4
cmp edi, dword [ebp - 0x30]
jne 0x405f00
add dword [ebp - 0x34], 0x14
mov esi, 0x41f05c
mov eax, dword [ebp - 0x34]
cmp esi, eax
jne 0x405ee4
mov ebx, dword [ebp - 0x38]
mov dword [0x428ae8], 0
xor eax, eax
mov dword [0x428aec], 0
mov edx, dword [ebx + 4]
test edx, edx
je 0x405ff8
lea edi, [edx + 4]
mov dword [edx], 0
mov dword [edx + 0x400], 0
and edi, 0xfffffffc
sub edx, edi
mov ecx, edx
add ecx, 0x404
shr ecx, 2
rep stosd dword es:[edi], eax
add ebx, 0x14
mov esi, 0x41f05c
cmp esi, ebx
jne 0x405fcc
mov esi, dword [0x428ab8]
test esi, esi
je 0x406048
mov ebx, 0x3ff
jmp 0x406026
test byte [eax + 0xd], 4
je 0x406294
sub ebx, 1
test ebx, ebx
js 0x40603e
mov eax, dword [esi + ebx*4]
cmp eax, 0xfff
ja 0x406015
lea edx, [ebx - 1]
sub ebx, eax
test eax, eax
cmove ebx, edx
test ebx, ebx
jns 0x406026
mov esi, dword [esi + 0x1000]
test esi, esi
jne 0x40600e
mov ecx, dword [0x428b2c]
test ecx, ecx
je 0x4072d4
mov ecx, dword [0x428b34]
mov eax, 1
shl eax, cl
mov dword [ebp - 0x3c], eax
mov eax, dword [0x428b24]
mov dword [0x42604c], eax
mov eax, dword [0x428b18]
mov dword [0x426050], eax
mov eax, dword [0x428b38]
test eax, eax
je 0x406143
mov dword [esp], eax
call fcn.0040da90
mov eax, dword [0x428b3c]
test eax, eax
je 0x406143
xor edi, edi
jmp 0x4060ab
add edi, 1
cmp edi, eax
jae 0x406143
mov edx, dword [0x428b38]
mov ebx, dword [edx + edi*4]
test ebx, ebx
je 0x4060a0
test bl, 1
jne 0x4060a0
mov ecx, ebx
mov edx, dword [0x428acc]
mov eax, dword [0x428ad4]
shr ecx, 0x16
mov esi, dword [ecx*4 + 0x444474]
mov ecx, ebx
shr ecx, 0xc
and ecx, 0x3ff
mov esi, dword [esi + ecx*4]
mov dword [ebp - 0x34], esi
mov esi, dword [esi + 0x14]
test esi, esi
mov dword [ebp - 0x30], esi
jne 0x4062d0
mov dword [ebp - 0x2c], eax
cmp edx, dword [ebp - 0x2c]
mov dword [0x428ad4], eax
ja 0x40611d
mov ecx, dword [0x428afc]
lea ecx, [edx + ecx*8]
call fcn.0040cff0
mov edx, dword [0x428acc]
mov dword [0x428ad4], eax
cmp eax, edx
jae 0x406100
mov dword [esp], ebx
call fcn.0040da90
mov esi, dword [0x428b00]
test esi, esi
jne 0x4062b1
mov eax, dword [0x428b3c]
add edi, 1
cmp edi, eax
jb 0x4060ab
mov ecx, dword [0x428b28]
mov eax, 1
shl eax, cl
mov dword [ebp - 0x34], eax
mov eax, dword [0x428b20]
test eax, eax
je 0x406394
mov ebx, dword [ebp - 0x34]
test ebx, ebx
je 0x406394
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x30], 0
mov esi, dword [ebp - 0x30]
mov ebx, dword [eax + esi*4]
lea edi, [esi*4]
mov dword [ebp - 0x44], edi
test ebx, ebx
je 0x40627a
mov dword [ebp - 0x2c], 0
jmp 0x4061ad
test esi, esi
mov dword [ebp - 0x2c], ebx
mov ebx, esi
je 0x40627a
mov eax, dword [ebx + 8]
mov esi, dword [ebx + 4]
not eax
mov edx, eax
and edx, 0xfffff000
mov edi, edx
sub eax, edx
shr edx, 0xc
shr edi, 0x16
and edx, 0x3ff
mov ecx, eax
mov edi, dword [edi*4 + 0x444474]
shr eax, 8
shr ecx, 3
mov edx, dword [edi + edx*4]
mov eax, dword [edx + eax*4 + 0x20]
bt eax, ecx
jb 0x4061a0
mov eax, dword [ebx]
mov ecx, dword [ebp - 0x2c]
not eax
test ecx, ecx
mov dword [eax], 0
je 0x406369
mov edx, dword [0x4287d4]
mov eax, dword [ebp - 0x2c]
test edx, edx
mov dword [eax + 4], esi
jne 0x406340
mov eax, ebx
and eax, 0xfffff000
mov edx, eax
sub ebx, eax
shr edx, 0x16
mov ecx, dword [edx*4 + 0x444474]
mov edx, eax
shr edx, 0xc
and edx, 0x3ff
mov edx, dword [ecx + edx*4]
mov ecx, ebx
shr ebx, 8
shr ecx, 3
and ecx, 0x1f
lea ebx, [edx + ebx*4]
mov eax, dword [ebx + 0x20]
bt eax, ecx
jae 0x406269
mov edi, dword [edx + 0x1c]
mov dword [ebp - 0x40], edi
mov edi, 1
shl edi, cl
mov ecx, edi
mov edi, dword [ebp - 0x40]
not ecx
and eax, ecx
sub edi, 1
mov dword [ebx + 0x20], eax
mov dword [edx + 0x1c], edi
sub dword [0x428b24], 1
test esi, esi
mov ebx, esi
jne 0x4061ad
add dword [ebp - 0x30], 1
mov eax, dword [ebp - 0x30]
cmp dword [ebp - 0x34], eax
je 0x406380
mov eax, dword [0x428b20]
jmp 0x406179
mov eax, dword [esi + 0x1008]
mov edx, 1
shl eax, 0xa
add eax, ebx
shl eax, 0xc
call fcn.004105f0
jmp 0x40601f
call fcn.0041afd0
test eax, eax
jne 0x406133
call fcn.0041afd0
test eax, eax
je 0x4062b1
jmp 0x406133
mov ecx, dword [0x428afc]
mov esi, ecx
lea ecx, [eax + 8]
lea edx, [edx + esi*8]
mov dword [ebp - 0x2c], ecx
cmp ecx, edx
jb 0x40632b
mov edx, dword [0x428a70]
mov dword [0x428b00], 5
mov dword [0x428ad8], 1
test edx, edx
je 0x406319
mov dword [esp + 4], esi
mov dword [esp], 0x422388
mov dword [ebp - 0x2c], eax
call fcn.004101f0
mov eax, dword [ebp - 0x2c]
lea ecx, [eax - 0xff8]
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x2c], ecx
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
mov dword [ecx], ebx
mov dword [ecx + 4], eax
mov eax, ecx
mov edx, dword [0x428acc]
jmp 0x4060f6
mov ecx, eax
mov edx, 1
shr ecx, 0xc
mov eax, ecx
shl edx, cl
and eax, 0x3ffff
shr eax, 5
lea eax, [eax*4 + 0xc1f0]
lock or dword [eax + 0x428a80], edx
jmp 0x406211
mov eax, dword [0x428b20]
mov edi, dword [ebp - 0x44]
mov dword [ebp - 0x38], 1
mov dword [eax + edi], esi
jmp 0x406211
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x406394
mov eax, dword [0x4287d4]
test eax, eax
jne 0x4072e0
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x407313
mov dword [ebp - 0x38], 0
mov eax, dword [0x428b2c]
mov esi, dword [ebp - 0x38]
mov esi, dword [eax + esi*4]
test esi, esi
jne 0x4063cb
jmp 0x40649d
mov esi, dword [esi + 4]
test esi, esi
je 0x406498
mov ebx, dword [esi]
not ebx
mov eax, ebx
and eax, 0xfffff000
mov edx, eax
mov edi, eax
shr edx, 0xc
shr edi, 0x16
and edx, 0x3ff
add edi, 0x6e7c
mov ecx, edx
mov dword [ebp - 0x30], edx
mov edx, ebx
sub edx, eax
mov eax, edx
shr edx, 3
and edx, 0x1f
shr eax, 8
mov dword [ebp - 0x2c], edx
mov edx, dword [edi*4 + 0x428a84]
add eax, 8
mov dword [ebp - 0x34], eax
mov edx, dword [edx + ecx*4]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x2c]
bt eax, edx
jb 0x4063c0
mov dword [esp], ebx
call dword [esi + 0x14]
mov eax, dword [0x428ad4]
mov edx, dword [0x428acc]
cmp eax, edx
jb 0x40645d
lea esi, [esi]
lea edi, [edi]
mov ecx, dword [0x428afc]
lea ecx, [edx + ecx*8]
call fcn.0040cff0
mov edx, dword [0x428acc]
mov dword [0x428ad4], eax
cmp eax, edx
jae 0x406440
mov eax, dword [edi*4 + 0x428a84]
mov edi, dword [ebp - 0x30]
mov eax, dword [eax + edi*4]
mov edi, dword [ebp - 0x34]
mov eax, dword [eax + edi*4]
mov edi, dword [ebp - 0x2c]
bt eax, edi
jae 0x4063c0
mov dword [esp + 4], ebx
mov dword [esp], str.GC_Warning:_Finalization_cycle_involving__p_n
call dword [0x42182c]
mov esi, dword [esi + 4]
test esi, esi
jne 0x4063cb
mov eax, dword [0x428b2c]
add dword [ebp - 0x38], 1
mov esi, dword [ebp - 0x38]
cmp esi, dword [ebp - 0x3c]
jne 0x4063ae
mov dword [0x428aac], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov esi, dword [ebp - 0x2c]
mov edx, dword [eax + esi*4]
lea edi, [esi*4]
mov dword [ebp - 0x34], edi
test edx, edx
je 0x406582
xor esi, esi
jmp 0x406539
mov edi, 1
shl edi, cl
or dword [ebx + eax*4 + 0x20], edi
add dword [ebx + 0x1c], 1
test esi, esi
mov ebx, dword [edx + 4]
je 0x406606
mov eax, dword [0x4287d4]
mov dword [esi + 4], ebx
test eax, eax
jne 0x40659c
mov eax, dword [0x428b30]
sub dword [0x428b10], 1
mov dword [edx + 4], eax
mov dword [0x428b30], edx
mov eax, dword [edx + 0x10]
add eax, dword [0x428aac]
not dword [edx]
mov edx, ebx
add eax, 0x18
test edx, edx
mov dword [0x428aac], eax
je 0x406582
mov eax, dword [edx]
not eax
mov ecx, eax
and ecx, 0xfffff000
mov ebx, ecx
sub eax, ecx
shr ebx, 0x16
mov edi, dword [ebx*4 + 0x444474]
mov ebx, ecx
mov ecx, eax
shr ebx, 0xc
shr eax, 8
shr ecx, 3
and ebx, 0x3ff
and ecx, 0x1f
mov ebx, dword [edi + ebx*4]
mov edi, dword [ebx + eax*4 + 0x20]
bt edi, ecx
jae 0x4064e1
mov esi, edx
mov edx, dword [edx + 4]
test edx, edx
jne 0x406539
add dword [ebp - 0x2c], 1
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x3c], eax
je 0x40661f
mov eax, dword [0x428b2c]
jmp 0x4064c5
mov ecx, esi
mov edi, 1
shr ecx, 0xc
mov eax, ecx
shl edi, cl
and eax, 0x3ffff
shr eax, 5
lea eax, [eax*4 + 0xc1f0]
lock or dword [eax + 0x428a80], edi
mov eax, dword [0x4287d4]
mov ecx, dword [0x428b30]
sub dword [0x428b10], 1
test eax, eax
mov dword [edx + 4], ecx
je 0x40651a
mov ecx, edx
mov edi, 1
shr ecx, 0xc
mov eax, ecx
shl edi, cl
and eax, 0x3ffff
shr eax, 5
lea eax, [eax*4 + 0xc1f0]
lock or dword [eax + 0x428a80], edi
jmp 0x40651a
mov eax, dword [0x428b2c]
mov edi, dword [ebp - 0x34]
mov dword [ebp - 0x30], 1
mov dword [eax + edi], ebx
mov eax, dword [0x4287d4]
jmp 0x4065c5
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x406634
mov edi, dword [0x4287d4]
test edi, edi
jne 0x407322
mov ecx, dword [0x428b28]
mov eax, 1
shl eax, cl
mov esi, eax
mov dword [ebp - 0x44], eax
mov eax, dword [0x428b20]
test eax, eax
je 0x4068ad
test esi, esi
je 0x4068ad
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
mov esi, dword [ebp - 0x38]
lea edi, [esi*4]
mov dword [ebp - 0x40], edi
mov edi, dword [eax + esi*4]
test edi, edi
je 0x40678b
mov dword [ebp - 0x34], 0
nop
lea esi, [esi]
mov esi, dword [0x4287b8]
mov eax, dword [edi + 4]
mov ebx, dword [edi]
test esi, esi
mov dword [ebp - 0x2c], eax
not ebx
je 0x406779
mov edx, ebx
mov eax, ebx
shr edx, 0x16
and eax, 0xfffff000
mov ecx, dword [edx*4 + 0x444474]
mov edx, ebx
shr edx, 0xc
and edx, 0x3ff
mov edx, dword [ecx + edx*4]
test edx, edx
je 0x406779
cmp edx, 0xfff
mov ecx, edx
ja 0x406828
nop
shl ecx, 0xc
sub eax, ecx
mov edx, eax
shr edx, 0x16
mov ecx, dword [edx*4 + 0x444474]
mov edx, eax
shr edx, 0xc
and edx, 0x3ff
mov edx, dword [ecx + edx*4]
cmp edx, 0xfff
mov ecx, edx
jbe 0x4066e0
mov esi, eax
test byte [edx + 0xd], 4
jne 0x406779
mov edx, dword [edx + 0x10]
mov ecx, eax
and eax, 0xffc
and ecx, 0xfffffffc
add esi, 0x1000
mov dword [ebp - 0x30], edx
xor edx, edx
div dword [ebp - 0x30]
sub ecx, edx
mov edx, dword [ebp - 0x30]
lea eax, [ecx + edx]
cmp esi, eax
jae 0x406740
cmp edx, 0x1000
jbe 0x406779
cmp ebx, eax
jae 0x406779
test ecx, ecx
je 0x406779
mov eax, ecx
and eax, 0xfffff000
mov ebx, eax
sub ecx, eax
shr eax, 0xc
shr ebx, 0x16
and eax, 0x3ff
mov edx, ecx
mov ebx, dword [ebx*4 + 0x444474]
shr ecx, 8
shr edx, 3
mov eax, dword [ebx + eax*4]
mov eax, dword [eax + ecx*4 + 0x20]
bt eax, edx
jae 0x4067a5
mov esi, dword [ebp - 0x2c]
test esi, esi
je 0x40678b
mov dword [ebp - 0x34], edi
mov edi, dword [ebp - 0x2c]
jmp 0x406690
add dword [ebp - 0x38], 1
mov eax, dword [ebp - 0x38]
cmp dword [ebp - 0x44], eax
je 0x406874
mov eax, dword [0x428b20]
jmp 0x406669
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x406831
mov edx, dword [0x4287d4]
mov eax, dword [ebp - 0x34]
mov esi, dword [ebp - 0x2c]
test edx, edx
mov dword [eax + 4], esi
jne 0x40684b
mov eax, edi
and eax, 0xfffff000
mov edx, eax
sub edi, eax
shr edx, 0x16
mov ecx, dword [edx*4 + 0x444474]
mov edx, eax
shr edx, 0xc
and edx, 0x3ff
mov edx, dword [ecx + edx*4]
mov ecx, edi
shr edi, 8
shr ecx, 3
and ecx, 0x1f
lea ebx, [edx + edi*4]
mov eax, dword [ebx + 0x20]
bt eax, ecx
jae 0x406819
mov edi, 1
mov esi, dword [edx + 0x1c]
shl edi, cl
mov ecx, edi
not ecx
sub esi, 1
and eax, ecx
mov dword [ebx + 0x20], eax
mov dword [edx + 0x1c], esi
sub dword [0x428b24], 1
mov edi, dword [ebp - 0x34]
jmp 0x406779
mov esi, eax
mov eax, ebx
jmp 0x40670b
mov eax, dword [0x428b20]
mov esi, dword [ebp - 0x40]
mov ebx, dword [ebp - 0x2c]
mov dword [ebp - 0x3c], 1
mov dword [eax + esi], ebx
jmp 0x4067c7
mov ecx, eax
mov edx, 1
shr ecx, 0xc
mov eax, ecx
shl edx, cl
and eax, 0x3ffff
shr eax, 5
lea eax, [eax*4 + 0xc1f0]
lock or dword [eax + 0x428a80], edx
jmp 0x4067c7
mov ebx, dword [ebp - 0x3c]
test ebx, ebx
je 0x4068ad
mov ecx, dword [0x4287d4]
test ecx, ecx
je 0x4068ad
mov ecx, dword [0x428b20]
shr ecx, 0xc
mov eax, ecx
and eax, 0x3ffff
shr eax, 5
lea edx, [eax*4 + 0xc1f0]
mov eax, 1
shl eax, cl
lock or dword [edx + 0x428a80], eax
mov eax, dword [0x428b3c]
mov ecx, dword [0x428b38]
test eax, eax
lea ebx, [ecx + eax*4]
je 0x406907
mov eax, dword [ecx]
test al, 1
je 0x406900
not eax
mov edx, eax
and edx, 0xfffff000
mov edi, edx
sub eax, edx
shr edx, 0xc
shr edi, 0x16
and edx, 0x3ff
mov esi, eax
mov edi, dword [edi*4 + 0x444474]
shr eax, 8
shr esi, 3
mov edx, dword [edi + edx*4]
mov eax, dword [edx + eax*4 + 0x20]
bt eax, esi
jb 0x406900
mov dword [ecx], 0
add ecx, 4
cmp ecx, ebx
jne 0x4068bf
mov ecx, dword [0x428b1c]
mov eax, 1
shl eax, cl
mov dword [ebp - 0x38], eax
mov eax, dword [0x428b14]
test eax, eax
je 0x406d1c
mov edx, dword [ebp - 0x38]
test edx, edx
je 0x406d1c
mov dword [ebp - 0x30], 0
mov esi, dword [ebp - 0x30]
mov dword [ebp - 0x34], 0
mov ebx, dword [eax + esi*4]
lea edi, [esi*4]
mov dword [ebp - 0x40], edi
test ebx, ebx
je 0x406a3f
mov dword [ebp - 0x2c], 0
jmp 0x40696d
test esi, esi
mov dword [ebp - 0x2c], ebx
mov ebx, esi
je 0x406a3a
mov eax, dword [ebx + 8]
mov esi, dword [ebx + 4]
not eax
mov edx, eax
and edx, 0xfffff000
mov edi, edx
sub eax, edx
shr edx, 0xc
shr edi, 0x16
and edx, 0x3ff
mov ecx, eax
mov edi, dword [edi*4 + 0x444474]
shr eax, 8
shr ecx, 3
mov edx, dword [edi + edx*4]
mov eax, dword [edx + eax*4 + 0x20]
bt eax, ecx
jb 0x406960
mov eax, dword [ebx]
not eax
mov dword [eax], 0
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x406c8a
mov edi, dword [0x4287d4]
mov eax, dword [ebp - 0x2c]
test edi, edi
mov dword [eax + 4], esi
jne 0x406c61
mov eax, ebx
and eax, 0xfffff000
mov edx, eax
sub ebx, eax
shr edx, 0x16
mov ecx, dword [edx*4 + 0x444474]
mov edx, eax
shr edx, 0xc
and edx, 0x3ff
mov edx, dword [ecx + edx*4]
mov ecx, ebx
shr ebx, 8
shr ecx, 3
and ecx, 0x1f
lea ebx, [edx + ebx*4]
mov eax, dword [ebx + 0x20]
bt eax, ecx
jae 0x406a29
mov edi, dword [edx + 0x1c]
mov dword [ebp - 0x3c], edi
mov edi, 1
shl edi, cl
mov ecx, edi
mov edi, dword [ebp - 0x3c]
not ecx
and eax, ecx
sub edi, 1
mov dword [ebx + 0x20], eax
mov dword [edx + 0x1c], edi
sub dword [0x428b18], 1
test esi, esi
mov ebx, esi
jne 0x40696d
mov eax, dword [0x428b14]
add dword [ebp - 0x30], 1
mov esi, dword [ebp - 0x30]
cmp dword [ebp - 0x38], esi
jne 0x406940
mov ebx, dword [ebp - 0x34]
test ebx, ebx
je 0x406a64
mov ecx, dword [0x4287d4]
test ecx, ecx
jne 0x40734f
mov ecx, dword [0x428b1c]
mov edx, 1
shl edx, cl
mov dword [ebp - 0x3c], edx
test eax, eax
je 0x406d1c
mov edx, dword [ebp - 0x3c]
test edx, edx
je 0x406d1c
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x38], 0
mov esi, dword [ebp - 0x38]
lea edi, [esi*4]
mov dword [ebp - 0x44], edi
mov edi, dword [eax + esi*4]
test edi, edi
je 0x406bbb
mov dword [ebp - 0x34], 0
lea esi, [esi]
lea edi, [edi]
mov eax, dword [edi + 4]
mov ebx, dword [edi]
mov dword [ebp - 0x2c], eax
mov eax, dword [0x4287b8]
not ebx
test eax, eax
je 0x406ba9
mov edx, ebx
mov eax, ebx
shr edx, 0x16
and eax, 0xfffff000
mov ecx, dword [edx*4 + 0x444474]
mov edx, ebx
shr edx, 0xc
and edx, 0x3ff
mov edx, dword [ecx + edx*4]
test edx, edx
je 0x406ba9
cmp edx, 0xfff
mov ecx, edx
ja 0x406c58
nop
shl ecx, 0xc
sub eax, ecx
mov edx, eax
shr edx, 0x16
mov ecx, dword [edx*4 + 0x444474]
mov edx, eax
shr edx, 0xc
and edx, 0x3ff
mov edx, dword [ecx + edx*4]
cmp edx, 0xfff
mov ecx, edx
jbe 0x406b10
mov esi, eax
test byte [edx + 0xd], 4
jne 0x406ba9
mov edx, dword [edx + 0x10]
mov ecx, eax
and eax, 0xffc
and ecx, 0xfffffffc
add esi, 0x1000
mov dword [ebp - 0x30], edx
xor edx, edx
div dword [ebp - 0x30]
sub ecx, edx
mov edx, dword [ebp - 0x30]
lea eax, [ecx + edx]
cmp esi, eax
jae 0x406b70
cmp edx, 0x1000
jbe 0x406ba9
test ecx, ecx
je 0x406ba9
cmp ebx, eax
jae 0x406ba9
mov eax, ecx
and eax, 0xfffff000
mov ebx, eax
sub ecx, eax
shr eax, 0xc
shr ebx, 0x16
and eax, 0x3ff
mov edx, ecx
mov ebx, dword [ebx*4 + 0x444474]
shr ecx, 8
shr edx, 3
mov eax, dword [ebx + eax*4]
mov eax, dword [eax + ecx*4 + 0x20]
bt eax, edx
jae 0x406bd5
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
je 0x406bbb
mov dword [ebp - 0x34], edi
mov edi, dword [ebp - 0x2c]
jmp 0x406ac0
add dword [ebp - 0x38], 1
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x3c]
je 0x406ce4
mov eax, dword [0x428b14]
jmp 0x406a95
mov esi, dword [ebp - 0x34]
test esi, esi
je 0x406cca
mov ebx, dword [0x4287d4]
mov eax, dword [ebp - 0x34]
mov esi, dword [ebp - 0x2c]
test ebx, ebx
mov dword [eax + 4], esi
jne 0x406ca1
mov eax, edi
and eax, 0xfffff000
mov edx, eax
sub edi, eax
shr edx, 0x16
mov ecx, dword [edx*4 + 0x444474]
mov edx, eax
shr edx, 0xc
and edx, 0x3ff
mov edx, dword [ecx + edx*4]
mov ecx, edi
shr edi, 8
shr ecx, 3
and ecx, 0x1f
lea ebx, [edx + edi*4]
mov eax, dword [ebx + 0x20]
bt eax, ecx
jae 0x406c49
mov edi, 1
mov esi, dword [edx + 0x1c]
shl edi, cl
mov ecx, edi
not ecx
sub esi, 1
and eax, ecx
mov dword [ebx + 0x20], eax
mov dword [edx + 0x1c], esi
sub dword [0x428b18], 1
mov edi, dword [ebp - 0x34]
jmp 0x406ba9
mov esi, eax
mov eax, ebx
jmp 0x406b3b
mov ecx, eax
mov edx, 1
shr ecx, 0xc
mov eax, ecx
shl edx, cl
and eax, 0x3ffff
shr eax, 5
lea eax, [eax*4 + 0xc1f0]
lock or dword [eax + 0x428a80], edx
jmp 0x4069d1
mov eax, dword [0x428b14]
mov edi, dword [ebp - 0x40]
mov dword [ebp - 0x34], 1
mov dword [eax + edi], esi
jmp 0x4069d1
mov ecx, eax
mov edx, 1
shr ecx, 0xc
mov eax, ecx
shl edx, cl
and eax, 0x3ffff
shr eax, 5
lea eax, [eax*4 + 0xc1f0]
lock or dword [eax + 0x428a80], edx
jmp 0x406bf7
mov eax, dword [0x428b14]
mov esi, dword [ebp - 0x44]
mov ebx, dword [ebp - 0x2c]
mov dword [ebp - 0x40], 1
mov dword [eax + esi], ebx
jmp 0x406bf7
mov edx, dword [ebp - 0x40]
test edx, edx
je 0x406d1c
mov eax, dword [0x4287d4]
test eax, eax
je 0x406d1c
mov ecx, dword [0x428b14]
shr ecx, 0xc
mov eax, ecx
and eax, 0x3ffff
shr eax, 5
lea edx, [eax*4 + 0xc1f0]
mov eax, 1
shl eax, cl
lock or dword [edx + 0x428a80], eax
mov eax, dword [0x4287c4]
test eax, eax
jne 0x407020
mov eax, dword [0x428a70]
mov dword [ebp - 0x50], 0
test eax, eax
jne 0x407063
mov eax, dword [0x4281dc]
test eax, eax
jne 0x407079
mov eax, dword [0x4287dc]
mov dword [ebp - 0x48], 0x41f020
mov esi, dword [ebp - 0x48]
mov dword [ebp - 0x44], 0x41f020
mov dword [ebp - 0x34], eax
xor eax, eax
mov edx, dword [esi]
lea esi, [edx + 4]
mov dword [ebp - 0x3c], esi
lea esi, [edx + 0x404]
mov dword [ebp - 0x40], esi
lea esi, [esi]
lea edi, [edi]
mov edi, dword [ebp - 0x3c]
mov edx, dword [edi]
test edx, edx
je 0x406e45
mov edi, edx
and edi, 0xfffff000
mov eax, edi
shr eax, 0x16
mov ecx, dword [eax*4 + 0x444474]
mov eax, edi
shr eax, 0xc
and eax, 0x3ff
mov ebx, dword [ecx + eax*4]
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x2c], eax
lea esi, [esi]
lea edi, [edi]
mov eax, edx
sub eax, edi
mov ecx, eax
shr eax, 8
lea esi, [ebx + eax*4]
shr ecx, 3
and ecx, 0x1f
mov eax, dword [esi + 0x20]
bt eax, ecx
mov dword [ebp - 0x30], eax
jae 0x406dff
mov eax, dword [ebx + 0x1c]
mov dword [ebp - 0x38], eax
mov eax, 1
shl eax, cl
mov ecx, eax
mov eax, dword [ebp - 0x30]
not ecx
and eax, ecx
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0x38]
sub eax, 1
mov dword [ebx + 0x1c], eax
mov edx, dword [edx]
mov esi, dword [ebp - 0x2c]
sub dword [ebp - 0x34], esi
test edx, edx
je 0x406e40
mov eax, edx
and eax, 0xfffff000
cmp edi, eax
je 0x406e36
mov ecx, eax
shr ecx, 0x16
mov ebx, dword [ecx*4 + 0x444474]
mov ecx, eax
shr ecx, 0xc
and ecx, 0x3ff
mov ebx, dword [ebx + ecx*4]
mov edi, dword [ebx + 0x10]
mov dword [ebp - 0x2c], edi
mov edi, eax
jmp 0x406dc0
mov eax, 1
add dword [ebp - 0x3c], 4
mov esi, dword [ebp - 0x3c]
cmp dword [ebp - 0x40], esi
jne 0x406d80
add dword [ebp - 0x48], 0x14
mov edi, 0x41f05c
mov esi, dword [ebp - 0x48]
cmp edi, esi
jne 0x406d65
test al, al
jne 0x40715a
cmp dword [0x428a70], 2
je 0x407140
mov eax, dword [ebp - 0x44]
mov dword [0x428ae8], 0
mov dword [0x428aec], 0
mov edi, dword [eax + 4]
mov esi, dword [eax + 8]
test edi, edi
je 0x406efe
mov ecx, dword [eax]
lea ebx, [ecx + 0x404]
cmp ecx, ebx
jae 0x406ed5
nop
lea esi, [esi]
mov eax, dword [ecx]
test eax, eax
je 0x406ece
test esi, esi
je 0x406ff0
mov edx, ecx
mov dword [edx], 0
mov edx, eax
mov eax, dword [eax]
test eax, eax
jne 0x406ec0
add ecx, 4
cmp ecx, ebx
jb 0x406eb0
lea edx, [edi + 4]
mov dword [edi], 0
mov dword [edi + 0x400], 0
xor eax, eax
and edx, 0xfffffffc
sub edi, edx
mov ecx, edi
mov edi, edx
add ecx, 0x404
shr ecx, 2
rep stosd dword es:[edi], eax
add dword [ebp - 0x44], 0x14
mov esi, 0x41f05c
mov eax, dword [ebp - 0x44]
cmp esi, eax
jne 0x406e95
mov esi, dword [0x428ab8]
test esi, esi
je 0x406f52
mov ebx, 0x3ff
jmp 0x406f30
test byte [eax + 0xd], 4
je 0x407006
sub ebx, 1
test ebx, ebx
js 0x406f48
mov eax, dword [esi + ebx*4]
cmp eax, 0xfff
ja 0x406f1f
lea edx, [ebx - 1]
sub ebx, eax
test eax, eax
cmove ebx, edx
test ebx, ebx
jns 0x406f30
mov esi, dword [esi + 0x1000]
test esi, esi
jne 0x406f18
mov eax, dword [0x428a70]
test eax, eax
jne 0x4071e3
mov edi, dword [0x4281c0]
test edi, edi
je 0x407167
mov eax, dword [0x428a80]
sub eax, dword [0x428a90]
mov dword [0x426048], 0
mov dword [0x426054], eax
mov eax, dword [0x428aa4]
add dword [0x428a9c], eax
mov eax, dword [0x426038]
mov dword [0x426044], 0
mov dword [0x4281c0], 0
mov dword [0x428aa4], 0
mov dword [0x428aa8], 0
mov dword [0x426040], eax
mov eax, dword [0x428a70]
mov dword [0x428ab0], 0
mov dword [0x428ab4], 0
test eax, eax
jne 0x407090
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [ecx], 0
add ecx, 4
cmp ecx, ebx
jb 0x406eb0
jmp 0x406ed5
mov eax, dword [esi + 0x1008]
xor edx, edx
shl eax, 0xa
add eax, ebx
shl eax, 0xc
call fcn.004105f0
jmp 0x406f29
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov edx, eax
shr edx, 8
xor edx, eax
movzx edx, dl
mov edx, dword [edx*4 + 0x4282c0]
test edx, edx
je 0x407139
cmp dword [edx + 8], eax
jne 0x4072a7
mov eax, dword [edx + 4]
mov dword [ebp - 0x50], 0
mov byte [eax + 0x10], 0
mov eax, dword [0x428a70]
test eax, eax
je 0x406d3d
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x50], eax
mov eax, dword [0x4281dc]
test eax, eax
je 0x406d4a
mov dword [esp], str.Back_height_not_available:_Rebuild_collector_with__DMAKE_BACK_GRAPH_n
call fcn.00410340
jmp 0x406d4a
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, eax
mov eax, dword [0x428b18]
mov dword [esp], str._lu_finalization_entries___lu__lu_short_long_disappearing_links_alive_n
mov dword [esp + 0xc], eax
mov eax, dword [0x428b24]
mov dword [esp + 8], eax
mov eax, dword [0x428b10]
mov dword [esp + 4], eax
call fcn.004101f0
mov edx, dword [0x428b30]
xor eax, eax
test edx, edx
je 0x4070d5
mov edx, dword [edx + 4]
add eax, 1
test edx, edx
jne 0x4070cb
mov edx, dword [0x426050]
sub edx, dword [0x428b18]
mov dword [esp + 4], eax
mov dword [esp], str._lu_finalization_ready_objects___ld__ld_short_long_links_cleared_n
mov dword [esp + 0xc], edx
mov edx, dword [0x42604c]
sub edx, dword [0x428b24]
mov dword [esp + 8], edx
call fcn.004101f0
mov eax, dword [ebp - 0x50]
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
mov dword [esp], str.Finalize_and_initiate_sweep_took__lu_ms__lu_ns___lu_ms__lu_ns_n
sub ebx, eax
sub eax, dword [ebp - 0x4c]
mov dword [esp + 0xc], ebx
mov dword [esp + 4], eax
call fcn.004101f0
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [4]
ud2
mov eax, dword [0x4287dc]
mov dword [esp], str.Bytes_recovered_before_sweep___f.l._count___ld_n
mov dword [esp + 4], eax
call fcn.004101f0
jmp 0x406e7e
mov eax, dword [ebp - 0x34]
mov dword [0x4287dc], eax
jmp 0x406e71
mov esi, dword [0x4287b4]
mov ecx, dword [0x428a80]
sub ecx, dword [0x426054]
mov eax, dword [0x4280e0]
test esi, esi
jne 0x407192
mov dword [ebp - 0x1c], ebp
mov esi, dword [0x4281d8]
mov eax, dword [ebp - 0x1c]
sub esi, eax
mov eax, esi
mov edx, dword [0x428aec]
add eax, dword [0x428ae8]
mov ebx, dword [0x4287d8]
shr edx, 2
add edx, dword [0x4289d4]
lea eax, [edx + eax*2]
xor edx, edx
div dword [0x421824]
mov edx, eax
shr edx, 1
test ebx, ebx
cmovne eax, edx
mov edx, 1
test eax, eax
cmove eax, edx
add eax, dword [0x428a90]
cmp ecx, eax
seta al
movzx eax, al
mov dword [0x426048], eax
jmp 0x406f87
mov eax, dword [0x428aa0]
mov edx, dword [0x428a80]
mov dword [esp], str.GC__lu_freed__ld_bytes__heap__lu_KiB____lu_KiB_internal__n
add eax, 0x1cbf3
sub eax, edx
shr eax, 0xa
mov dword [esp + 0x10], eax
lea eax, [edx + 0x1ff]
shr eax, 0xa
mov dword [esp + 0xc], eax
mov eax, dword [0x4287dc]
mov dword [esp + 8], eax
mov eax, dword [0x428a14]
mov dword [esp + 4], eax
call fcn.004101f0
mov eax, dword [0x428a70]
test eax, eax
je 0x406f5f
mov eax, dword [0x428aa4]
add eax, dword [0x428aec]
mov ecx, dword [0x428ae8]
mov ebx, dword [0x428a80]
lea edi, [eax + 0x1ff]
lea esi, [ecx + 0x1ff]
add ecx, eax
xor eax, eax
shr edi, 0xa
shr esi, 0xa
cmp ecx, ebx
jae 0x407274
cmp ecx, 0x28f5c27
ja 0x407291
imul eax, ecx, 0x64
xor edx, edx
div ebx
mov dword [esp + 0xc], edi
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp], 0x4224a0
call fcn.004101f0
jmp 0x406f5f
mov eax, ebx
mov edx, 0x51eb851f
mul edx
mov eax, ecx
mov ebx, edx
xor edx, edx
shr ebx, 5
div ebx
jmp 0x407274
mov edx, dword [edx]
test edx, edx
je 0x407139
cmp eax, dword [edx + 8]
je 0x407048
jmp 0x4072a7
call fcn.00419910
jmp 0x405ec5
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x4c], eax
jmp 0x405e9e
mov dword [ebp - 0x3c], 0
jmp 0x406066
mov ecx, dword [0x428b20]
shr ecx, 0xc
mov eax, ecx
and eax, 0x3ffff
shr eax, 5
lea edx, [eax*4 + 0xc1f0]
mov eax, 1
shl eax, cl
lock or dword [edx + 0x428a80], eax
mov eax, dword [ebp - 0x3c]
test eax, eax
jne 0x40639f
mov dword [0x428aac], 0
jmp 0x406634
mov ecx, dword [0x428b2c]
shr ecx, 0xc
mov eax, ecx
and eax, 0x3ffff
shr eax, 5
lea edx, [eax*4 + 0xc1f0]
mov eax, 1
shl eax, cl
lock or dword [edx + 0x428a80], eax
jmp 0x406634
shr eax, 0xc
mov edx, eax
mov ecx, eax
and edx, 0x3ffff
shr edx, 5
lea ebx, [edx*4 + 0xc1f0]
mov edx, 1
mov eax, edx
shl eax, cl
lock or dword [ebx + 0x428a80], eax
mov ecx, dword [0x428b1c]
mov eax, dword [0x428b14]
shl edx, cl
mov dword [ebp - 0x3c], edx
jmp 0x406a74