403e5a:	e8 fb f7 ff ff       	call   0x40365a
403e5f:	8b c8                	mov    %eax,%ecx
403e61:	e8 e2 e5 ff ff       	call   0x402448
403e66:	8b ce                	mov    %esi,%ecx
403e68:	e8 b7 fa ff ff       	call   0x403924
403e6d:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
403e72:	76 1c                	jbe    0x403e90
403e74:	ff 74 24 10          	push   0x10(%esp)
403e78:	8b cb                	mov    %ebx,%ecx
403e7a:	e8 c3 e5 ff ff       	call   0x402442
403e7f:	50                   	push   %eax
403e80:	8b ce                	mov    %esi,%ecx
403e82:	e8 d3 f7 ff ff       	call   0x40365a
403e87:	50                   	push   %eax
403e88:	e8 7d 04 00 00       	call   0x40430a
403e8d:	83 c4 0c             	add    $0xc,%esp
403e90:	8b ce                	mov    %esi,%ecx
403e92:	e8 c9 fe ff ff       	call   0x403d60
403e97:	8b ce                	mov    %esi,%ecx
403e99:	8b 00                	mov    (%eax),%eax
403e9b:	40                   	inc    %eax
403e9c:	50                   	push   %eax
403e9d:	53                   	push   %ebx
403e9e:	e8 81 fa ff ff       	call   0x403924
403ea3:	8b c8                	mov    %eax,%ecx
403ea5:	e8 88 04 00 00       	call   0x404332
403eaa:	5b                   	pop    %ebx
403eab:	8b ce                	mov    %esi,%ecx
403ead:	e8 ae fe ff ff       	call   0x403d60
403eb2:	ff 74 24 0c          	push   0xc(%esp)
403eb6:	8b ce                	mov    %esi,%ecx
403eb8:	c7 00 0f 00 00 00    	movl   $0xf,(%eax)
403ebe:	e8 10 fa ff ff       	call   0x4038d3
403ec3:	5e                   	pop    %esi
403ec4:	c2 08 00             	ret    $0x8
403ec7:	56                   	push   %esi
403ec8:	8b f1                	mov    %ecx,%esi
403eca:	57                   	push   %edi
403ecb:	f6 46 3c 01          	testb  $0x1,0x3c(%esi)
403ecf:	74 35                	je     0x403f06
403ed1:	e8 49 0d 00 00       	call   0x404c1f
403ed6:	8b ce                	mov    %esi,%ecx
403ed8:	85 c0                	test   %eax,%eax
403eda:	74 07                	je     0x403ee3
403edc:	e8 a7 06 00 00       	call   0x404588
403ee1:	eb 05                	jmp    0x403ee8
403ee3:	e8 80 06 00 00       	call   0x404568
403ee8:	8b ce                	mov    %esi,%ecx
403eea:	8b f8                	mov    %eax,%edi
403eec:	e8 71 06 00 00       	call   0x404562
403ef1:	2b f8                	sub    %eax,%edi
403ef3:	8b ce                	mov    %esi,%ecx
403ef5:	d1 ff                	sar    $1,%edi
403ef7:	57                   	push   %edi
403ef8:	e8 65 06 00 00       	call   0x404562
403efd:	50                   	push   %eax
403efe:	8d 4e 40             	lea    0x40(%esi),%ecx
403f01:	e8 5a 04 00 00       	call   0x404360
403f06:	33 ff                	xor    %edi,%edi
403f08:	8b ce                	mov    %esi,%ecx
403f0a:	57                   	push   %edi
403f0b:	57                   	push   %edi
403f0c:	57                   	push   %edi
403f0d:	e8 15 11 00 00       	call   0x405027
403f12:	57                   	push   %edi
403f13:	57                   	push   %edi
403f14:	8b ce                	mov    %esi,%ecx
403f16:	e8 54 11 00 00       	call   0x40506f
403f1b:	83 66 3c fe          	andl   $0xfffffffe,0x3c(%esi)
403f1f:	89 7e 38             	mov    %edi,0x38(%esi)
403f22:	5f                   	pop    %edi
403f23:	5e                   	pop    %esi
403f24:	c3                   	ret
403f25:	53                   	push   %ebx
403f26:	55                   	push   %ebp
403f27:	8b d9                	mov    %ecx,%ebx
403f29:	e8 e8 fd ff ff       	call   0x403d16
403f2e:	33 ed                	xor    %ebp,%ebp
403f30:	39 28                	cmp    %ebp,(%eax)
403f32:	74 77                	je     0x403fab
403f34:	56                   	push   %esi
403f35:	57                   	push   %edi
403f36:	8b cb                	mov    %ebx,%ecx
403f38:	e8 3e fe ff ff       	call   0x403d7b
403f3d:	8b cb                	mov    %ebx,%ecx
403f3f:	e8 d7 fd ff ff       	call   0x403d1b
403f44:	8b cb                	mov    %ebx,%ecx
403f46:	8b f0                	mov    %eax,%esi
403f48:	e8 c9 fd ff ff       	call   0x403d16
403f4d:	ff 36                	push   (%esi)
403f4f:	8b cb                	mov    %ebx,%ecx
403f51:	ff 30                	push   (%eax)
403f53:	e8 eb f8 ff ff       	call   0x403843
403f58:	8b cb                	mov    %ebx,%ecx
403f5a:	e8 ae fd ff ff       	call   0x403d0d
403f5f:	8b cb                	mov    %ebx,%ecx
403f61:	8b f8                	mov    %eax,%edi
403f63:	e8 ae fd ff ff       	call   0x403d16
403f68:	8b cb                	mov    %ebx,%ecx
403f6a:	8b f0                	mov    %eax,%esi
403f6c:	e8 a5 fd ff ff       	call   0x403d16
403f71:	8b c8                	mov    %eax,%ecx
403f73:	8b 07                	mov    (%edi),%eax
403f75:	2b 06                	sub    (%esi),%eax
403f77:	6a 18                	push   $0x18
403f79:	5e                   	pop    %esi
403f7a:	99                   	cltd
403f7b:	f7 fe                	idiv   %esi
403f7d:	50                   	push   %eax
403f7e:	ff 31                	push   (%ecx)
403f80:	8b cb                	mov    %ebx,%ecx
403f82:	e8 a7 f9 ff ff       	call   0x40392e
403f87:	8b c8                	mov    %eax,%ecx
403f89:	e8 a9 03 00 00       	call   0x404337
403f8e:	8b cb                	mov    %ebx,%ecx
403f90:	e8 81 fd ff ff       	call   0x403d16
403f95:	8b cb                	mov    %ebx,%ecx
403f97:	89 28                	mov    %ebp,(%eax)
403f99:	e8 7d fd ff ff       	call   0x403d1b
403f9e:	8b cb                	mov    %ebx,%ecx
403fa0:	89 28                	mov    %ebp,(%eax)
403fa2:	e8 66 fd ff ff       	call   0x403d0d
403fa7:	5f                   	pop    %edi
403fa8:	5e                   	pop    %esi
403fa9:	89 28                	mov    %ebp,(%eax)
403fab:	5d                   	pop    %ebp
403fac:	5b                   	pop    %ebx
403fad:	c3                   	ret
403fae:	c3                   	ret
403faf:	68 b4 75 42 00       	push   $0x4275b4
403fb4:	e8 a0 19 00 00       	call   0x405959
403fb9:	cc                   	int3
403fba:	68 c4 75 42 00       	push   $0x4275c4
403fbf:	e8 b5 19 00 00       	call   0x405979
403fc4:	cc                   	int3
403fc5:	e9 00 00 00 00       	jmp    0x403fca
403fca:	8b 4c 24 04          	mov    0x4(%esp),%ecx
403fce:	33 d2                	xor    %edx,%edx
403fd0:	42                   	inc    %edx
403fd1:	52                   	push   %edx
403fd2:	e8 82 f5 ff ff       	call   0x403559
403fd7:	c2 04 00             	ret    $0x4
403fda:	8b 4c 24 04          	mov    0x4(%esp),%ecx
403fde:	6a 01                	push   $0x1
403fe0:	6a 02                	push   $0x2
403fe2:	5a                   	pop    %edx
403fe3:	e8 71 f5 ff ff       	call   0x403559
403fe8:	c2 04 00             	ret    $0x4
403feb:	6a ff                	push   $0xffffffff
403fed:	6a 00                	push   $0x0
403fef:	ff 74 24 0c          	push   0xc(%esp)
403ff3:	e8 03 00 00 00       	call   0x403ffb
403ff8:	c2 04 00             	ret    $0x4
403ffb:	55                   	push   %ebp
403ffc:	57                   	push   %edi
403ffd:	ff 74 24 10          	push   0x10(%esp)
404001:	8b f9                	mov    %ecx,%edi
404003:	8b 4c 24 10          	mov    0x10(%esp),%ecx
404007:	e8 53 f6 ff ff       	call   0x40365f
40400c:	ff 74 24 14          	push   0x14(%esp)
404010:	8b 4c 24 10          	mov    0x10(%esp),%ecx
404014:	ff 74 24 14          	push   0x14(%esp)
404018:	e8 5e f6 ff ff       	call   0x40367b
40401d:	8b cf                	mov    %edi,%ecx
40401f:	8b e8                	mov    %eax,%ebp
404021:	e8 43 fd ff ff       	call   0x403d69
404026:	8b 08                	mov    (%eax),%ecx
404028:	f7 d1                	not    %ecx
40402a:	3b cd                	cmp    %ebp,%ecx
40402c:	8b cf                	mov    %edi,%ecx
40402e:	76 58                	jbe    0x404088
404030:	53                   	push   %ebx
404031:	e8 33 fd ff ff       	call   0x403d69
404036:	8b 18                	mov    (%eax),%ebx
404038:	03 dd                	add    %ebp,%ebx
40403a:	85 ed                	test   %ebp,%ebp
40403c:	74 42                	je     0x404080
40403e:	6a 00                	push   $0x0
404040:	53                   	push   %ebx
404041:	8b cf                	mov    %edi,%ecx
404043:	e8 3d fa ff ff       	call   0x403a85
404048:	84 c0                	test   %al,%al
40404a:	74 34                	je     0x404080
40404c:	56                   	push   %esi
40404d:	8b cf                	mov    %edi,%ecx
40404f:	e8 15 fd ff ff       	call   0x403d69
404054:	8b 4c 24 14          	mov    0x14(%esp),%ecx
404058:	8b f0                	mov    %eax,%esi
40405a:	55                   	push   %ebp
40405b:	e8 d0 fc ff ff       	call   0x403d30
404060:	03 44 24 1c          	add    0x1c(%esp),%eax
404064:	8b cf                	mov    %edi,%ecx
404066:	50                   	push   %eax
404067:	e8 b8 fc ff ff       	call   0x403d24
40406c:	03 06                	add    (%esi),%eax
40406e:	50                   	push   %eax
40406f:	e8 96 02 00 00       	call   0x40430a
404074:	83 c4 0c             	add    $0xc,%esp
404077:	8b cf                	mov    %edi,%ecx
404079:	53                   	push   %ebx
40407a:	e8 54 f8 ff ff       	call   0x4038d3
40407f:	5e                   	pop    %esi
404080:	5b                   	pop    %ebx
404081:	8b c7                	mov    %edi,%eax
404083:	5f                   	pop    %edi
404084:	5d                   	pop    %ebp
404085:	c2 0c 00             	ret    $0xc
404088:	e8 22 ff ff ff       	call   0x403faf
40408d:	cc                   	int3
40408e:	56                   	push   %esi
40408f:	ff 74 24 08          	push   0x8(%esp)
404093:	8b f1                	mov    %ecx,%esi
404095:	e8 10 07 00 00       	call   0x4047aa
40409a:	59                   	pop    %ecx
40409b:	50                   	push   %eax
40409c:	ff 74 24 0c          	push   0xc(%esp)
4040a0:	8b ce                	mov    %esi,%ecx
4040a2:	e8 04 00 00 00       	call   0x4040ab
4040a7:	5e                   	pop    %esi
4040a8:	c2 04 00             	ret    $0x4
4040ab:	53                   	push   %ebx
4040ac:	8b 5c 24 08          	mov    0x8(%esp),%ebx
4040b0:	57                   	push   %edi
4040b1:	53                   	push   %ebx
4040b2:	8b f9                	mov    %ecx,%edi
4040b4:	e8 9f fb ff ff       	call   0x403c58
4040b9:	8b cf                	mov    %edi,%ecx
4040bb:	84 c0                	test   %al,%al
4040bd:	74 16                	je     0x4040d5
4040bf:	ff 74 24 10          	push   0x10(%esp)
4040c3:	e8 5c fc ff ff       	call   0x403d24
4040c8:	2b d8                	sub    %eax,%ebx
4040ca:	8b cf                	mov    %edi,%ecx
4040cc:	53                   	push   %ebx
4040cd:	57                   	push   %edi
4040ce:	e8 28 ff ff ff       	call   0x403ffb
4040d3:	eb 5c                	jmp    0x404131
4040d5:	56                   	push   %esi
4040d6:	e8 8e fc ff ff       	call   0x403d69
4040db:	8b 74 24 14          	mov    0x14(%esp),%esi
4040df:	8b cf                	mov    %edi,%ecx
4040e1:	8b 00                	mov    (%eax),%eax
4040e3:	f7 d0                	not    %eax
4040e5:	3b c6                	cmp    %esi,%eax
4040e7:	76 4d                	jbe    0x404136
4040e9:	55                   	push   %ebp
4040ea:	e8 7a fc ff ff       	call   0x403d69
4040ef:	8b 28                	mov    (%eax),%ebp
4040f1:	03 ee                	add    %esi,%ebp
4040f3:	85 f6                	test   %esi,%esi
4040f5:	74 36                	je     0x40412d
4040f7:	6a 00                	push   $0x0
4040f9:	55                   	push   %ebp
4040fa:	8b cf                	mov    %edi,%ecx
4040fc:	e8 84 f9 ff ff       	call   0x403a85
404101:	84 c0                	test   %al,%al
404103:	74 28                	je     0x40412d
404105:	8b cf                	mov    %edi,%ecx
404107:	e8 5d fc ff ff       	call   0x403d69
40410c:	ff 74 24 18          	push   0x18(%esp)
404110:	8b cf                	mov    %edi,%ecx
404112:	8b f0                	mov    %eax,%esi
404114:	53                   	push   %ebx
404115:	e8 0a fc ff ff       	call   0x403d24
40411a:	03 06                	add    (%esi),%eax
40411c:	50                   	push   %eax
40411d:	e8 e8 01 00 00       	call   0x40430a
404122:	83 c4 0c             	add    $0xc,%esp
404125:	8b cf                	mov    %edi,%ecx
404127:	55                   	push   %ebp
404128:	e8 a6 f7 ff ff       	call   0x4038d3
40412d:	5d                   	pop    %ebp
40412e:	8b c7                	mov    %edi,%eax
404130:	5e                   	pop    %esi
404131:	5f                   	pop    %edi
404132:	5b                   	pop    %ebx
404133:	c2 08 00             	ret    $0x8
404136:	e8 74 fe ff ff       	call   0x403faf
40413b:	cc                   	int3
40413c:	55                   	push   %ebp
40413d:	8b ec                	mov    %esp,%ebp
40413f:	53                   	push   %ebx
404140:	56                   	push   %esi
404141:	57                   	push   %edi
404142:	8b 7d 0c             	mov    0xc(%ebp),%edi
404145:	8b f1                	mov    %ecx,%esi
404147:	8b 4d 08             	mov    0x8(%ebp),%ecx
40414a:	57                   	push   %edi
40414b:	e8 0f f5 ff ff       	call   0x40365f
404150:	ff 75 10             	push   0x10(%ebp)
404153:	8b 4d 08             	mov    0x8(%ebp),%ecx
404156:	57                   	push   %edi
404157:	e8 1f f5 ff ff       	call   0x40367b
40415c:	8b d8                	mov    %eax,%ebx
40415e:	8b ce                	mov    %esi,%ecx
404160:	3b 75 08             	cmp    0x8(%ebp),%esi
404163:	75 15                	jne    0x40417a
404165:	8d 04 1f             	lea    (%edi,%ebx,1),%eax
404168:	50                   	push   %eax
404169:	e8 9f 04 00 00       	call   0x40460d
40416e:	57                   	push   %edi
40416f:	6a 00                	push   $0x0
404171:	8b ce                	mov    %esi,%ecx
404173:	e8 b2 04 00 00       	call   0x40462a
404178:	eb 30                	jmp    0x4041aa
40417a:	6a 00                	push   $0x0
40417c:	53                   	push   %ebx
40417d:	e8 03 f9 ff ff       	call   0x403a85
404182:	84 c0                	test   %al,%al
404184:	74 24                	je     0x4041aa
404186:	8b 4d 08             	mov    0x8(%ebp),%ecx
404189:	53                   	push   %ebx
40418a:	e8 a1 fb ff ff       	call   0x403d30
40418f:	03 c7                	add    %edi,%eax
404191:	8b ce                	mov    %esi,%ecx
404193:	50                   	push   %eax
404194:	e8 8b fb ff ff       	call   0x403d24
404199:	50                   	push   %eax
40419a:	e8 6b 01 00 00       	call   0x40430a
40419f:	83 c4 0c             	add    $0xc,%esp
4041a2:	8b ce                	mov    %esi,%ecx
4041a4:	53                   	push   %ebx
4041a5:	e8 29 f7 ff ff       	call   0x4038d3
4041aa:	5f                   	pop    %edi
4041ab:	8b c6                	mov    %esi,%eax
4041ad:	5e                   	pop    %esi
4041ae:	5b                   	pop    %ebx
4041af:	5d                   	pop    %ebp
4041b0:	c2 0c 00             	ret    $0xc
4041b3:	56                   	push   %esi
4041b4:	ff 74 24 08          	push   0x8(%esp)
4041b8:	8b f1                	mov    %ecx,%esi
4041ba:	e8 eb 05 00 00       	call   0x4047aa
4041bf:	59                   	pop    %ecx
4041c0:	50                   	push   %eax
4041c1:	ff 74 24 0c          	push   0xc(%esp)
4041c5:	8b ce                	mov    %esi,%ecx
4041c7:	e8 04 00 00 00       	call   0x4041d0
4041cc:	5e                   	pop    %esi
4041cd:	c2 04 00             	ret    $0x4
4041d0:	55                   	push   %ebp
4041d1:	8b ec                	mov    %esp,%ebp
4041d3:	56                   	push   %esi
4041d4:	57                   	push   %edi
4041d5:	8b 7d 08             	mov    0x8(%ebp),%edi
4041d8:	8b f1                	mov    %ecx,%esi
4041da:	57                   	push   %edi
4041db:	e8 78 fa ff ff       	call   0x403c58
4041e0:	8b ce                	mov    %esi,%ecx
4041e2:	84 c0                	test   %al,%al