Function at 0x406950
Capabilities:
Print debug messages
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x475d40
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x60
push ebx
push esi
mov ebx, ecx
push 0x47e1c1
lea ecx, [esp + 0x18]
mov dword [esp + 0xc], ebx
call fcn.004025d0
mov eax, dword [ebx + 0x1bb8]
mov ecx, dword [eax - 0xc]
test ecx, ecx
lea esi, [ebx + 0x1bb8]
mov dword [esp + 0x70], 0
jne 0x4069df
push 0x47e670
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov dword [esp + 0x70], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4076f0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
pop esi
pop ebx
mov ecx, dword [esp + 0x60]
mov dword fs:[0], ecx
add esp, 0x6c
ret
mov eax, dword [esi]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x4069ed
or eax, 0xffffffff
jmp 0x406a06
push str.threadcount
push eax
call fcn.0045111f
add esp, 8
test eax, eax
jne 0x406a04
or eax, 0xffffffff
jmp 0x406a06
sub eax, dword [esi]
add eax, 0xd
push eax
push 0
mov ecx, esi
call fcn.00405280
mov eax, dword [esi]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x406a21
or eax, 0xffffffff
jmp 0x406a3a
push str._tpp
push eax
call fcn.0045111f
add esp, 8
test eax, eax
jne 0x406a38
or eax, 0xffffffff
jmp 0x406a3a
sub eax, dword [esi]
push edi
push eax
lea eax, [esp + 0x18]
push eax
mov ecx, esi
call fcn.004034f0
mov eax, dword [eax]
push eax
call fcn.0045138f
mov edi, eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
add esp, 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406a73
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
cmp edi, dword [ebx + 0x1bac]
jne 0x406ac1
mov al, byte [ebx + 0x1bbc]
test al, al
jne 0x406ac1
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov dword [esp + 0x74], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4076ef
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x60]
mov dword fs:[0], ecx
add esp, 0x6c
ret
mov eax, 0x66666667
imul edi
sar edx, 2
mov eax, edx
shr eax, 0x1f
lea edx, [edx + eax + 1]
cmp edx, 0x3e7
mov dword [ebx + 0x1bac], edi
mov dword [ebx + 0x1ba4], edx
jle 0x406af2
mov dword [ebx + 0x1ba4], 0x3e7
push ebp
xor ebp, ebp
lea edi, [ebx + 0x1500]
jmp 0x406b00
cmp ebp, dword [ebx + 0x1ba4]
mov ecx, edi
jl 0x406b0e
push 0
jmp 0x406b1d
push 1
call fcn.004621ed
test eax, eax
jne 0x406b22
push 1
mov ecx, edi
call fcn.00440200
inc ebp
add edi, 0x74
cmp ebp, 7
jb 0x406b00
mov eax, dword [esi]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x406b3b
or eax, 0xffffffff
xor ebp, ebp
jmp 0x406b56
push str.tpp
push eax
call fcn.0045111f
xor ebp, ebp
add esp, 8
cmp eax, ebp
jne 0x406b54
or eax, 0xffffffff
jmp 0x406b56
sub eax, dword [esi]
add eax, 5
push eax
push ebp
mov ecx, esi
call fcn.00405280
mov eax, dword [esi]
mov ecx, dword [eax - 0xc]
cmp ecx, ebp
jge 0x406b70
or eax, 0xffffffff
jmp 0x406b89
push 0x47e64c
push eax
call fcn.0045111f
add esp, 8
cmp eax, ebp
jne 0x406b87
or eax, 0xffffffff
jmp 0x406b89
sub eax, dword [esi]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov ecx, esi
call fcn.004034f0
mov eax, dword [eax]
push eax
call fcn.0045138f
mov dword [ebx + 0x1bb0], eax
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
add esp, 4
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x406bc5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov edi, dword [ebx + 0x1830]
cmp edi, ebp
je 0x406c72
mov ebp, dword [ebx + 0x1834]
cmp edi, ebp
je 0x406c61
add edi, 0xc
mov eax, dword [edi + 4]
sub eax, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406c01
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [edi]
sub eax, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406c1d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [edi - 4]
sub eax, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406c3a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [edi - 8]
sub eax, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406c57
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
add edi, 0x18
lea eax, [edi - 0xc]
cmp eax, ebp
jne 0x406be4
mov eax, dword [ebx + 0x1830]
push eax
call fcn.00460109
add esp, 4
xor ebp, ebp
mov dword [ebx + 0x1830], ebp
mov dword [ebx + 0x1834], ebp
mov dword [ebx + 0x1838], ebp
call fcn.004601e6
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x5c], eax
call fcn.004601e6
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x60], eax
call fcn.004601e6
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x64], eax
call fcn.004601e6
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x68], eax
cmp dword [ebx + 0x1bb0], ebp
mov byte [esp + 0x78], 1
mov dword [esp + 0x18], ebp
jle 0x4073d1
mov eax, dword [esi]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x406cf3
or eax, 0xffffffff
jmp 0x406d0c
push str._item_tid
push eax
call fcn.0045111f
add esp, 8
test eax, eax
jne 0x406d0a
or eax, 0xffffffff
jmp 0x406d0c
sub eax, dword [esi]
lea ebp, [eax + 0xb]
test ebp, ebp
jge 0x406d15
xor ebp, ebp
mov eax, dword [esi]
mov edi, dword [eax - 0xc]
cmp ebp, edi
jle 0x406d20
mov ebp, edi
test ebp, ebp
jle 0x406d68
mov ecx, dword [eax - 4]
sub edi, ebp
cmp ecx, 1
lea ebx, [edi + 1]
jle 0x406d3c
mov eax, dword [eax - 0xc]
push eax
mov ecx, esi
call fcn.004019f0
mov eax, dword [esi]
push ebx
lea ecx, [eax + ebp]
push ecx
push eax
call fcn.00450500
add esp, 0xc
test edi, edi
jl 0x407412
mov eax, dword [esi]
cmp edi, dword [eax - 8]
jg 0x407412
mov dword [eax - 0xc], edi
mov edx, dword [esi]
mov byte [edi + edx], 0
mov eax, dword [esi]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x406d76
or eax, 0xffffffff
jmp 0x406d8f
push str._author
push eax
call fcn.0045111f
add esp, 8
test eax, eax
jne 0x406d8d
or eax, 0xffffffff
jmp 0x406d8f
sub eax, dword [esi]
push eax
lea eax, [esp + 0x18]
push eax
mov ecx, esi
call fcn.004034f0
mov eax, dword [eax]
push eax
call fcn.0045138f
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
add esp, 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406dc9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esi]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x406dd7
or eax, 0xffffffff
jmp 0x406df0
push str.author
push eax
call fcn.0045111f
add esp, 8
test eax, eax
jne 0x406dee
or eax, 0xffffffff
jmp 0x406df0
sub eax, dword [esi]
lea ebp, [eax + 8]
test ebp, ebp
jge 0x406df9
xor ebp, ebp
mov eax, dword [esi]
mov edi, dword [eax - 0xc]
cmp ebp, edi
jle 0x406e04
mov ebp, edi
test ebp, ebp
jle 0x406e4c
mov ecx, dword [eax - 4]
sub edi, ebp
cmp ecx, 1
lea ebx, [edi + 1]
jle 0x406e20
mov eax, dword [eax - 0xc]
push eax
mov ecx, esi
call fcn.004019f0
mov eax, dword [esi]
push ebx
lea ecx, [eax + ebp]
push ecx
push eax
call fcn.00450500
add esp, 0xc
test edi, edi
jl 0x407412
mov eax, dword [esi]
cmp edi, dword [eax - 8]
jg 0x407412
mov dword [eax - 0xc], edi
mov edx, dword [esi]
mov byte [edi + edx], 0
mov eax, dword [esi]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x406e5a
or eax, 0xffffffff
jmp 0x406e73
push str._subject
push eax
call fcn.0045111f
add esp, 8
test eax, eax
jne 0x406e71
or eax, 0xffffffff
jmp 0x406e73
sub eax, dword [esi]
push eax
lea eax, [esp + 0x24]
push eax
mov ecx, esi
call fcn.004034f0
mov eax, dword [eax]
mov edi, dword [esp + 0x5c]
lea ecx, [eax - 0x10]
add edi, 0xfffffff0
cmp ecx, edi
mov byte [esp + 0x78], 2
je 0x406edc
mov edx, dword [edi + 0xc]
test edx, edx
lea ebp, [edi + 0xc]
jl 0x406ece
mov edx, dword [ecx]
cmp edx, dword [edi]
jne 0x406ece
push ecx
call fcn.00401700
mov ebx, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebp], eax
dec eax
test eax, eax
jg 0x406ec5
mov ecx, dword [edi]
mov edx, dword [ecx]
push edi
call dword [edx + 4]
add ebx, 0x10
mov dword [esp + 0x5c], ebx
jmp 0x406edc
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x64]
call fcn.00401fe0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x78], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406eff
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esi]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x406f0d
or eax, 0xffffffff
jmp 0x406f26
push str.subject
push eax
call fcn.0045111f
add esp, 8
test eax, eax
jne 0x406f24
or eax, 0xffffffff
jmp 0x406f26
sub eax, dword [esi]
lea ebp, [eax + 9]
test ebp, ebp
jge 0x406f2f
xor ebp, ebp
mov eax, dword [esi]
mov edi, dword [eax - 0xc]
cmp ebp, edi
jle 0x406f3a
mov ebp, edi
test ebp, ebp
jle 0x406f82
mov ecx, dword [eax - 4]
sub edi, ebp
cmp ecx, 1
lea ebx, [edi + 1]
jle 0x406f56
mov eax, dword [eax - 0xc]
push eax
mov ecx, esi
call fcn.004019f0
mov eax, dword [esi]
push ebx
lea ecx, [eax + ebp]
push ecx
push eax
call fcn.00450500
add esp, 0xc
test edi, edi
jl 0x407412
mov eax, dword [esi]
cmp edi, dword [eax - 8]
jg 0x407412
mov dword [eax - 0xc], edi
mov edx, dword [esi]
mov byte [edi + edx], 0
mov eax, dword [esi]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x406f90
or eax, 0xffffffff
jmp 0x406fa9
push str._lastpost
push eax
call fcn.0045111f
add esp, 8
test eax, eax
jne 0x406fa7
or eax, 0xffffffff
jmp 0x406fa9
sub eax, dword [esi]
push eax
lea eax, [esp + 0x28]
push eax
mov ecx, esi
call fcn.004034f0
mov eax, dword [eax]
mov edi, dword [esp + 0x60]
lea ecx, [eax - 0x10]
add edi, 0xfffffff0
cmp ecx, edi
mov byte [esp + 0x78], 3
je 0x407012
mov edx, dword [edi + 0xc]
test edx, edx
lea ebp, [edi + 0xc]
jl 0x407004
mov edx, dword [ecx]
cmp edx, dword [edi]
jne 0x407004
push ecx
call fcn.00401700
mov ebx, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebp], eax
dec eax
test eax, eax
jg 0x406ffb
mov ecx, dword [edi]
mov edx, dword [ecx]
push edi
call dword [edx + 4]
add ebx, 0x10
mov dword [esp + 0x60], ebx
jmp 0x407012
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x68]
call fcn.00401fe0
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0x78], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407035
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esi]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x407043
or eax, 0xffffffff
jmp 0x40705c
push str.lastpost
push eax
call fcn.0045111f
add esp, 8
test eax, eax
jne 0x40705a
or eax, 0xffffffff
jmp 0x40705c
sub eax, dword [esi]
lea ebp, [eax + 0xa]
test ebp, ebp
jge 0x407065
xor ebp, ebp
mov eax, dword [esi]
mov edi, dword [eax - 0xc]
cmp ebp, edi
jle 0x407070
mov ebp, edi
test ebp, ebp
jle 0x4070b8
mov ecx, dword [eax - 4]
sub edi, ebp
cmp ecx, 1
lea ebx, [edi + 1]
jle 0x40708c
mov eax, dword [eax - 0xc]
push eax
mov ecx, esi
call fcn.004019f0
mov eax, dword [esi]
push ebx
lea ecx, [eax + ebp]
push ecx
push eax
call fcn.00450500
add esp, 0xc
test edi, edi
jl 0x407412
mov eax, dword [esi]
cmp edi, dword [eax - 8]
jg 0x407412
mov dword [eax - 0xc], edi
mov edx, dword [esi]
mov byte [edi + edx], 0
mov eax, dword [esi]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x4070c6
or eax, 0xffffffff
jmp 0x4070df
push str._replies
push eax
call fcn.0045111f
add esp, 8
test eax, eax
jne 0x4070dd
or eax, 0xffffffff
jmp 0x4070df
sub eax, dword [esi]
push eax
lea eax, [esp + 0x2c]
push eax
mov ecx, esi
call fcn.004034f0
mov eax, dword [eax]
mov edi, dword [esp + 0x64]
lea ecx, [eax - 0x10]
add edi, 0xfffffff0
cmp ecx, edi
mov byte [esp + 0x78], 4
je 0x407148
mov edx, dword [edi + 0xc]
test edx, edx
lea ebp, [edi + 0xc]
jl 0x40713a
mov edx, dword [ecx]
cmp edx, dword [edi]
jne 0x40713a
push ecx
call fcn.00401700
mov ebx, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebp], eax
dec eax
test eax, eax
jg 0x407131
mov ecx, dword [edi]
mov edx, dword [ecx]
push edi
call dword [edx + 4]
add ebx, 0x10
mov dword [esp + 0x64], ebx
jmp 0x407148
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x6c]
call fcn.00401fe0
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0x78], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40716b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esi]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x407179
or eax, 0xffffffff
jmp 0x407192
push str.replies
push eax
call fcn.0045111f
add esp, 8
test eax, eax
jne 0x407190
or eax, 0xffffffff
jmp 0x407192
sub eax, dword [esi]
lea ebp, [eax + 9]
test ebp, ebp
jge 0x40719b
xor ebp, ebp
mov eax, dword [esi]
mov edi, dword [eax - 0xc]
cmp ebp, edi
jle 0x4071a6
mov ebp, edi
test ebp, ebp
jle 0x4071ee
mov ecx, dword [eax - 4]
sub edi, ebp
cmp ecx, 1
lea ebx, [edi + 1]
jle 0x4071c2
mov eax, dword [eax - 0xc]
push eax
mov ecx, esi
call fcn.004019f0
mov eax, dword [esi]
push ebx
lea ecx, [eax + ebp]
push ecx
push eax
call fcn.00450500
add esp, 0xc
test edi, edi
jl 0x407412
mov eax, dword [esi]
cmp edi, dword [eax - 8]
jg 0x407412
mov dword [eax - 0xc], edi
mov edx, dword [esi]
mov byte [edi + edx], 0
mov eax, dword [esi]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x4071fc
or eax, 0xffffffff
jmp 0x407215
push str._displayorder
push eax
call fcn.0045111f
add esp, 8
test eax, eax
jne 0x407213
or eax, 0xffffffff
jmp 0x407215
sub eax, dword [esi]
push eax
lea eax, [esp + 0x30]
push eax
mov ecx, esi
call fcn.004034f0
mov eax, dword [eax]
mov edi, dword [esp + 0x68]
lea ecx, [eax - 0x10]
add edi, 0xfffffff0
cmp ecx, edi
mov byte [esp + 0x78], 5
je 0x40727e
mov edx, dword [edi + 0xc]
test edx, edx
lea ebp, [edi + 0xc]
jl 0x407270
mov edx, dword [ecx]
cmp edx, dword [edi]
jne 0x407270
push ecx
call fcn.00401700
mov ebx, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebp], eax
dec eax
test eax, eax
jg 0x407267
mov ecx, dword [edi]
mov edx, dword [ecx]
push edi
call dword [edx + 4]
add ebx, 0x10
mov dword [esp + 0x68], ebx
jmp 0x40727e
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x70]
call fcn.00401fe0
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x78], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4072a1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esi]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x4072af
or eax, 0xffffffff
jmp 0x4072c8
push str.displayorder
push eax
call fcn.0045111f
add esp, 8
test eax, eax
jne 0x4072c6
or eax, 0xffffffff
jmp 0x4072c8
sub eax, dword [esi]
lea ebp, [eax + 0xe]
test ebp, ebp
jge 0x4072d1
xor ebp, ebp
mov eax, dword [esi]
mov edi, dword [eax - 0xc]
cmp ebp, edi
jle 0x4072dc
mov ebp, edi
test ebp, ebp
jle 0x407324
mov ecx, dword [eax - 4]
sub edi, ebp
cmp ecx, 1
lea ebx, [edi + 1]
jle 0x4072f8
mov eax, dword [eax - 0xc]
push eax
mov ecx, esi
call fcn.004019f0
mov eax, dword [esi]
push ebx
lea ecx, [eax + ebp]
push ecx
push eax
call fcn.00450500
add esp, 0xc
test edi, edi
jl 0x407412
mov eax, dword [esi]
cmp edi, dword [eax - 8]
jg 0x407412
mov dword [eax - 0xc], edi
mov edx, dword [esi]
mov byte [edi + edx], 0
mov eax, dword [esi]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x407332
or eax, 0xffffffff
jmp 0x40734b
push 0x47e64c
push eax
call fcn.0045111f
add esp, 8
test eax, eax
jne 0x407349
or eax, 0xffffffff
jmp 0x40734b
sub eax, dword [esi]
push eax
lea eax, [esp + 0x34]
push eax
mov ecx, esi
call fcn.004034f0
mov eax, dword [eax]
push eax
call fcn.0045138f
mov edi, eax
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
add esp, 4
mov dword [esp + 0x6c], edi
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407387
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
test edi, edi
mov edi, dword [esp + 0x10]
je 0x4073aa
mov eax, dword [edi + 0x1830]
lea ecx, [esp + 0x58]
push ecx
push 1
push eax
lea ecx, [edi + 0x182c]
call fcn.00405f10
jmp 0x4073ba
lea edx, [esp + 0x58]
push edx
lea ecx, [edi + 0x182c]
call fcn.004068a0
mov eax, dword [esp + 0x18]
mov ecx, dword [edi + 0x1bb0]
inc eax
cmp eax, ecx
mov dword [esp + 0x18], eax
jl 0x406ce5
mov edi, dword [esp + 0x10]
xor esi, esi
push esi
push esi
lea ebp, [edi + 0x1c18]
push ebp
lea ecx, [edi + 0x1bd4]
call fcn.00438ed0
xor ebx, ebx
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], 0x3d
add edi, 0x524
nop
mov eax, dword [esp + 0x10]
add eax, 0x182c
mov eax, dword [eax + 4]
test eax, eax
jne 0x40741c
jmp 0x40743c
push 0x80070057
call fcn.004015b0
mov ecx, dword [esp + 0x10]
add ecx, 0x182c
mov ecx, dword [ecx + 8]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x14], eax
jge 0x4074fb
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x1830]
mov ecx, dword [eax + esi + 0x14]
add eax, esi
test ecx, ecx
je 0x407471
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x14]
push 9
push ebp
add ecx, 0x1bc0
call fcn.00438ed0
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x1830]
add eax, esi
mov eax, dword [eax + 8]
push eax
lea ecx, [edi - 0x488]
call fcn.00462114
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x1830]
mov edx, dword [eax + esi + 0x10]
add eax, esi
push edx
mov ecx, edi
call fcn.00462114
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x1830]
mov ecx, dword [eax + esi + 4]
add eax, esi
push ecx
lea ecx, [edi + 0x488]
call fcn.00462114
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x1830]
add eax, esi
mov eax, dword [eax + 0xc]
push eax
lea ecx, [edi + 0x910]
call fcn.00462114
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
inc ebx
inc eax
add edx, 0x1d
add esi, 0x18
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
add edi, 0x74
jmp 0x407400
cmp ebx, 0xa
jge 0x407562
mov edx, dword [esp + 0x10]
mov ecx, ebx
imul ecx, ecx, 0x74
mov edi, 0xa
lea esi, [ecx + edx + 0x524]
sub edi, ebx
jmp 0x407520
push 0x47e1c1
lea ecx, [esi - 0x488]
call fcn.00462114
push 0x47e1c1
mov ecx, esi
call fcn.00462114
push 0x47e1c1
lea ecx, [esi + 0x488]
call fcn.00462114
push 0x47e1c1
lea ecx, [esi + 0x910]
call fcn.00462114
add esi, 0x74
dec edi
jne 0x407520
mov esi, dword [esp + 0x10]
mov ecx, dword [esi + 0x1c]
mov edi, dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [esp + 0x48]
push eax
push ecx
call edi
mov eax, dword [esi + 0x1ba0]
lea edx, [eax + eax*4]
shl edx, 4
lea eax, [edx + esi + 0x1a50]
mov edx, dword [eax + 0x1c]
lea ecx, [esp + 0x38]
push ecx
push edx
call edi
lea eax, [esi + 0x94]
push eax
mov ecx, ebp
call fcn.00469180
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x38]
sub ecx, ebx
dec ecx
sub edx, eax
push ecx
dec edx
push edx
lea eax, [esp + 0x38]
push eax
mov ecx, ebp
call fcn.00468b55
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x4c]
mov edx, dword [esp + 0x40]
sub ecx, ebx
dec ecx
push ecx
sub edx, dword [esp + 0x4c]
push edx
mov ecx, ebp
call fcn.004688ac
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x48]
sub eax, ebx
sub ecx, edx
push eax
push ecx
mov ecx, ebp
call fcn.004688ac
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x38]
sub edx, ebx
sub eax, ecx
push edx
dec eax
push eax
mov ecx, ebp
call fcn.004688ac
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x48]
sub ecx, edx
mov edx, dword [esp + 0x38]
dec ecx
sub edx, edi
push ecx
dec edx
push edx
mov ecx, ebp
call fcn.004688ac
mov eax, dword [esi + 0x1c]
push 0
push 0
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, dword [esp + 0x68]
add eax, 0xfffffff0
mov byte [esp + 0x78], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40766e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
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 0x40768c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
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 0x4076aa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
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 0x4076c8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov dword [esp + 0x78], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4076ee
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
pop ebp
pop edi
mov ecx, dword [esp + 0x68]
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x6c
ret