407dbd:	8b f2                	mov    %edx,%esi
407dbf:	8b d8                	mov    %eax,%ebx
407dc1:	c6 04 24 00          	movb   $0x0,(%esp)
407dc5:	f6 43 35 01          	testb  $0x1,0x35(%ebx)
407dc9:	74 0d                	je     0x407dd8
407dcb:	8b 43 30             	mov    0x30(%ebx),%eax
407dce:	f6 40 35 02          	testb  $0x2,0x35(%eax)
407dd2:	75 04                	jne    0x407dd8
407dd4:	80 63 35 fe          	andb   $0xfe,0x35(%ebx)
407dd8:	8a 43 35             	mov    0x35(%ebx),%al
407ddb:	22 05 98 82 40 00    	and    0x408298,%al
407de1:	8a 15 9c 82 40 00    	mov    0x40829c,%dl
407de7:	3a d0                	cmp    %al,%dl
407de9:	0f 84 9b 04 00 00    	je     0x40828a
407def:	8b 46 04             	mov    0x4(%esi),%eax
407df2:	83 f8 14             	cmp    $0x14,%eax
407df5:	7f 11                	jg     0x407e08
407df7:	74 69                	je     0x407e62
407df9:	83 e8 0c             	sub    $0xc,%eax
407dfc:	74 2b                	je     0x407e29
407dfe:	83 e8 03             	sub    $0x3,%eax
407e01:	74 5f                	je     0x407e62
407e03:	e9 82 04 00 00       	jmp    0x40828a
407e08:	2d 85 00 00 00       	sub    $0x85,%eax
407e0d:	74 49                	je     0x407e58
407e0f:	05 71 ff ff ff       	add    $0xffffff71,%eax
407e14:	83 e8 02             	sub    $0x2,%eax
407e17:	0f 83 6d 04 00 00    	jae    0x40828a
407e1d:	8b c3                	mov    %ebx,%eax
407e1f:	e8 48 3c 00 00       	call   0x40ba6c
407e24:	e9 61 04 00 00       	jmp    0x40828a
407e29:	f6 43 34 20          	testb  $0x20,0x34(%ebx)
407e2d:	0f 84 57 04 00 00    	je     0x40828a
407e33:	8b c3                	mov    %ebx,%eax
407e35:	e8 32 3c 00 00       	call   0x40ba6c
407e3a:	8b 46 0c             	mov    0xc(%esi),%eax
407e3d:	50                   	push   %eax
407e3e:	8b 46 08             	mov    0x8(%esi),%eax
407e41:	50                   	push   %eax
407e42:	6a 0c                	push   $0xc
407e44:	8b 43 1c             	mov    0x1c(%ebx),%eax
407e47:	50                   	push   %eax
407e48:	e8 27 d1 ff ff       	call   0x404f74
407e4d:	89 07                	mov    %eax,(%edi)
407e4f:	c6 04 24 01          	movb   $0x1,(%esp)
407e53:	e9 32 04 00 00       	jmp    0x40828a
407e58:	f6 43 35 01          	testb  $0x1,0x35(%ebx)
407e5c:	0f 84 28 04 00 00    	je     0x40828a
407e62:	f6 83 2b 01 00 00 10 	testb  $0x10,0x12b(%ebx)
407e69:	0f 85 1b 04 00 00    	jne    0x40828a
407e6f:	c6 04 24 01          	movb   $0x1,(%esp)
407e73:	8b 43 30             	mov    0x30(%ebx),%eax
407e76:	85 c0                	test   %eax,%eax
407e78:	74 43                	je     0x407ebd
407e7a:	f6 43 36 02          	testb  $0x2,0x36(%ebx)
407e7e:	75 3d                	jne    0x407ebd
407e80:	f6 40 35 02          	testb  $0x2,0x35(%eax)
407e84:	74 37                	je     0x407ebd
407e86:	f6 83 2b 01 00 00 20 	testb  $0x20,0x12b(%ebx)
407e8d:	75 2e                	jne    0x407ebd
407e8f:	8d 54 24 20          	lea    0x20(%esp),%edx
407e93:	8b c3                	mov    %ebx,%eax
407e95:	e8 62 3a 00 00       	call   0x40b8fc
407e9a:	6a ff                	push   $0xffffffff
407e9c:	8d 44 24 24          	lea    0x24(%esp),%eax
407ea0:	50                   	push   %eax
407ea1:	8b 43 30             	mov    0x30(%ebx),%eax
407ea4:	8b 40 1c             	mov    0x1c(%eax),%eax
407ea7:	50                   	push   %eax
407ea8:	e8 03 cc ff ff       	call   0x404ab0
407ead:	6a 00                	push   $0x0
407eaf:	8b 43 1c             	mov    0x1c(%ebx),%eax
407eb2:	50                   	push   %eax
407eb3:	e8 98 cc ff ff       	call   0x404b50
407eb8:	e9 cd 03 00 00       	jmp    0x40828a
407ebd:	83 7e 04 0f          	cmpl   $0xf,0x4(%esi)
407ec1:	0f 85 c3 03 00 00    	jne    0x40828a
407ec7:	33 c0                	xor    %eax,%eax
407ec9:	89 44 24 08          	mov    %eax,0x8(%esp)
407ecd:	f6 83 2b 01 00 00 20 	testb  $0x20,0x12b(%ebx)
407ed4:	0f 85 89 00 00 00    	jne    0x407f63
407eda:	6a 00                	push   $0x0
407edc:	6a 00                	push   $0x0
407ede:	6a 00                	push   $0x0
407ee0:	6a 00                	push   $0x0
407ee2:	e8 01 ca ff ff       	call   0x4048e8
407ee7:	8b f8                	mov    %eax,%edi
407ee9:	89 bb ce 00 00 00    	mov    %edi,0xce(%ebx)
407eef:	6a ff                	push   $0xffffffff
407ef1:	57                   	push   %edi
407ef2:	8b 43 1c             	mov    0x1c(%ebx),%eax
407ef5:	50                   	push   %eax
407ef6:	e8 8d cb ff ff       	call   0x404a88
407efb:	48                   	dec    %eax
407efc:	7f 11                	jg     0x407f0f
407efe:	8b 83 ce 00 00 00    	mov    0xce(%ebx),%eax
407f04:	50                   	push   %eax
407f05:	e8 f6 c9 ff ff       	call   0x404900
407f0a:	e9 7b 03 00 00       	jmp    0x40828a
407f0f:	8d 44 24 40          	lea    0x40(%esp),%eax
407f13:	50                   	push   %eax
407f14:	8b 43 1c             	mov    0x1c(%ebx),%eax
407f17:	50                   	push   %eax
407f18:	e8 a3 ca ff ff       	call   0x4049c0
407f1d:	8b f8                	mov    %eax,%edi
407f1f:	57                   	push   %edi
407f20:	e8 ab c9 ff ff       	call   0x4048d0
407f25:	8b e8                	mov    %eax,%ebp
407f27:	8d 44 24 30          	lea    0x30(%esp),%eax
407f2b:	50                   	push   %eax
407f2c:	8b 06                	mov    (%esi),%eax
407f2e:	50                   	push   %eax
407f2f:	e8 04 cb ff ff       	call   0x404a38
407f34:	8b 44 24 3c          	mov    0x3c(%esp),%eax
407f38:	50                   	push   %eax
407f39:	8b 44 24 3c          	mov    0x3c(%esp),%eax
407f3d:	50                   	push   %eax
407f3e:	57                   	push   %edi
407f3f:	e8 84 c9 ff ff       	call   0x4048c8
407f44:	50                   	push   %eax
407f45:	55                   	push   %ebp
407f46:	e8 0d ca ff ff       	call   0x404958
407f4b:	89 44 24 08          	mov    %eax,0x8(%esp)
407f4f:	66 c7 83 34 01 00 00 	movw   $0x0,0x134(%ebx)
407f56:	00 00
407f58:	66 c7 83 36 01 00 00 	movw   $0x0,0x136(%ebx)
407f5f:	00 00
407f61:	eb 12                	jmp    0x407f75
407f63:	8b 6e 08             	mov    0x8(%esi),%ebp
407f66:	8b 43 30             	mov    0x30(%ebx),%eax
407f69:	8b 80 ce 00 00 00    	mov    0xce(%eax),%eax
407f6f:	89 83 ce 00 00 00    	mov    %eax,0xce(%ebx)
407f75:	80 8b 2b 01 00 00 10 	orb    $0x10,0x12b(%ebx)
407f7c:	89 ab 98 00 00 00    	mov    %ebp,0x98(%ebx)
407f82:	f6 83 2b 01 00 00 20 	testb  $0x20,0x12b(%ebx)
407f89:	74 06                	je     0x407f91
407f8b:	f6 43 35 02          	testb  $0x2,0x35(%ebx)
407f8f:	74 0b                	je     0x407f9c
407f91:	6a 00                	push   $0x0
407f93:	55                   	push   %ebp
407f94:	6a 14                	push   $0x14
407f96:	53                   	push   %ebx
407f97:	e8 a0 45 00 00       	call   0x40c53c
407f9c:	6a 00                	push   $0x0
407f9e:	55                   	push   %ebp
407f9f:	6a 0f                	push   $0xf
407fa1:	53                   	push   %ebx
407fa2:	e8 95 45 00 00       	call   0x40c53c
407fa7:	6a 05                	push   $0x5
407fa9:	8b 43 1c             	mov    0x1c(%ebx),%eax
407fac:	50                   	push   %eax
407fad:	e8 de ca ff ff       	call   0x404a90
407fb2:	8b f0                	mov    %eax,%esi
407fb4:	6a 01                	push   $0x1
407fb6:	56                   	push   %esi
407fb7:	e8 d4 ca ff ff       	call   0x404a90
407fbc:	8b f0                	mov    %eax,%esi
407fbe:	85 f6                	test   %esi,%esi
407fc0:	0f 84 35 02 00 00    	je     0x4081fb
407fc6:	56                   	push   %esi
407fc7:	e8 04 cb ff ff       	call   0x404ad0
407fcc:	85 c0                	test   %eax,%eax
407fce:	0f 84 15 02 00 00    	je     0x4081e9
407fd4:	6a 00                	push   $0x0
407fd6:	6a 00                	push   $0x0
407fd8:	6a 00                	push   $0x0
407fda:	6a 00                	push   $0x0
407fdc:	e8 07 c9 ff ff       	call   0x4048e8
407fe1:	8b f8                	mov    %eax,%edi
407fe3:	57                   	push   %edi
407fe4:	56                   	push   %esi
407fe5:	e8 be ca ff ff       	call   0x404aa8
407fea:	48                   	dec    %eax
407feb:	7f 48                	jg     0x408035
407fed:	8d 44 24 20          	lea    0x20(%esp),%eax
407ff1:	50                   	push   %eax
407ff2:	56                   	push   %esi
407ff3:	e8 a8 ca ff ff       	call   0x404aa0
407ff8:	33 c0                	xor    %eax,%eax
407ffa:	89 44 24 10          	mov    %eax,0x10(%esp)
407ffe:	33 c0                	xor    %eax,%eax
408000:	89 44 24 14          	mov    %eax,0x14(%esp)
408004:	8d 44 24 10          	lea    0x10(%esp),%eax
408008:	50                   	push   %eax
408009:	8b 43 1c             	mov    0x1c(%ebx),%eax
40800c:	50                   	push   %eax
40800d:	e8 be c9 ff ff       	call   0x4049d0
408012:	8b 44 24 14          	mov    0x14(%esp),%eax
408016:	f7 d8                	neg    %eax
408018:	50                   	push   %eax
408019:	8b 44 24 14          	mov    0x14(%esp),%eax
40801d:	f7 d8                	neg    %eax
40801f:	50                   	push   %eax
408020:	8d 44 24 28          	lea    0x28(%esp),%eax
408024:	50                   	push   %eax
408025:	e8 be ca ff ff       	call   0x404ae8
40802a:	8d 54 24 20          	lea    0x20(%esp),%edx
40802e:	8b c7                	mov    %edi,%eax
408030:	e8 67 fd ff ff       	call   0x407d9c
408035:	0f bf 83 36 01 00 00 	movswl 0x136(%ebx),%eax
40803c:	50                   	push   %eax
40803d:	0f bf 83 34 01 00 00 	movswl 0x134(%ebx),%eax
408044:	50                   	push   %eax
408045:	57                   	push   %edi
408046:	e8 f5 c8 ff ff       	call   0x404940
40804b:	6a eb                	push   $0xffffffeb
40804d:	56                   	push   %esi
40804e:	e8 59 cf ff ff       	call   0x404fac
408053:	89 44 24 18          	mov    %eax,0x18(%esp)
408057:	6a 01                	push   $0x1
408059:	8b 83 ce 00 00 00    	mov    0xce(%ebx),%eax
40805f:	50                   	push   %eax
408060:	57                   	push   %edi
408061:	57                   	push   %edi
408062:	e8 49 c8 ff ff       	call   0x4048b0
408067:	83 f8 02             	cmp    $0x2,%eax
40806a:	0f 8c 73 01 00 00    	jl     0x4081e3
408070:	8b 44 24 18          	mov    0x18(%esp),%eax
408074:	89 44 24 1c          	mov    %eax,0x1c(%esp)
408078:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
40807d:	0f 84 4a 01 00 00    	je     0x4081cd
408083:	8b 44 24 1c          	mov    0x1c(%esp),%eax
408087:	8a 40 35             	mov    0x35(%eax),%al
40808a:	22 05 98 82 40 00    	and    0x408298,%al
408090:	8a 15 9c 82 40 00    	mov    0x40829c,%dl
408096:	3a d0                	cmp    %al,%dl
408098:	0f 84 2f 01 00 00    	je     0x4081cd
40809e:	55                   	push   %ebp
40809f:	e8 ac c8 ff ff       	call   0x404950
4080a4:	89 44 24 04          	mov    %eax,0x4(%esp)
4080a8:	8b 44 24 1c          	mov    0x1c(%esp),%eax
4080ac:	80 88 2b 01 00 00 20 	orb    $0x20,0x12b(%eax)
4080b3:	8b 44 24 1c          	mov    0x1c(%esp),%eax
4080b7:	e8 20 3b 00 00       	call   0x40bbdc
4080bc:	66 03 83 34 01 00 00 	add    0x134(%ebx),%ax
4080c3:	66 89 44 24 0c       	mov    %ax,0xc(%esp)
4080c8:	8b 44 24 1c          	mov    0x1c(%esp),%eax
4080cc:	e8 3b 3b 00 00       	call   0x40bc0c
4080d1:	66 03 83 36 01 00 00 	add    0x136(%ebx),%ax
4080d8:	66 89 44 24 0e       	mov    %ax,0xe(%esp)
4080dd:	6a 00                	push   $0x0
4080df:	0f bf 44 24 12       	movswl 0x12(%esp),%eax
4080e4:	f7 d8                	neg    %eax
4080e6:	50                   	push   %eax
4080e7:	0f bf 44 24 14       	movswl 0x14(%esp),%eax
4080ec:	f7 d8                	neg    %eax
4080ee:	50                   	push   %eax
4080ef:	55                   	push   %ebp
4080f0:	e8 b3 c8 ff ff       	call   0x4049a8
4080f5:	6a 02                	push   $0x2
4080f7:	55                   	push   %ebp
4080f8:	68 17 03 00 00       	push   $0x317
4080fd:	56                   	push   %esi
4080fe:	e8 f9 ce ff ff       	call   0x404ffc
408103:	33 c0                	xor    %eax,%eax
408105:	89 44 24 10          	mov    %eax,0x10(%esp)
408109:	33 c0                	xor    %eax,%eax
40810b:	89 44 24 14          	mov    %eax,0x14(%esp)
40810f:	8d 44 24 10          	lea    0x10(%esp),%eax
408113:	50                   	push   %eax
408114:	8b 44 24 20          	mov    0x20(%esp),%eax
408118:	8b 40 1c             	mov    0x1c(%eax),%eax
40811b:	50                   	push   %eax
40811c:	e8 af c8 ff ff       	call   0x4049d0
408121:	8d 44 24 20          	lea    0x20(%esp),%eax
408125:	50                   	push   %eax
408126:	8b 44 24 20          	mov    0x20(%esp),%eax
40812a:	8b 40 1c             	mov    0x1c(%eax),%eax
40812d:	50                   	push   %eax
40812e:	e8 6d c9 ff ff       	call   0x404aa0
408133:	66 8b 44 24 0c       	mov    0xc(%esp),%ax
408138:	66 03 44 24 10       	add    0x10(%esp),%ax
40813d:	66 2b 44 24 20       	sub    0x20(%esp),%ax
408142:	8b 54 24 1c          	mov    0x1c(%esp),%edx
408146:	66 89 82 34 01 00 00 	mov    %ax,0x134(%edx)
40814d:	66 8b 44 24 0e       	mov    0xe(%esp),%ax
408152:	66 03 44 24 14       	add    0x14(%esp),%ax
408157:	66 2b 44 24 24       	sub    0x24(%esp),%ax
40815c:	8b 54 24 1c          	mov    0x1c(%esp),%edx
408160:	66 89 82 36 01 00 00 	mov    %ax,0x136(%edx)
408167:	6a 00                	push   $0x0
408169:	8b 44 24 20          	mov    0x20(%esp),%eax
40816d:	0f bf 80 36 01 00 00 	movswl 0x136(%eax),%eax
408174:	f7 d8                	neg    %eax
408176:	50                   	push   %eax
408177:	8b 44 24 24          	mov    0x24(%esp),%eax
40817b:	0f bf 80 34 01 00 00 	movswl 0x134(%eax),%eax
408182:	f7 d8                	neg    %eax
408184:	50                   	push   %eax
408185:	55                   	push   %ebp
408186:	e8 1d c8 ff ff       	call   0x4049a8
40818b:	8d 44 24 20          	lea    0x20(%esp),%eax
40818f:	50                   	push   %eax
408190:	56                   	push   %esi
408191:	e8 a2 c8 ff ff       	call   0x404a38
408196:	8b 44 24 2c          	mov    0x2c(%esp),%eax
40819a:	50                   	push   %eax
40819b:	8b 44 24 2c          	mov    0x2c(%esp),%eax
40819f:	50                   	push   %eax
4081a0:	6a 00                	push   $0x0
4081a2:	6a 00                	push   $0x0
4081a4:	55                   	push   %ebp
4081a5:	e8 86 c7 ff ff       	call   0x404930
4081aa:	6a 00                	push   $0x0
4081ac:	55                   	push   %ebp
4081ad:	6a 0f                	push   $0xf
4081af:	56                   	push   %esi
4081b0:	e8 47 ce ff ff       	call   0x404ffc
4081b5:	8b 44 24 1c          	mov    0x1c(%esp),%eax
4081b9:	80 a0 2b 01 00 00 df 	andb   $0xdf,0x12b(%eax)
4081c0:	8b 44 24 04          	mov    0x4(%esp),%eax
4081c4:	50                   	push   %eax
4081c5:	55                   	push   %ebp
4081c6:	e8 7d c7 ff ff       	call   0x404948
4081cb:	eb 16                	jmp    0x4081e3
4081cd:	6a 04                	push   $0x4
4081cf:	57                   	push   %edi
4081d0:	8b 83 ce 00 00 00    	mov    0xce(%ebx),%eax
4081d6:	50                   	push   %eax
4081d7:	8b 83 ce 00 00 00    	mov    0xce(%ebx),%eax
4081dd:	50                   	push   %eax
4081de:	e8 cd c6 ff ff       	call   0x4048b0
4081e3:	57                   	push   %edi
4081e4:	e8 17 c7 ff ff       	call   0x404900
4081e9:	6a 03                	push   $0x3
4081eb:	56                   	push   %esi
4081ec:	e8 9f c8 ff ff       	call   0x404a90
4081f1:	8b f0                	mov    %eax,%esi
4081f3:	85 f6                	test   %esi,%esi
4081f5:	0f 85 cb fd ff ff    	jne    0x407fc6
4081fb:	33 c0                	xor    %eax,%eax
4081fd:	89 83 98 00 00 00    	mov    %eax,0x98(%ebx)
408203:	80 a3 2b 01 00 00 ef 	andb   $0xef,0x12b(%ebx)
40820a:	f6 83 2b 01 00 00 20 	testb  $0x20,0x12b(%ebx)
408211:	75 77                	jne    0x40828a
408213:	6a 12                	push   $0x12
408215:	6a 00                	push   $0x0
408217:	8b 43 1c             	mov    0x1c(%ebx),%eax
40821a:	50                   	push   %eax
40821b:	e8 30 c8 ff ff       	call   0x404a50
408220:	8b f0                	mov    %eax,%esi
408222:	6a 01                	push   $0x1
408224:	8b 83 ce 00 00 00    	mov    0xce(%ebx),%eax
40822a:	50                   	push   %eax
40822b:	56                   	push   %esi
40822c:	e8 df c6 ff ff       	call   0x404910
408231:	68 20 00 cc 00       	push   $0xcc0020
408236:	6a 00                	push   $0x0
408238:	6a 00                	push   $0x0
40823a:	55                   	push   %ebp