40cde8:	6a 00                	push   $0x0
40cdea:	6a 7f                	push   $0x7f
40cdec:	ff d6                	call   *%esi
40cdee:	83 f8 02             	cmp    $0x2,%eax
40cdf1:	75 09                	jne    0x40cdfc
40cdf3:	c7 47 04 01 00 00 00 	movl   $0x1,0x4(%edi)
40cdfa:	eb 3e                	jmp    0x40ce3a
40cdfc:	6a ff                	push   $0xffffffff
40cdfe:	68 88 fa 44 00       	push   $0x44fa88
40ce03:	6a ff                	push   $0xffffffff
40ce05:	ff 75 fc             	push   -0x4(%ebp)
40ce08:	6a 00                	push   $0x0
40ce0a:	6a 7f                	push   $0x7f
40ce0c:	ff d6                	call   *%esi
40ce0e:	83 f8 02             	cmp    $0x2,%eax
40ce11:	75 05                	jne    0x40ce18
40ce13:	89 47 04             	mov    %eax,0x4(%edi)
40ce16:	eb 22                	jmp    0x40ce3a
40ce18:	6a ff                	push   $0xffffffff
40ce1a:	68 9c fa 44 00       	push   $0x44fa9c
40ce1f:	6a ff                	push   $0xffffffff
40ce21:	ff 75 fc             	push   -0x4(%ebp)
40ce24:	6a 00                	push   $0x0
40ce26:	6a 7f                	push   $0x7f
40ce28:	ff d6                	call   *%esi
40ce2a:	83 f8 02             	cmp    $0x2,%eax
40ce2d:	0f 85 be 02 00 00    	jne    0x40d0f1
40ce33:	c7 47 04 03 00 00 00 	movl   $0x3,0x4(%edi)
40ce3a:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40ce3e:	74 42                	je     0x40ce82
40ce40:	8d 45 fc             	lea    -0x4(%ebp),%eax
40ce43:	50                   	push   %eax
40ce44:	68 98 f4 44 00       	push   $0x44f498
40ce49:	ff 75 f8             	push   -0x8(%ebp)
40ce4c:	e8 76 63 03 00       	call   0x4431c7
40ce51:	8b f0                	mov    %eax,%esi
40ce53:	81 fe 90 04 07 80    	cmp    $0x80070490,%esi
40ce59:	75 06                	jne    0x40ce61
40ce5b:	83 7f 04 02          	cmpl   $0x2,0x4(%edi)
40ce5f:	75 21                	jne    0x40ce82
40ce61:	85 f6                	test   %esi,%esi
40ce63:	0f 88 1d 02 00 00    	js     0x40d086
40ce69:	8d 47 3c             	lea    0x3c(%edi),%eax
40ce6c:	50                   	push   %eax
40ce6d:	ff 75 fc             	push   -0x4(%ebp)
40ce70:	ff 75 0c             	push   0xc(%ebp)
40ce73:	e8 31 f2 ff ff       	call   0x40c0a9
40ce78:	8b f0                	mov    %eax,%esi
40ce7a:	85 f6                	test   %esi,%esi
40ce7c:	0f 88 fa 01 00 00    	js     0x40d07c
40ce82:	8d 47 08             	lea    0x8(%edi),%eax
40ce85:	50                   	push   %eax
40ce86:	68 14 fb 44 00       	push   $0x44fb14
40ce8b:	ff 75 f8             	push   -0x8(%ebp)
40ce8e:	e8 48 65 03 00       	call   0x4433db
40ce93:	8b f0                	mov    %eax,%esi
40ce95:	81 fe 90 04 07 80    	cmp    $0x80070490,%esi
40ce9b:	74 08                	je     0x40cea5
40ce9d:	85 f6                	test   %esi,%esi
40ce9f:	0f 88 eb 01 00 00    	js     0x40d090
40cea5:	8d 47 38             	lea    0x38(%edi),%eax
40cea8:	50                   	push   %eax
40cea9:	68 48 fb 44 00       	push   $0x44fb48
40ceae:	ff 75 f8             	push   -0x8(%ebp)
40ceb1:	e8 11 63 03 00       	call   0x4431c7
40ceb6:	8b f0                	mov    %eax,%esi
40ceb8:	81 fe 90 04 07 80    	cmp    $0x80070490,%esi
40cebe:	75 06                	jne    0x40cec6
40cec0:	83 7f 04 01          	cmpl   $0x1,0x4(%edi)
40cec4:	74 08                	je     0x40cece
40cec6:	85 f6                	test   %esi,%esi
40cec8:	0f 88 1c 02 00 00    	js     0x40d0ea
40cece:	8d 47 40             	lea    0x40(%edi),%eax
40ced1:	50                   	push   %eax
40ced2:	68 84 f6 44 00       	push   $0x44f684
40ced7:	ff 75 f8             	push   -0x8(%ebp)
40ceda:	e8 e8 62 03 00       	call   0x4431c7
40cedf:	8b f0                	mov    %eax,%esi
40cee1:	81 fe 90 04 07 80    	cmp    $0x80070490,%esi
40cee7:	75 06                	jne    0x40ceef
40cee9:	83 7f 04 01          	cmpl   $0x1,0x4(%edi)
40ceed:	75 08                	jne    0x40cef7
40ceef:	85 f6                	test   %esi,%esi
40cef1:	0f 88 ec 01 00 00    	js     0x40d0e3
40cef7:	8d 45 fc             	lea    -0x4(%ebp),%eax
40cefa:	50                   	push   %eax
40cefb:	68 98 fb 44 00       	push   $0x44fb98
40cf00:	ff 75 f8             	push   -0x8(%ebp)
40cf03:	e8 bf 62 03 00       	call   0x4431c7
40cf08:	8b f0                	mov    %eax,%esi
40cf0a:	81 fe 90 04 07 80    	cmp    $0x80070490,%esi
40cf10:	74 20                	je     0x40cf32
40cf12:	85 f6                	test   %esi,%esi
40cf14:	0f 88 8a 01 00 00    	js     0x40d0a4
40cf1a:	8d 47 10             	lea    0x10(%edi),%eax
40cf1d:	50                   	push   %eax
40cf1e:	6a 00                	push   $0x0
40cf20:	ff 75 fc             	push   -0x4(%ebp)
40cf23:	e8 fa 5a ff ff       	call   0x402a22
40cf28:	8b f0                	mov    %eax,%esi
40cf2a:	85 f6                	test   %esi,%esi
40cf2c:	0f 88 68 01 00 00    	js     0x40d09a
40cf32:	8d 45 fc             	lea    -0x4(%ebp),%eax
40cf35:	50                   	push   %eax
40cf36:	68 e8 fb 44 00       	push   $0x44fbe8
40cf3b:	ff 75 f8             	push   -0x8(%ebp)
40cf3e:	e8 84 62 03 00       	call   0x4431c7
40cf43:	8b f0                	mov    %eax,%esi
40cf45:	81 fe 90 04 07 80    	cmp    $0x80070490,%esi
40cf4b:	74 22                	je     0x40cf6f
40cf4d:	85 f6                	test   %esi,%esi
40cf4f:	0f 88 5d 01 00 00    	js     0x40d0b2
40cf55:	8d 47 24             	lea    0x24(%edi),%eax
40cf58:	50                   	push   %eax
40cf59:	8d 47 20             	lea    0x20(%edi),%eax
40cf5c:	50                   	push   %eax
40cf5d:	ff 75 fc             	push   -0x4(%ebp)
40cf60:	e8 a6 50 ff ff       	call   0x40200b
40cf65:	8b f0                	mov    %eax,%esi
40cf67:	85 f6                	test   %esi,%esi
40cf69:	0f 88 3c 01 00 00    	js     0x40d0ab
40cf6f:	8d 45 fc             	lea    -0x4(%ebp),%eax
40cf72:	50                   	push   %eax
40cf73:	68 a0 fc 44 00       	push   $0x44fca0
40cf78:	ff 75 f8             	push   -0x8(%ebp)
40cf7b:	e8 47 62 03 00       	call   0x4431c7
40cf80:	8b f0                	mov    %eax,%esi
40cf82:	81 fe 90 04 07 80    	cmp    $0x80070490,%esi
40cf88:	74 22                	je     0x40cfac
40cf8a:	85 f6                	test   %esi,%esi
40cf8c:	0f 88 2e 01 00 00    	js     0x40d0c0
40cf92:	8d 47 2c             	lea    0x2c(%edi),%eax
40cf95:	50                   	push   %eax
40cf96:	8d 47 28             	lea    0x28(%edi),%eax
40cf99:	50                   	push   %eax
40cf9a:	ff 75 fc             	push   -0x4(%ebp)
40cf9d:	e8 69 50 ff ff       	call   0x40200b
40cfa2:	8b f0                	mov    %eax,%esi
40cfa4:	85 f6                	test   %esi,%esi
40cfa6:	0f 88 0d 01 00 00    	js     0x40d0b9
40cfac:	8d 45 fc             	lea    -0x4(%ebp),%eax
40cfaf:	50                   	push   %eax
40cfb0:	68 f8 f6 44 00       	push   $0x44f6f8
40cfb5:	ff 75 f8             	push   -0x8(%ebp)
40cfb8:	e8 0a 62 03 00       	call   0x4431c7
40cfbd:	8b f0                	mov    %eax,%esi
40cfbf:	85 f6                	test   %esi,%esi
40cfc1:	0f 88 15 01 00 00    	js     0x40d0dc
40cfc7:	8d 47 34             	lea    0x34(%edi),%eax
40cfca:	50                   	push   %eax
40cfcb:	8d 47 30             	lea    0x30(%edi),%eax
40cfce:	50                   	push   %eax
40cfcf:	ff 75 fc             	push   -0x4(%ebp)
40cfd2:	e8 34 50 ff ff       	call   0x40200b
40cfd7:	8b f0                	mov    %eax,%esi
40cfd9:	85 f6                	test   %esi,%esi
40cfdb:	0f 88 f4 00 00 00    	js     0x40d0d5
40cfe1:	8d 45 fc             	lea    -0x4(%ebp),%eax
40cfe4:	50                   	push   %eax
40cfe5:	68 b8 f8 44 00       	push   $0x44f8b8
40cfea:	ff 75 f8             	push   -0x8(%ebp)
40cfed:	e8 d5 61 03 00       	call   0x4431c7
40cff2:	8b f0                	mov    %eax,%esi
40cff4:	81 fe 90 04 07 80    	cmp    $0x80070490,%esi
40cffa:	74 21                	je     0x40d01d
40cffc:	85 f6                	test   %esi,%esi
40cffe:	0f 88 ca 00 00 00    	js     0x40d0ce
40d004:	8d 47 1c             	lea    0x1c(%edi),%eax
40d007:	50                   	push   %eax
40d008:	ff 75 fc             	push   -0x4(%ebp)
40d00b:	ff 75 10             	push   0x10(%ebp)
40d00e:	e8 6d f7 ff ff       	call   0x40c780
40d013:	8b f0                	mov    %eax,%esi
40d015:	85 f6                	test   %esi,%esi
40d017:	0f 88 aa 00 00 00    	js     0x40d0c7
40d01d:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40d020:	85 c9                	test   %ecx,%ecx
40d022:	74 0a                	je     0x40d02e
40d024:	8b 01                	mov    (%ecx),%eax
40d026:	51                   	push   %ecx
40d027:	ff 50 08             	call   *0x8(%eax)
40d02a:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40d02e:	8b 45 14             	mov    0x14(%ebp),%eax
40d031:	8b 4d 08             	mov    0x8(%ebp),%ecx
40d034:	40                   	inc    %eax
40d035:	83 c1 58             	add    $0x58,%ecx
40d038:	89 45 14             	mov    %eax,0x14(%ebp)
40d03b:	89 4d 08             	mov    %ecx,0x8(%ebp)
40d03e:	3b 45 f4             	cmp    -0xc(%ebp),%eax
40d041:	0f 82 25 fd ff ff    	jb     0x40cd6c
40d047:	33 f6                	xor    %esi,%esi
40d049:	5f                   	pop    %edi
40d04a:	5b                   	pop    %ebx
40d04b:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40d04e:	85 c9                	test   %ecx,%ecx
40d050:	74 06                	je     0x40d058
40d052:	8b 01                	mov    (%ecx),%eax
40d054:	51                   	push   %ecx
40d055:	ff 50 08             	call   *0x8(%eax)
40d058:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40d05b:	85 c9                	test   %ecx,%ecx
40d05d:	74 06                	je     0x40d065
40d05f:	8b 01                	mov    (%ecx),%eax
40d061:	51                   	push   %ecx
40d062:	ff 50 08             	call   *0x8(%eax)
40d065:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40d069:	74 08                	je     0x40d073
40d06b:	ff 75 fc             	push   -0x4(%ebp)
40d06e:	e8 7c 84 03 00       	call   0x4454ef
40d073:	8b c6                	mov    %esi,%eax
40d075:	5e                   	pop    %esi
40d076:	8b e5                	mov    %ebp,%esp
40d078:	5d                   	pop    %ebp
40d079:	c2 10 00             	ret    $0x10
40d07c:	ff 75 fc             	push   -0x4(%ebp)
40d07f:	68 f0 fa 44 00       	push   $0x44faf0
40d084:	eb 78                	jmp    0x40d0fe
40d086:	68 d4 fa 44 00       	push   $0x44fad4
40d08b:	e9 96 00 00 00       	jmp    0x40d126
40d090:	68 2c fb 44 00       	push   $0x44fb2c
40d095:	e9 8c 00 00 00       	jmp    0x40d126
40d09a:	68 c8 fb 44 00       	push   $0x44fbc8
40d09f:	e9 82 00 00 00       	jmp    0x40d126
40d0a4:	68 ac fb 44 00       	push   $0x44fbac
40d0a9:	eb 7b                	jmp    0x40d126
40d0ab:	68 64 fc 44 00       	push   $0x44fc64
40d0b0:	eb 74                	jmp    0x40d126
40d0b2:	68 30 fc 44 00       	push   $0x44fc30
40d0b7:	eb 6d                	jmp    0x40d126
40d0b9:	68 00 fd 44 00       	push   $0x44fd00
40d0be:	eb 66                	jmp    0x40d126
40d0c0:	68 d4 fc 44 00       	push   $0x44fcd4
40d0c5:	eb 5f                	jmp    0x40d126
40d0c7:	68 74 fd 44 00       	push   $0x44fd74
40d0cc:	eb 58                	jmp    0x40d126
40d0ce:	68 5c fd 44 00       	push   $0x44fd5c
40d0d3:	eb 51                	jmp    0x40d126
40d0d5:	68 34 fd 44 00       	push   $0x44fd34
40d0da:	eb 4a                	jmp    0x40d126
40d0dc:	68 30 f7 44 00       	push   $0x44f730
40d0e1:	eb 43                	jmp    0x40d126
40d0e3:	68 7c fb 44 00       	push   $0x44fb7c
40d0e8:	eb 3c                	jmp    0x40d126
40d0ea:	68 60 fb 44 00       	push   $0x44fb60
40d0ef:	eb 35                	jmp    0x40d126
40d0f1:	ff 75 fc             	push   -0x4(%ebp)
40d0f4:	be 57 00 07 80       	mov    $0x80070057,%esi
40d0f9:	68 b0 fa 44 00       	push   $0x44fab0
40d0fe:	56                   	push   %esi
40d0ff:	e8 2b 30 03 00       	call   0x44012f
40d104:	83 c4 0c             	add    $0xc,%esp
40d107:	e9 3d ff ff ff       	jmp    0x40d049
40d10c:	68 58 fa 44 00       	push   $0x44fa58
40d111:	eb 13                	jmp    0x40d126
40d113:	68 4c f6 44 00       	push   $0x44f64c
40d118:	eb 0c                	jmp    0x40d126
40d11a:	68 6c ca 44 00       	push   $0x44ca6c
40d11f:	eb 05                	jmp    0x40d126
40d121:	68 48 ca 44 00       	push   $0x44ca48
40d126:	56                   	push   %esi
40d127:	e8 03 30 03 00       	call   0x44012f
40d12c:	59                   	pop    %ecx
40d12d:	59                   	pop    %ecx
40d12e:	e9 16 ff ff ff       	jmp    0x40d049
40d133:	55                   	push   %ebp
40d134:	8b ec                	mov    %esp,%ebp
40d136:	57                   	push   %edi
40d137:	8b 7d 08             	mov    0x8(%ebp),%edi
40d13a:	83 3f 00             	cmpl   $0x0,(%edi)
40d13d:	0f 84 bc 00 00 00    	je     0x40d1ff
40d143:	53                   	push   %ebx
40d144:	33 db                	xor    %ebx,%ebx
40d146:	39 5f 04             	cmp    %ebx,0x4(%edi)
40d149:	0f 86 a8 00 00 00    	jbe    0x40d1f7
40d14f:	33 c0                	xor    %eax,%eax
40d151:	89 45 08             	mov    %eax,0x8(%ebp)
40d154:	56                   	push   %esi
40d155:	8b 37                	mov    (%edi),%esi
40d157:	03 f0                	add    %eax,%esi
40d159:	83 3e 00             	cmpl   $0x0,(%esi)
40d15c:	74 07                	je     0x40d165
40d15e:	ff 36                	push   (%esi)
40d160:	e8 8a 83 03 00       	call   0x4454ef
40d165:	83 7e 18 00          	cmpl   $0x0,0x18(%esi)
40d169:	74 08                	je     0x40d173
40d16b:	ff 76 18             	push   0x18(%esi)
40d16e:	e8 7c 83 03 00       	call   0x4454ef
40d173:	83 7e 30 00          	cmpl   $0x0,0x30(%esi)
40d177:	74 08                	je     0x40d181
40d179:	ff 76 30             	push   0x30(%esi)
40d17c:	e8 18 68 ff ff       	call   0x403999
40d181:	83 7e 28 00          	cmpl   $0x0,0x28(%esi)
40d185:	74 08                	je     0x40d18f
40d187:	ff 76 28             	push   0x28(%esi)
40d18a:	e8 0a 68 ff ff       	call   0x403999
40d18f:	83 7e 20 00          	cmpl   $0x0,0x20(%esi)
40d193:	74 08                	je     0x40d19d
40d195:	ff 76 20             	push   0x20(%esi)
40d198:	e8 fc 67 ff ff       	call   0x403999
40d19d:	83 7e 38 00          	cmpl   $0x0,0x38(%esi)
40d1a1:	74 08                	je     0x40d1ab
40d1a3:	ff 76 38             	push   0x38(%esi)
40d1a6:	e8 44 83 03 00       	call   0x4454ef
40d1ab:	83 7e 50 00          	cmpl   $0x0,0x50(%esi)
40d1af:	74 08                	je     0x40d1b9
40d1b1:	ff 76 50             	push   0x50(%esi)
40d1b4:	e8 36 83 03 00       	call   0x4454ef
40d1b9:	83 7e 40 00          	cmpl   $0x0,0x40(%esi)
40d1bd:	74 08                	je     0x40d1c7
40d1bf:	ff 76 40             	push   0x40(%esi)
40d1c2:	e8 28 83 03 00       	call   0x4454ef
40d1c7:	83 7e 44 00          	cmpl   $0x0,0x44(%esi)
40d1cb:	74 08                	je     0x40d1d5
40d1cd:	ff 76 44             	push   0x44(%esi)
40d1d0:	e8 1a 83 03 00       	call   0x4454ef
40d1d5:	83 7e 48 00          	cmpl   $0x0,0x48(%esi)
40d1d9:	74 08                	je     0x40d1e3
40d1db:	ff 76 48             	push   0x48(%esi)
40d1de:	e8 0c 83 03 00       	call   0x4454ef
40d1e3:	8b 45 08             	mov    0x8(%ebp),%eax
40d1e6:	43                   	inc    %ebx
40d1e7:	83 c0 58             	add    $0x58,%eax
40d1ea:	89 45 08             	mov    %eax,0x8(%ebp)
40d1ed:	3b 5f 04             	cmp    0x4(%edi),%ebx
40d1f0:	0f 82 5f ff ff ff    	jb     0x40d155
40d1f6:	5e                   	pop    %esi
40d1f7:	ff 37                	push   (%edi)
40d1f9:	e8 9b 67 ff ff       	call   0x403999
40d1fe:	5b                   	pop    %ebx
40d1ff:	83 27 00             	andl   $0x0,(%edi)
40d202:	83 67 04 00          	andl   $0x0,0x4(%edi)
40d206:	5f                   	pop    %edi
40d207:	5d                   	pop    %ebp
40d208:	c2 04 00             	ret    $0x4
40d20b:	55                   	push   %ebp
40d20c:	8b ec                	mov    %esp,%ebp
40d20e:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40d211:	85 c9                	test   %ecx,%ecx
40d213:	0f 84 39 01 00 00    	je     0x40d352
40d219:	83 f9 ff             	cmp    $0xffffffff,%ecx
40d21c:	0f 84 30 01 00 00    	je     0x40d352
40d222:	8b 45 08             	mov    0x8(%ebp),%eax
40d225:	56                   	push   %esi
40d226:	6a 04                	push   $0x4
40d228:	5e                   	pop    %esi
40d229:	3b c6                	cmp    %esi,%eax
40d22b:	0f 87 d2 00 00 00    	ja     0x40d303
40d231:	0f 84 a1 00 00 00    	je     0x40d2d8
40d237:	83 e8 00             	sub    $0x0,%eax
40d23a:	0f 84 1c 01 00 00    	je     0x40d35c