40df32:	3b c8                	cmp    %eax,%ecx
40df34:	75 05                	jne    0x40df3b
40df36:	33 c9                	xor    %ecx,%ecx
40df38:	89 4a 04             	mov    %ecx,0x4(%edx)
40df3b:	33 c0                	xor    %eax,%eax
40df3d:	85 c9                	test   %ecx,%ecx
40df3f:	0f 95 c0             	setne  %al
40df42:	c3                   	ret
40df43:	33 c0                	xor    %eax,%eax
40df45:	c3                   	ret
40df46:	cc                   	int3
40df47:	cc                   	int3
40df48:	cc                   	int3
40df49:	cc                   	int3
40df4a:	cc                   	int3
40df4b:	cc                   	int3
40df4c:	cc                   	int3
40df4d:	cc                   	int3
40df4e:	cc                   	int3
40df4f:	cc                   	int3
40df50:	8b ff                	mov    %edi,%edi
40df52:	55                   	push   %ebp
40df53:	8b ec                	mov    %esp,%ebp
40df55:	51                   	push   %ecx
40df56:	51                   	push   %ecx
40df57:	a1 08 85 43 00       	mov    0x438508,%eax
40df5c:	33 c5                	xor    %ebp,%eax
40df5e:	89 45 fc             	mov    %eax,-0x4(%ebp)
40df61:	53                   	push   %ebx
40df62:	56                   	push   %esi
40df63:	57                   	push   %edi
40df64:	8b 7d 08             	mov    0x8(%ebp),%edi
40df67:	8b 47 04             	mov    0x4(%edi),%eax
40df6a:	89 45 f8             	mov    %eax,-0x8(%ebp)
40df6d:	8d 34 00             	lea    (%eax,%eax,1),%esi
40df70:	8b c6                	mov    %esi,%eax
40df72:	e8 89 00 01 00       	call   0x41e000
40df77:	8b 47 08             	mov    0x8(%edi),%eax
40df7a:	8b dc                	mov    %esp,%ebx
40df7c:	8b 0f                	mov    (%edi),%ecx
40df7e:	56                   	push   %esi
40df7f:	8b 40 04             	mov    0x4(%eax),%eax
40df82:	8d 04 48             	lea    (%eax,%ecx,2),%eax
40df85:	50                   	push   %eax
40df86:	53                   	push   %ebx
40df87:	e8 5a cf 00 00       	call   0x41aee6
40df8c:	8b 55 f8             	mov    -0x8(%ebp),%edx
40df8f:	83 c4 0c             	add    $0xc,%esp
40df92:	8b cb                	mov    %ebx,%ecx
40df94:	e8 27 01 00 00       	call   0x40e0c0
40df99:	8d 65 ec             	lea    -0x14(%ebp),%esp
40df9c:	5f                   	pop    %edi
40df9d:	5e                   	pop    %esi
40df9e:	5b                   	pop    %ebx
40df9f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40dfa2:	33 cd                	xor    %ebp,%ecx
40dfa4:	e8 17 c8 00 00       	call   0x41a7c0
40dfa9:	c9                   	leave
40dfaa:	c2 04 00             	ret    $0x4
40dfad:	cc                   	int3
40dfae:	cc                   	int3
40dfaf:	cc                   	int3
40dfb0:	8b ff                	mov    %edi,%edi
40dfb2:	55                   	push   %ebp
40dfb3:	8b ec                	mov    %esp,%ebp
40dfb5:	83 ec 10             	sub    $0x10,%esp
40dfb8:	a1 08 85 43 00       	mov    0x438508,%eax
40dfbd:	33 c5                	xor    %ebp,%eax
40dfbf:	89 45 fc             	mov    %eax,-0x4(%ebp)
40dfc2:	53                   	push   %ebx
40dfc3:	56                   	push   %esi
40dfc4:	8b 75 08             	mov    0x8(%ebp),%esi
40dfc7:	b9 02 00 00 00       	mov    $0x2,%ecx
40dfcc:	57                   	push   %edi
40dfcd:	8b 46 0c             	mov    0xc(%esi),%eax
40dfd0:	89 45 f4             	mov    %eax,-0xc(%ebp)
40dfd3:	f7 e1                	mul    %ecx
40dfd5:	8b d8                	mov    %eax,%ebx
40dfd7:	85 d2                	test   %edx,%edx
40dfd9:	72 0f                	jb     0x40dfea
40dfdb:	0f 87 8b 28 01 00    	ja     0x42086c
40dfe1:	83 fb ff             	cmp    $0xffffffff,%ebx
40dfe4:	0f 87 82 28 01 00    	ja     0x42086c
40dfea:	e8 11 00 01 00       	call   0x41e000
40dfef:	8b fc                	mov    %esp,%edi
40dff1:	53                   	push   %ebx
40dff2:	ff 76 04             	push   0x4(%esi)
40dff5:	57                   	push   %edi
40dff6:	e8 eb ce 00 00       	call   0x41aee6
40dffb:	8b 55 f4             	mov    -0xc(%ebp),%edx
40dffe:	83 c4 0c             	add    $0xc,%esp
40e001:	8b cf                	mov    %edi,%ecx
40e003:	e8 b8 00 00 00       	call   0x40e0c0
40e008:	89 45 f4             	mov    %eax,-0xc(%ebp)
40e00b:	b9 02 00 00 00       	mov    $0x2,%ecx
40e010:	8b 46 60             	mov    0x60(%esi),%eax
40e013:	89 45 f8             	mov    %eax,-0x8(%ebp)
40e016:	f7 e1                	mul    %ecx
40e018:	8b d8                	mov    %eax,%ebx
40e01a:	85 d2                	test   %edx,%edx
40e01c:	72 0f                	jb     0x40e02d
40e01e:	0f 87 54 28 01 00    	ja     0x420878
40e024:	83 fb ff             	cmp    $0xffffffff,%ebx
40e027:	0f 87 4b 28 01 00    	ja     0x420878
40e02d:	8b c3                	mov    %ebx,%eax
40e02f:	e8 cc ff 00 00       	call   0x41e000
40e034:	8b fc                	mov    %esp,%edi
40e036:	53                   	push   %ebx
40e037:	ff 76 58             	push   0x58(%esi)
40e03a:	57                   	push   %edi
40e03b:	e8 a6 ce 00 00       	call   0x41aee6
40e040:	8b 55 f8             	mov    -0x8(%ebp),%edx
40e043:	83 c4 0c             	add    $0xc,%esp
40e046:	8b cf                	mov    %edi,%ecx
40e048:	e8 73 00 00 00       	call   0x40e0c0
40e04d:	89 45 f8             	mov    %eax,-0x8(%ebp)
40e050:	b9 02 00 00 00       	mov    $0x2,%ecx
40e055:	8b 86 b4 00 00 00    	mov    0xb4(%esi),%eax
40e05b:	89 45 f0             	mov    %eax,-0x10(%ebp)
40e05e:	f7 e1                	mul    %ecx
40e060:	8b d8                	mov    %eax,%ebx
40e062:	85 d2                	test   %edx,%edx
40e064:	72 07                	jb     0x40e06d
40e066:	77 4e                	ja     0x40e0b6
40e068:	83 fb ff             	cmp    $0xffffffff,%ebx
40e06b:	77 49                	ja     0x40e0b6
40e06d:	8b c3                	mov    %ebx,%eax
40e06f:	e8 8c ff 00 00       	call   0x41e000
40e074:	8b fc                	mov    %esp,%edi
40e076:	53                   	push   %ebx
40e077:	ff b6 ac 00 00 00    	push   0xac(%esi)
40e07d:	57                   	push   %edi
40e07e:	e8 63 ce 00 00       	call   0x41aee6
40e083:	8b 55 f0             	mov    -0x10(%ebp),%edx
40e086:	83 c4 0c             	add    $0xc,%esp
40e089:	8b cf                	mov    %edi,%ecx
40e08b:	e8 30 00 00 00       	call   0x40e0c0
40e090:	8b c8                	mov    %eax,%ecx
40e092:	8b 86 3c 02 00 00    	mov    0x23c(%esi),%eax
40e098:	33 c1                	xor    %ecx,%eax
40e09a:	33 45 f8             	xor    -0x8(%ebp),%eax
40e09d:	33 45 f4             	xor    -0xc(%ebp),%eax
40e0a0:	8d 65 e4             	lea    -0x1c(%ebp),%esp
40e0a3:	5f                   	pop    %edi
40e0a4:	5e                   	pop    %esi
40e0a5:	5b                   	pop    %ebx
40e0a6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40e0a9:	33 cd                	xor    %ebp,%ecx
40e0ab:	e8 10 c7 00 00       	call   0x41a7c0
40e0b0:	8b e5                	mov    %ebp,%esp
40e0b2:	5d                   	pop    %ebp
40e0b3:	c2 04 00             	ret    $0x4
40e0b6:	33 c9                	xor    %ecx,%ecx
40e0b8:	eb d8                	jmp    0x40e092
40e0ba:	cc                   	int3
40e0bb:	cc                   	int3
40e0bc:	cc                   	int3
40e0bd:	cc                   	int3
40e0be:	cc                   	int3
40e0bf:	cc                   	int3
40e0c0:	8b ff                	mov    %edi,%edi
40e0c2:	56                   	push   %esi
40e0c3:	57                   	push   %edi
40e0c4:	8b f2                	mov    %edx,%esi
40e0c6:	8b f9                	mov    %ecx,%edi
40e0c8:	56                   	push   %esi
40e0c9:	57                   	push   %edi
40e0ca:	56                   	push   %esi
40e0cb:	57                   	push   %edi
40e0cc:	68 00 02 00 00       	push   $0x200
40e0d1:	68 00 08 00 00       	push   $0x800
40e0d6:	ff 15 9c a1 43 00    	call   *0x43a19c
40e0dc:	3b c6                	cmp    %esi,%eax
40e0de:	0f 85 a0 27 01 00    	jne    0x420884
40e0e4:	85 f6                	test   %esi,%esi
40e0e6:	74 0c                	je     0x40e0f4
40e0e8:	8b cf                	mov    %edi,%ecx
40e0ea:	8d 14 36             	lea    (%esi,%esi,1),%edx
40e0ed:	5f                   	pop    %edi
40e0ee:	5e                   	pop    %esi
40e0ef:	e9 2c a9 00 00       	jmp    0x418a20
40e0f4:	5f                   	pop    %edi
40e0f5:	33 c0                	xor    %eax,%eax
40e0f7:	5e                   	pop    %esi
40e0f8:	c3                   	ret
40e0f9:	cc                   	int3
40e0fa:	cc                   	int3
40e0fb:	cc                   	int3
40e0fc:	cc                   	int3
40e0fd:	cc                   	int3
40e0fe:	cc                   	int3
40e0ff:	cc                   	int3
40e100:	8b ff                	mov    %edi,%edi
40e102:	55                   	push   %ebp
40e103:	8b ec                	mov    %esp,%ebp
40e105:	8b 45 08             	mov    0x8(%ebp),%eax
40e108:	8b 50 0c             	mov    0xc(%eax),%edx
40e10b:	8b 48 04             	mov    0x4(%eax),%ecx
40e10e:	e8 04 00 00 00       	call   0x40e117
40e113:	5d                   	pop    %ebp
40e114:	c2 04 00             	ret    $0x4
40e117:	8b ff                	mov    %edi,%edi
40e119:	55                   	push   %ebp
40e11a:	8b ec                	mov    %esp,%ebp
40e11c:	51                   	push   %ecx
40e11d:	51                   	push   %ecx
40e11e:	a1 08 85 43 00       	mov    0x438508,%eax
40e123:	33 c5                	xor    %ebp,%eax
40e125:	89 45 fc             	mov    %eax,-0x4(%ebp)
40e128:	53                   	push   %ebx
40e129:	56                   	push   %esi
40e12a:	57                   	push   %edi
40e12b:	8b da                	mov    %edx,%ebx
40e12d:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40e130:	6a 02                	push   $0x2
40e132:	8b c3                	mov    %ebx,%eax
40e134:	59                   	pop    %ecx
40e135:	f7 e1                	mul    %ecx
40e137:	8b f8                	mov    %eax,%edi
40e139:	85 d2                	test   %edx,%edx
40e13b:	72 07                	jb     0x40e144
40e13d:	77 34                	ja     0x40e173
40e13f:	83 ff ff             	cmp    $0xffffffff,%edi
40e142:	77 2f                	ja     0x40e173
40e144:	e8 b7 fe 00 00       	call   0x41e000
40e149:	8b f4                	mov    %esp,%esi
40e14b:	57                   	push   %edi
40e14c:	ff 75 f8             	push   -0x8(%ebp)
40e14f:	56                   	push   %esi
40e150:	e8 91 cd 00 00       	call   0x41aee6
40e155:	83 c4 0c             	add    $0xc,%esp
40e158:	8b d3                	mov    %ebx,%edx
40e15a:	8b ce                	mov    %esi,%ecx
40e15c:	e8 5f ff ff ff       	call   0x40e0c0
40e161:	8d 65 ec             	lea    -0x14(%ebp),%esp
40e164:	5f                   	pop    %edi
40e165:	5e                   	pop    %esi
40e166:	5b                   	pop    %ebx
40e167:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40e16a:	33 cd                	xor    %ebp,%ecx
40e16c:	e8 4f c6 00 00       	call   0x41a7c0
40e171:	c9                   	leave
40e172:	c3                   	ret
40e173:	33 c0                	xor    %eax,%eax
40e175:	eb ea                	jmp    0x40e161
40e177:	8b ff                	mov    %edi,%edi
40e179:	55                   	push   %ebp
40e17a:	8b ec                	mov    %esp,%ebp
40e17c:	83 ec 0c             	sub    $0xc,%esp
40e17f:	56                   	push   %esi
40e180:	33 f6                	xor    %esi,%esi
40e182:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40e185:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40e188:	89 75 fc             	mov    %esi,-0x4(%ebp)
40e18b:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40e18e:	e8 85 fd ff ff       	call   0x40df18
40e193:	85 c0                	test   %eax,%eax
40e195:	74 27                	je     0x40e1be
40e197:	8b 45 fc             	mov    -0x4(%ebp),%eax
40e19a:	8b ce                	mov    %esi,%ecx
40e19c:	f7 d8                	neg    %eax
40e19e:	1b c0                	sbb    %eax,%eax
40e1a0:	23 45 f8             	and    -0x8(%ebp),%eax
40e1a3:	74 03                	je     0x40e1a8
40e1a5:	8b 48 08             	mov    0x8(%eax),%ecx
40e1a8:	ff 75 08             	push   0x8(%ebp)
40e1ab:	e8 a9 00 00 00       	call   0x40e259
40e1b0:	85 c0                	test   %eax,%eax
40e1b2:	74 d7                	je     0x40e18b
40e1b4:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40e1b7:	e8 09 00 00 00       	call   0x40e1c5
40e1bc:	8b f0                	mov    %eax,%esi
40e1be:	8b c6                	mov    %esi,%eax
40e1c0:	5e                   	pop    %esi
40e1c1:	c9                   	leave
40e1c2:	c2 04 00             	ret    $0x4
40e1c5:	6a 00                	push   $0x0
40e1c7:	b8 51 e1 41 00       	mov    $0x41e151,%eax
40e1cc:	e8 3d cc 00 00       	call   0x41ae0e
40e1d1:	8b f9                	mov    %ecx,%edi
40e1d3:	8b 0f                	mov    (%edi),%ecx
40e1d5:	33 db                	xor    %ebx,%ebx
40e1d7:	85 c9                	test   %ecx,%ecx
40e1d9:	74 43                	je     0x40e21e
40e1db:	39 5f 08             	cmp    %ebx,0x8(%edi)
40e1de:	74 3e                	je     0x40e21e
40e1e0:	39 5f 04             	cmp    %ebx,0x4(%edi)
40e1e3:	74 39                	je     0x40e21e
40e1e5:	ff 77 08             	push   0x8(%edi)
40e1e8:	e8 39 00 00 00       	call   0x40e226
40e1ed:	85 c0                	test   %eax,%eax
40e1ef:	74 18                	je     0x40e209
40e1f1:	8b 58 04             	mov    0x4(%eax),%ebx
40e1f4:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40e1f8:	8b 35 40 1a 40 00    	mov    0x401a40,%esi
40e1fe:	8b ce                	mov    %esi,%ecx
40e200:	50                   	push   %eax
40e201:	ff 15 20 a5 43 00    	call   *0x43a520
40e207:	ff d6                	call   *%esi
40e209:	8b 47 08             	mov    0x8(%edi),%eax
40e20c:	8b 0f                	mov    (%edi),%ecx
40e20e:	83 c1 04             	add    $0x4,%ecx
40e211:	8b 10                	mov    (%eax),%edx
40e213:	2b d1                	sub    %ecx,%edx
40e215:	f7 da                	neg    %edx
40e217:	1b d2                	sbb    %edx,%edx
40e219:	23 10                	and    (%eax),%edx
40e21b:	89 57 04             	mov    %edx,0x4(%edi)
40e21e:	8b c3                	mov    %ebx,%eax
40e220:	e8 b7 cb 00 00       	call   0x41addc
40e225:	c3                   	ret
40e226:	8b ff                	mov    %edi,%edi
40e228:	55                   	push   %ebp
40e229:	8b ec                	mov    %esp,%ebp
40e22b:	8b 55 08             	mov    0x8(%ebp),%edx
40e22e:	85 d2                	test   %edx,%edx
40e230:	74 23                	je     0x40e255
40e232:	8d 41 04             	lea    0x4(%ecx),%eax
40e235:	3b d0                	cmp    %eax,%edx
40e237:	74 1c                	je     0x40e255
40e239:	56                   	push   %esi
40e23a:	8b 32                	mov    (%edx),%esi
40e23c:	8b 06                	mov    (%esi),%eax
40e23e:	89 02                	mov    %eax,(%edx)
40e240:	3b 71 08             	cmp    0x8(%ecx),%esi
40e243:	75 03                	jne    0x40e248
40e245:	89 51 08             	mov    %edx,0x8(%ecx)
40e248:	ff 49 0c             	decl   0xc(%ecx)
40e24b:	8b c6                	mov    %esi,%eax
40e24d:	83 26 00             	andl   $0x0,(%esi)
40e250:	5e                   	pop    %esi
40e251:	5d                   	pop    %ebp
40e252:	c2 04 00             	ret    $0x4
40e255:	33 c0                	xor    %eax,%eax
40e257:	eb f8                	jmp    0x40e251
40e259:	8b ff                	mov    %edi,%edi
40e25b:	55                   	push   %ebp
40e25c:	8b ec                	mov    %esp,%ebp
40e25e:	56                   	push   %esi
40e25f:	57                   	push   %edi
40e260:	8b 7d 08             	mov    0x8(%ebp),%edi
40e263:	8b f1                	mov    %ecx,%esi
40e265:	57                   	push   %edi
40e266:	e8 2f 00 00 00       	call   0x40e29a
40e26b:	85 c0                	test   %eax,%eax
40e26d:	74 27                	je     0x40e296
40e26f:	8d 47 54             	lea    0x54(%edi),%eax
40e272:	50                   	push   %eax
40e273:	8d 4e 54             	lea    0x54(%esi),%ecx
40e276:	e8 1f 00 00 00       	call   0x40e29a