Function at 0x409cc0
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x48f01200
mov eax, dword fs:[0]
push eax
sub esp, 0x60
mov eax, dword [0x44821800]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
xor eax, eax
mov dword [ebp - 4], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
push 3
push 0xb4201400
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 1
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
call fcn.0040c910
lea eax, [ebp - 0x6c]
mov byte [ebp - 4], 2
push eax
call fcn.00421fe0
mov ecx, eax
call fcn.00421140
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 3
push ecx
lea ecx, [ebp - 0x28]
push ecx
mov ecx, dword [eax]
call fcn.004d9c50
mov ecx, dword [ebp - 0x68]
or esi, 0xffffffff
mov dword [ebp - 0x5c], ecx
test ecx, ecx
je 0x409d7a
mov eax, esi
lock xadd dword [ecx + 4], eax
jne 0x409d7a
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [ebp - 0x5c]
mov eax, esi
lock xadd dword [ecx + 8], eax
jne 0x409d7a
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
mov byte [ebp - 4], 1
cmp edx, 8
jb 0x409db8
mov ecx, dword [ebp - 0x28]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x409dae
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b52c
push edx
push ecx
call fcn.00443d6c
add esp, 8
cmp dword [ebp - 0x48], 0
jne 0x409edf
call fcn.00403790
mov ecx, eax
test ecx, ecx
je 0x40b531
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x64], eax
mov eax, 0xe8fa1300
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x64]
test eax, 0xffff0000
jne 0x409dfc
movzx eax, ax
push eax
call fcn.004051e0
jmp 0x409e08
push 0
push 0xe8fa1300
call fcn.00403d20
push 9
push 0xbc201400
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 5
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.0040c820
push 0xfde9
lea eax, [ebp - 0x64]
mov byte [ebp - 4], 6
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x5c]
push eax
lea ecx, [ebp + 8]
call fcn.004d8970
lea ecx, [edi + 0x68]
mov byte [ebp - 4], 7
push eax
call fcn.00403220
mov edx, dword [ebp - 0x5c]
mov eax, esi
mov byte [ebp - 4], 6
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x409e75
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
mov byte [ebp - 4], 5
cmp edx, 0x10
jb 0x409ead
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409ea3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b53b
push edx
push ecx
call fcn.00443d6c
add esp, 8
mov edx, dword [ebp - 0x64]
mov eax, esi
mov dword [ebp - 0x18], 0
add edx, 0xfffffff0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov byte [ebp - 4], 1
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x409f1c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x409f1c
cmp dword [ebp - 0x44], 8
lea edx, [ebp - 0x58]
lea eax, [edi + 0x68]
cmovae edx, dword [ebp - 0x58]
test edx, edx
jne 0x409ef5
xor ecx, ecx
jmp 0x409f13
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 0x5c], eax
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x409f00
sub ecx, dword [ebp - 0x5c]
lea eax, [edi + 0x68]
sar ecx, 1
push ecx
push edx
mov ecx, eax
call fcn.00403d20
call fcn.00403790
mov ecx, eax
test ecx, ecx
je 0x40b540
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x5c], eax
mov eax, 0xe8fa1300
mov byte [ebp - 4], 8
shr eax, 0x10
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x64], eax
test eax, eax
jne 0x409f5e
mov eax, 0xe8fa1300
movzx eax, ax
push eax
call fcn.004051e0
jmp 0x409f6a
push 0
push 0xe8fa1300
call fcn.00403d20
push 0xc
push 0xc8201400
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 9
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.0040c820
push 0xfde9
lea eax, [ebp - 0x5c]
mov byte [ebp - 4], 0xa
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp + 8]
call fcn.004d8970
push eax
mov ecx, edi
mov byte [ebp - 4], 0xb
call fcn.00403220
mov edx, dword [ebp - 0x60]
mov eax, esi
mov byte [ebp - 4], 0xa
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x409fd6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
mov byte [ebp - 4], 9
cmp edx, 0x10
jb 0x40a00e
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40a004
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b54a
push edx
push ecx
call fcn.00443d6c
add esp, 8
mov edx, dword [ebp - 0x5c]
mov eax, esi
mov dword [ebp - 0x18], 0
add edx, 0xfffffff0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov byte [ebp - 4], 1
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a03e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00403790
mov ecx, eax
test ecx, ecx
je 0x40b54f
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x64], 0
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 0xc
jne 0x40a077
mov eax, 0xe8fa1300
movzx eax, ax
push eax
call fcn.004051e0
jmp 0x40a083
push 0
push 0xe8fa1300
call fcn.00403d20
push 0xd
push 0xd8201400
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0xd
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.0040c820
push 0xfde9
lea eax, [ebp - 0x5c]
mov byte [ebp - 4], 0xe
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp + 8]
call fcn.004d8970
push eax
lea ecx, [edi + 0x74]
mov byte [ebp - 4], 0xf
call fcn.00403220
mov edx, dword [ebp - 0x60]
mov eax, esi
mov byte [ebp - 4], 0xe
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a0f0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
mov byte [ebp - 4], 0xd
cmp edx, 0x10
jb 0x40a128
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40a11e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b559
push edx
push ecx
call fcn.00443d6c
add esp, 8
mov edx, dword [ebp - 0x5c]
mov eax, esi
mov dword [ebp - 0x18], 0
add edx, 0xfffffff0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov byte [ebp - 4], 1
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a158
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00403790
mov ecx, eax
test ecx, ecx
je 0x40b55e
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x64], 0
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 0x10
jne 0x40a191
mov eax, 0xe8fa1300
movzx eax, ax
push eax
call fcn.004051e0
jmp 0x40a19d
push 0
push 0xe8fa1300
call fcn.00403d20
push 0xe
push 0xe8201400
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x11
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.0040c820
push 0xfde9
lea eax, [ebp - 0x5c]
mov byte [ebp - 4], 0x12
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp + 8]
call fcn.004d8970
push eax
lea ecx, [edi + 0x70]
mov byte [ebp - 4], 0x13
call fcn.00403220
mov edx, dword [ebp - 0x60]
mov eax, esi
mov byte [ebp - 4], 0x12
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a20a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
mov byte [ebp - 4], 0x11
cmp edx, 0x10
jb 0x40a242
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40a238
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b568
push edx
push ecx
call fcn.00443d6c
add esp, 8
mov edx, dword [ebp - 0x5c]
mov eax, esi
mov dword [ebp - 0x18], 0
add edx, 0xfffffff0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov byte [ebp - 4], 1
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a272
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00403790
mov ecx, eax
test ecx, ecx
je 0x40b56d
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x64], 0
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 0x14
jne 0x40a2ab
mov eax, 0xe8fa1300
movzx eax, ax
push eax
call fcn.004051e0
jmp 0x40a2b7
push 0
push 0xe8fa1300
call fcn.00403d20
push 0x11
push 0xf8201400
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x15
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.0040c820
push 0xfde9
lea eax, [ebp - 0x5c]
mov byte [ebp - 4], 0x16
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp + 8]
call fcn.004d8970
push eax
lea ecx, [edi + 0x78]
mov byte [ebp - 4], 0x17
call fcn.00403220
mov edx, dword [ebp - 0x60]
mov eax, esi
mov byte [ebp - 4], 0x16
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a324
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
mov byte [ebp - 4], 0x15
cmp edx, 0x10
jb 0x40a35c
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40a352
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b577
push edx
push ecx
call fcn.00443d6c
add esp, 8
mov edx, dword [ebp - 0x5c]
mov eax, esi
mov dword [ebp - 0x18], 0
add edx, 0xfffffff0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov byte [ebp - 4], 1
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a38c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00403790
mov ecx, eax
test ecx, ecx
je 0x40b57c
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x64], 0
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 0x18
jne 0x40a3c5
mov eax, 0xe8fa1300
movzx eax, ax
push eax
call fcn.004051e0
jmp 0x40a3d1
push 0
push 0xe8fa1300
call fcn.00403d20
push 0xf
push 0xc211400
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x19
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.0040c820
push 0xfde9
lea eax, [ebp - 0x5c]
mov byte [ebp - 4], 0x1a
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp + 8]
call fcn.004d8970
push eax
lea ecx, [edi + 0x6c]
mov byte [ebp - 4], 0x1b
call fcn.00403220
mov edx, dword [ebp - 0x60]
mov eax, esi
mov byte [ebp - 4], 0x1a
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a43e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
mov byte [ebp - 4], 0x19
cmp edx, 0x10
jb 0x40a476
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40a46c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b586
push edx
push ecx
call fcn.00443d6c
add esp, 8
mov edx, dword [ebp - 0x5c]
mov eax, esi
mov dword [ebp - 0x18], 0
add edx, 0xfffffff0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov byte [ebp - 4], 1
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a4a6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00403790
mov ecx, eax
test ecx, ecx
je 0x40b58b
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x64], 0
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 0x1c
jne 0x40a4df
mov eax, 0xe8fa1300
movzx eax, ax
push eax
call fcn.004051e0
jmp 0x40a4eb
push 0
push 0xe8fa1300
call fcn.00403d20
push 0xf
push 0x1c211400
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x1d
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.0040c820
push 0xfde9
lea eax, [ebp - 0x5c]
mov byte [ebp - 4], 0x1e
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp + 8]
call fcn.004d8970
push eax
lea ecx, [edi + 0x7c]
mov byte [ebp - 4], 0x1f
call fcn.00403220
mov edx, dword [ebp - 0x60]
mov eax, esi
mov byte [ebp - 4], 0x1e
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a558
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
mov byte [ebp - 4], 0x1d
cmp edx, 0x10
jb 0x40a590
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40a586
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b595
push edx
push ecx
call fcn.00443d6c
add esp, 8
mov edx, dword [ebp - 0x5c]
mov eax, esi
mov dword [ebp - 0x18], 0
add edx, 0xfffffff0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov byte [ebp - 4], 1
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a5c0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00403790
mov ecx, eax
test ecx, ecx
je 0x40b59a
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x64], 0
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 0x20
jne 0x40a5f9
mov eax, 0xe8fa1300
movzx eax, ax
push eax
call fcn.004051e0
jmp 0x40a605
push 0
push 0xe8fa1300
call fcn.00403d20
push 0xc
push 0x2c211400
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x21
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.0040c820
push 0xfde9
lea eax, [ebp - 0x5c]
mov byte [ebp - 4], 0x22
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp + 8]
call fcn.004d8970
push eax
lea ecx, [edi + 0x80]
mov byte [ebp - 4], 0x23
call fcn.00403220
mov edx, dword [ebp - 0x60]
mov eax, esi
mov byte [ebp - 4], 0x22
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a675
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
mov byte [ebp - 4], 0x21
cmp edx, 0x10
jb 0x40a6ad
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40a6a3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b5a4
push edx
push ecx
call fcn.00443d6c
add esp, 8
mov edx, dword [ebp - 0x5c]
mov eax, esi
mov dword [ebp - 0x18], 0
add edx, 0xfffffff0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov byte [ebp - 4], 1
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a6dd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00403790
mov ecx, eax
test ecx, ecx
je 0x40b5a9
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x64], 0
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 0x24
jne 0x40a716
mov eax, 0xe8fa1300
movzx eax, ax
push eax
call fcn.004051e0
jmp 0x40a722
push 0
push 0xe8fa1300
call fcn.00403d20
push 0xd
push 0x3c211400
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x25
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.0040c820
push 0xfde9
lea eax, [ebp - 0x5c]
mov byte [ebp - 4], 0x26
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp + 8]
call fcn.004d8970
push eax
lea ecx, [edi + 0x84]
mov byte [ebp - 4], 0x27
call fcn.00403220
mov edx, dword [ebp - 0x60]
mov eax, esi
mov byte [ebp - 4], 0x26
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a792
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
mov byte [ebp - 4], 0x25
cmp edx, 0x10
jb 0x40a7ca
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40a7c0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b5b3
push edx
push ecx
call fcn.00443d6c
add esp, 8
mov edx, dword [ebp - 0x5c]
mov eax, esi
mov dword [ebp - 0x18], 0
add edx, 0xfffffff0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov byte [ebp - 4], 1
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a7fa
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x13
push 0x4c211400
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.0040c820
push 0
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0x28
push eax
lea ecx, [ebp + 8]
call fcn.004d8490
mov edx, dword [ebp - 0x14]
mov dword [edi + 0xd4], eax
mov byte [ebp - 4], 1
cmp edx, 0x10
jb 0x40a86b
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40a861
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b5b8
push edx
push ecx
call fcn.00443d6c
add esp, 8
call fcn.00403790
mov ecx, eax
test ecx, ecx
je 0x40b5bd
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x64], 0
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 0x29
jne 0x40a8a4
mov eax, 0xe8fa1300
movzx eax, ax
push eax
call fcn.004051e0
jmp 0x40a8b0
push 0
push 0xe8fa1300
call fcn.00403d20
push 0xd
push 0x60211400
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x2a
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.0040c820
push 0xfde9
lea eax, [ebp - 0x5c]
mov byte [ebp - 4], 0x2b
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp + 8]
call fcn.004d8970
push eax
lea ecx, [edi + 0x64]
mov byte [ebp - 4], 0x2c
call fcn.00403220
mov edx, dword [ebp - 0x60]
mov eax, esi
mov byte [ebp - 4], 0x2b
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a91d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
mov byte [ebp - 4], 0x2a
cmp edx, 0x10
jb 0x40a955
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40a94b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b5c7
push edx
push ecx
call fcn.00443d6c
add esp, 8
mov edx, dword [ebp - 0x5c]
mov eax, esi
mov dword [ebp - 0x18], 0
add edx, 0xfffffff0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov byte [ebp - 4], 1
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40a985
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00403790
mov ecx, eax
test ecx, ecx
je 0x40b5cc
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x64], 0
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 0x2d
jne 0x40a9be
mov eax, 0xe8fa1300
movzx eax, ax
push eax
call fcn.004051e0
jmp 0x40a9ca
push 0
push 0xe8fa1300
call fcn.00403d20
push 0xb
push 0x70211400
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x2e
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.0040c820
push 0xfde9
lea eax, [ebp - 0x5c]
mov byte [ebp - 4], 0x2f
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp + 8]
call fcn.004d8970
push eax
lea ecx, [edi + 0x90]
mov byte [ebp - 4], 0x30
call fcn.00403220
mov edx, dword [ebp - 0x60]
mov eax, esi
mov byte [ebp - 4], 0x2f
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40aa3a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x28]
call fcn.00408d10
mov edx, dword [ebp - 0x5c]
mov eax, esi
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40aa60
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0xe8fa1300
lea ecx, [ebp - 0x5c]
call fcn.00402f70
push 0xc
push 0x7c211400
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x31
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.0040c820
push 0xfde9
lea eax, [ebp - 0x5c]
mov byte [ebp - 4], 0x32
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp + 8]
call fcn.004d8970
push eax
lea ecx, [edi + 0x88]
mov byte [ebp - 4], 0x33
call fcn.00403220
mov edx, dword [ebp - 0x60]
mov eax, esi
mov byte [ebp - 4], 0x32
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40aadd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x28]
call fcn.00408d10
mov edx, dword [ebp - 0x5c]
mov eax, esi
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40ab03
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0xe8fa1300
lea ecx, [ebp - 0x5c]
call fcn.00402f70
push 0x16
push 0x8c211400
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x34
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.0040c820
push 0xfde9
lea eax, [ebp - 0x5c]
mov byte [ebp - 4], 0x35
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp + 8]
call fcn.004d8970
push eax
lea ecx, [edi + 0x50]
mov byte [ebp - 4], 0x36
call fcn.00403220
mov edx, dword [ebp - 0x60]
mov eax, esi
mov byte [ebp - 4], 0x35
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40ab7d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x28]
call fcn.00408d10
mov edx, dword [ebp - 0x5c]
mov eax, esi
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40aba3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0xc
push 0xa4211400
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.0040c820
push 0
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0x37
push eax
lea ecx, [ebp + 8]
call fcn.004d8490
lea ecx, [ebp - 0x28]
mov dword [edi + 0xc8], eax
mov byte [ebp - 4], 1
call fcn.00408d10
push 0x18
push 0xb4211400
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.0040c820
push 0
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0x38
push eax
lea ecx, [ebp + 8]
call fcn.004d8490
lea ecx, [ebp - 0x28]
mov dword [edi + 0xcc], eax
mov byte [ebp - 4], 1
call fcn.00408d10
push 0xe8fa1300
lea ecx, [ebp - 0x5c]
call fcn.00402f70
push 0x11
push 0xd0211400
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x39
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.0040c820
push 0xfde9
lea eax, [ebp - 0x5c]
mov byte [ebp - 4], 0x3a
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp + 8]
call fcn.004d8970
push eax
lea ecx, [edi + 0x8c]
mov byte [ebp - 4], 0x3b
call fcn.00403220
mov edx, dword [ebp - 0x60]
mov eax, esi
mov byte [ebp - 4], 0x3a
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40acaa
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x28]
call fcn.00408d10
mov edx, dword [ebp - 0x5c]
mov eax, esi
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40acd0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x13
push 0xe4211400
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.0040c820
push 0
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0x3c
push eax
lea ecx, [ebp + 8]
call fcn.004d8490
lea ecx, [ebp - 0x28]
mov dword [edi + 0xd0], eax
mov byte [ebp - 4], 1
call fcn.00408d10
push 0x12
push 0xf8211400
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.0040c820
push 1
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0x3d
push eax
lea ecx, [ebp + 8]
call fcn.004d8490
lea ecx, [ebp - 0x28]
mov dword [edi + 0xd8], eax
mov byte [ebp - 4], 1
call fcn.00408d10
push 0xe
push 0xc221400
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.0040c820
push 0
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0x3e
push eax
lea ecx, [ebp + 8]
call fcn.004d8490
lea ecx, [ebp - 0x28]
mov dword [edi + 0xc4], eax
mov byte [ebp - 4], 1
call fcn.00408d10
push 0x17
push 0x1c221400
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.0040c820
push 0
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0x3f
push eax
lea ecx, [ebp + 8]
call fcn.004d8490
lea ecx, [ebp - 0x28]
mov dword [edi + 0xdc], eax
mov byte [ebp - 4], 1
call fcn.00408d10
call fcn.00403790
mov ecx, eax
test ecx, ecx
je 0x40b5d6
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x64], eax
mov eax, 0x34221400
mov byte [ebp - 4], 0x40
test eax, 0xffff0000
jne 0x40ae1e
movzx eax, ax
lea ecx, [ebp - 0x64]
push eax
call fcn.004051e0
jmp 0x40ae7b
push 0
push 0
push 0xffffffffffffffff
push 0x34221400
push 0
push 3
call dword [0x4f21300]
dec eax
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x5c], eax
test eax, eax
jle 0x40ae76
push eax
call fcn.0040bab0
push dword [ebp - 0x5c]
push eax
push 0xffffffffffffffff
push 0x34221400
push 0
push 3
call dword [0x4f21300]
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x5c]
cmp ecx, dword [eax - 8]
jg 0x40b5e0
mov dword [eax - 0xc], ecx
xor edx, edx
mov eax, dword [ebp - 0x64]
mov word [eax + ecx*2], dx
jmp 0x40ae7b
call fcn.00409be0
push 0x11
push 0x38221400
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x41
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.0040c820
push 0xfde9
lea eax, [ebp - 0x64]
mov byte [ebp - 4], 0x42
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp + 8]
call fcn.004d8970
push eax
lea ecx, [edi + 4]
mov byte [ebp - 4], 0x43
call fcn.00403220
mov edx, dword [ebp - 0x60]
mov eax, esi
mov byte [ebp - 4], 0x42
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40aee8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x28]
call fcn.00408d10
mov edx, dword [ebp - 0x64]
mov eax, esi
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40af0e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0xb0201400
lea ecx, [ebp - 0x5c]
call fcn.00402f70
push 0xf
push 0x4c221400
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x44
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.0040c820
push 0xfde9
lea eax, [ebp - 0x5c]
mov byte [ebp - 4], 0x45
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp + 8]
call fcn.004d8970
push eax
lea ecx, [edi + 8]
mov byte [ebp - 4], 0x46
call fcn.00403220
mov edx, dword [ebp - 0x60]
mov eax, esi
mov byte [ebp - 4], 0x45
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40af88
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x28]
call fcn.00408d10
mov edx, dword [ebp - 0x5c]
mov eax, esi
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40afae
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0xb0201400
lea ecx, [ebp - 0x5c]
call fcn.00402f70
push 0xc
push 0x5c221400
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x47
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.0040c820
push 0xfde9
lea eax, [ebp - 0x5c]
mov byte [ebp - 4], 0x48
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp + 8]
call fcn.004d8970
push eax
lea ecx, [edi + 0xc]
mov byte [ebp - 4], 0x49
call fcn.00403220
mov edx, dword [ebp - 0x60]
mov eax, esi
mov byte [ebp - 4], 0x48
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40b028
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x28]
call fcn.00408d10
mov edx, dword [ebp - 0x5c]
mov eax, esi
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40b04e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [0x84801800]
lea ecx, [ebp - 0x64]
call fcn.00402f70
push 0xd
push 0x6c221400
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x4a
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
call fcn.0040c820
push 0xfde9
lea eax, [ebp - 0x64]
mov byte [ebp - 4], 0x4b
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x68]
push eax
lea ecx, [ebp + 8]
call fcn.004d8970
lea ecx, [edi + 0x94]
mov byte [ebp - 4], 0x4c
push eax
call fcn.00403220
mov edx, dword [ebp - 0x68]
mov eax, esi
mov byte [ebp - 4], 0x4b
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40b0cc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x40]
call fcn.00408d10
mov edx, dword [ebp - 0x64]
mov eax, esi
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40b0f2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0xe8fa1300
lea ecx, [ebp - 0x5c]
call fcn.00402f70
push 7
push 0x7c221400
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x4d
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
call fcn.0040c820
push 0xfde9
lea eax, [ebp - 0x5c]
mov byte [ebp - 4], 0x4e
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x68]
push eax
lea ecx, [ebp + 8]
call fcn.004d8970
push eax
lea ecx, [edi + 0x98]
mov byte [ebp - 4], 0x4f
call fcn.00403220
mov edx, dword [ebp - 0x68]
mov eax, esi
mov byte [ebp - 4], 0x4e
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40b16f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x40]
call fcn.00408d10
mov edx, dword [ebp - 0x5c]
mov eax, esi
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40b195
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0xe8fa1300
lea ecx, [ebp - 0x5c]
call fcn.00402f70
push 6
push 0x84221400
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x50
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
call fcn.0040c820
push 0xfde9
lea eax, [ebp - 0x5c]
mov byte [ebp - 4], 0x51
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x68]
push eax
lea ecx, [ebp + 8]
call fcn.004d8970
push eax
lea ecx, [edi + 0x9c]
mov byte [ebp - 4], 0x52
call fcn.00403220
mov edx, dword [ebp - 0x68]
mov eax, esi
mov byte [ebp - 4], 0x51
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40b212
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x40]
call fcn.00408d10
mov edx, dword [ebp - 0x5c]
mov eax, esi
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40b238
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0xe8fa1300
lea ecx, [ebp - 0x5c]
call fcn.00402f70
push 0x15
push 0x8c221400
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x53
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
call fcn.0040c820
push 0xfde9
lea eax, [ebp - 0x5c]
mov byte [ebp - 4], 0x54
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x68]
push eax
lea ecx, [ebp + 8]
call fcn.004d8970
push eax
lea ecx, [edi + 0xa0]
mov byte [ebp - 4], 0x55
call fcn.00403220
mov edx, dword [ebp - 0x68]
mov eax, esi
mov byte [ebp - 4], 0x54
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40b2b5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x40]
call fcn.00408d10
mov edx, dword [ebp - 0x5c]
mov eax, esi
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40b2db
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0xe8fa1300
lea ecx, [ebp - 0x5c]
call fcn.00402f70
push 0xb
push 0xa4221400
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x56
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
call fcn.0040c820
push 0xfde9
lea eax, [ebp - 0x5c]
mov byte [ebp - 4], 0x57
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x68]
push eax
lea ecx, [ebp + 8]
call fcn.004d8970
push eax
lea ecx, [edi + 0xa4]
mov byte [ebp - 4], 0x58
call fcn.00403220
mov edx, dword [ebp - 0x68]
mov eax, esi
mov byte [ebp - 4], 0x57
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40b358
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x40]
call fcn.00408d10
mov edx, dword [ebp - 0x5c]
mov eax, esi
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40b37e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0xe8fa1300
lea ecx, [ebp - 0x5c]
call fcn.00402f70
push 0xc
push 0xb0221400
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x59
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
call fcn.0040c820
push 0xfde9
lea eax, [ebp - 0x5c]
mov byte [ebp - 4], 0x5a
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x68]
push eax
lea ecx, [ebp + 8]
call fcn.004d8970
push eax
lea ecx, [edi + 0xa8]
mov byte [ebp - 4], 0x5b
call fcn.00403220
mov edx, dword [ebp - 0x68]
mov eax, esi
mov byte [ebp - 4], 0x5a
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40b3fb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x40]
call fcn.00408d10
mov edx, dword [ebp - 0x5c]
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x40b41f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0
push 0xb81e1400
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
call fcn.0040c820
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x5c
push eax
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp + 8]
call fcn.004d8fc0
mov esi, eax
lea eax, [edi + 0xac]
cmp eax, esi
je 0x40b48f
mov ecx, eax
call fcn.00408d10
movups xmm0, xmmword [esi]
movups xmmword [edi + 0xac], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [edi + 0xbc], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
lea ecx, [ebp - 0x28]
call fcn.00408d10
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 1
call fcn.00408d10
lea eax, [edi + 0x94]
push eax
call fcn.00404fa0
mov ecx, eax
call fcn.00403d10
mov eax, dword [edi]
cmp dword [eax - 0xc], 0
je 0x40b4fb
mov eax, dword [edi + 0x14]
cmp dword [eax - 0xc], 0
je 0x40b4fb
mov eax, dword [edi + 0x10]
cmp dword [eax - 0xc], 0
je 0x40b4fb
mov eax, dword [edi + 0x1c]
cmp dword [eax - 0xc], 0
je 0x40b4fb
mov eax, dword [edi + 0x20]
cmp dword [eax - 0xc], 0
je 0x40b4fb
mov eax, dword [edi + 0x18]
cmp dword [eax - 0xc], 0
je 0x40b4fb
mov eax, dword [edi + 0x68]
cmp dword [eax - 0xc], 0
je 0x40b4fb
mov esi, 1
jmp 0x40b4fd
xor esi, esi
lea ecx, [ebp - 0x58]
call fcn.00408d60
lea ecx, [ebp + 8]
call fcn.004d5540
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00443d5b
mov esp, ebp
pop ebp
ret 0x18
call fcn.004edf39
push 0x80004005
call fcn.00403420
call fcn.004edf39
push 0x80004005
call fcn.00403420
call fcn.004edf39
push 0x80004005
call fcn.00403420
call fcn.004edf39
push 0x80004005
call fcn.00403420
call fcn.004edf39
push 0x80004005
call fcn.00403420
call fcn.004edf39
push 0x80004005
call fcn.00403420
call fcn.004edf39
push 0x80004005
call fcn.00403420
call fcn.004edf39
push 0x80004005
call fcn.00403420
call fcn.004edf39
push 0x80004005
call fcn.00403420
call fcn.004edf39
call fcn.004edf39
push 0x80004005
call fcn.00403420
call fcn.004edf39
push 0x80004005
call fcn.00403420
push 0x80004005
call fcn.00403420
push 0x80070057
call fcn.00403420
int3