40ad9c:	74 e4                	je     0x40ad82
40ad9e:	39 f0                	cmp    %esi,%eax
40ada0:	50                   	push   %eax
40ada1:	0f 94 c2             	sete   %dl
40ada4:	52                   	push   %edx
40ada5:	e8 d2 13 00 00       	call   0x40c17c
40adaa:	5a                   	pop    %edx
40adab:	38 c2                	cmp    %al,%dl
40adad:	58                   	pop    %eax
40adae:	74 d2                	je     0x40ad82
40adb0:	e8 af d7 ff ff       	call   0x408564
40adb5:	eb cb                	jmp    0x40ad82
40adb7:	5f                   	pop    %edi
40adb8:	5e                   	pop    %esi
40adb9:	5b                   	pop    %ebx
40adba:	c3                   	ret
40adbb:	90                   	nop
40adbc:	53                   	push   %ebx
40adbd:	56                   	push   %esi
40adbe:	89 c6                	mov    %eax,%esi
40adc0:	e8 8b ff ff ff       	call   0x40ad50
40adc5:	93                   	xchg   %eax,%ebx
40adc6:	c7 43 24 04 40 03 50 	movl   $0x50034004,0x24(%ebx)
40adcd:	c7 43 68 74 ad 40 00 	movl   $0x40ad74,0x68(%ebx)
40add4:	85 f6                	test   %esi,%esi
40add6:	74 0e                	je     0x40ade6
40add8:	0f ba 6e 34 80       	btsl   $0x80,0x34(%esi)
40addd:	75 07                	jne    0x40ade6
40addf:	89 d8                	mov    %ebx,%eax
40ade1:	e8 e6 13 00 00       	call   0x40c1cc
40ade6:	93                   	xchg   %eax,%ebx
40ade7:	5e                   	pop    %esi
40ade8:	5b                   	pop    %ebx
40ade9:	c3                   	ret
40adea:	8b c0                	mov    %eax,%eax
40adec:	66 83 7a 04 14       	cmpw   $0x14,0x4(%edx)
40adf1:	75 5d                	jne    0x40ae50
40adf3:	c6 01 01             	movb   $0x1,(%ecx)
40adf6:	53                   	push   %ebx
40adf7:	57                   	push   %edi
40adf8:	89 c3                	mov    %eax,%ebx
40adfa:	8b 7a 08             	mov    0x8(%edx),%edi
40adfd:	e8 3a cf ff ff       	call   0x407d3c
40ae02:	f6 43 35 01          	testb  $0x1,0x35(%ebx)
40ae06:	75 46                	jne    0x40ae4e
40ae08:	6a 02                	push   $0x2
40ae0a:	57                   	push   %edi
40ae0b:	e8 58 9b ff ff       	call   0x404968
40ae10:	8b 83 a4 00 00 00    	mov    0xa4(%ebx),%eax
40ae16:	e8 49 f6 ff ff       	call   0x40a464
40ae1b:	50                   	push   %eax
40ae1c:	57                   	push   %edi
40ae1d:	e8 3e 9b ff ff       	call   0x404960
40ae22:	31 c0                	xor    %eax,%eax
40ae24:	50                   	push   %eax
40ae25:	50                   	push   %eax
40ae26:	50                   	push   %eax
40ae27:	57                   	push   %edi
40ae28:	e8 43 9b ff ff       	call   0x404970
40ae2d:	83 ec 10             	sub    $0x10,%esp
40ae30:	54                   	push   %esp
40ae31:	ff 73 1c             	push   0x1c(%ebx)
40ae34:	e8 ff 9b ff ff       	call   0x404a38
40ae39:	89 d8                	mov    %ebx,%eax
40ae3b:	ff 15 44 61 42 00    	call   *0x426144
40ae41:	89 e2                	mov    %esp,%edx
40ae43:	50                   	push   %eax
40ae44:	52                   	push   %edx
40ae45:	57                   	push   %edi
40ae46:	e8 dd 9b ff ff       	call   0x404a28
40ae4b:	83 c4 10             	add    $0x10,%esp
40ae4e:	5f                   	pop    %edi
40ae4f:	5b                   	pop    %ebx
40ae50:	31 c0                	xor    %eax,%eax
40ae52:	c3                   	ret
40ae53:	90                   	nop
40ae54:	53                   	push   %ebx
40ae55:	93                   	xchg   %eax,%ebx
40ae56:	52                   	push   %edx
40ae57:	89 e0                	mov    %esp,%eax
40ae59:	31 c9                	xor    %ecx,%ecx
40ae5b:	b1 0b                	mov    $0xb,%cl
40ae5d:	ba 6c 62 42 00       	mov    $0x42626c,%edx
40ae62:	e8 69 f3 ff ff       	call   0x40a1d0
40ae67:	91                   	xchg   %eax,%ecx
40ae68:	58                   	pop    %eax
40ae69:	50                   	push   %eax
40ae6a:	a8 08                	test   $0x8,%al
40ae6c:	75 06                	jne    0x40ae74
40ae6e:	81 e1 ff ff cf ff    	and    $0xffcfffff,%ecx
40ae74:	81 c9 00 00 81 50    	or     $0x50810000,%ecx
40ae7a:	6a 01                	push   $0x1
40ae7c:	ff 35 78 61 42 00    	push   0x426178
40ae82:	ba 64 64 42 00       	mov    $0x426464,%edx
40ae87:	93                   	xchg   %eax,%ebx
40ae88:	e8 bb 2b 00 00       	call   0x40da48
40ae8d:	93                   	xchg   %eax,%ebx
40ae8e:	c6 83 39 01 00 00 06 	movb   $0x6,0x139(%ebx)
40ae95:	8d 8b b6 00 00 00    	lea    0xb6(%ebx),%ecx
40ae9b:	8b 11                	mov    (%ecx),%edx
40ae9d:	83 c2 64             	add    $0x64,%edx
40aea0:	89 51 08             	mov    %edx,0x8(%ecx)
40aea3:	8b 51 04             	mov    0x4(%ecx),%edx
40aea6:	83 c2 16             	add    $0x16,%edx
40aea9:	89 51 0c             	mov    %edx,0xc(%ecx)
40aeac:	58                   	pop    %eax
40aead:	a8 08                	test   $0x8,%al
40aeaf:	b2 0d                	mov    $0xd,%dl
40aeb1:	74 11                	je     0x40aec4
40aeb3:	83 41 08 64          	addl   $0x64,0x8(%ecx)
40aeb7:	81 41 0c b2 00 00 00 	addl   $0xb2,0xc(%ecx)
40aebe:	b2 01                	mov    $0x1,%dl
40aec0:	80 4b 38 80          	orb    $0x80,0x38(%ebx)
40aec4:	f6 c4 04             	test   $0x4,%ah
40aec7:	74 03                	je     0x40aecc
40aec9:	80 e2 fe             	and    $0xfe,%dl
40aecc:	88 53 3c             	mov    %dl,0x3c(%ebx)
40aecf:	93                   	xchg   %eax,%ebx
40aed0:	5b                   	pop    %ebx
40aed1:	c3                   	ret
40aed2:	8b c0                	mov    %eax,%eax
40aed4:	53                   	push   %ebx
40aed5:	56                   	push   %esi
40aed6:	89 c3                	mov    %eax,%ebx
40aed8:	e8 53 13 00 00       	call   0x40c230
40aedd:	83 f8 01             	cmp    $0x1,%eax
40aee0:	7d 02                	jge    0x40aee4
40aee2:	b0 01                	mov    $0x1,%al
40aee4:	83 f8 08             	cmp    $0x8,%eax
40aee7:	7e 04                	jle    0x40aeed
40aee9:	31 c0                	xor    %eax,%eax
40aeeb:	b0 08                	mov    $0x8,%al
40aeed:	31 f6                	xor    %esi,%esi
40aeef:	6a 5f                	push   $0x5f
40aef1:	56                   	push   %esi
40aef2:	56                   	push   %esi
40aef3:	68 9e 00 00 00       	push   $0x9e
40aef8:	50                   	push   %eax
40aef9:	89 d8                	mov    %ebx,%eax
40aefb:	e8 64 0d 00 00       	call   0x40bc64
40af00:	59                   	pop    %ecx
40af01:	41                   	inc    %ecx
40af02:	f7 e9                	imul   %ecx
40af04:	40                   	inc    %eax
40af05:	40                   	inc    %eax
40af06:	50                   	push   %eax
40af07:	89 d8                	mov    %ebx,%eax
40af09:	e8 2e 0d 00 00       	call   0x40bc3c
40af0e:	50                   	push   %eax
40af0f:	46                   	inc    %esi
40af10:	31 d2                	xor    %edx,%edx
40af12:	52                   	push   %edx
40af13:	52                   	push   %edx
40af14:	52                   	push   %edx
40af15:	ff 73 1c             	push   0x1c(%ebx)
40af18:	e8 1b 9c ff ff       	call   0x404b38
40af1d:	4e                   	dec    %esi
40af1e:	74 f0                	je     0x40af10
40af20:	8b 43 50             	mov    0x50(%ebx),%eax
40af23:	8b 88 a0 01 00 00    	mov    0x1a0(%eax),%ecx
40af29:	8b 80 a4 01 00 00    	mov    0x1a4(%eax),%eax
40af2f:	89 da                	mov    %ebx,%edx
40af31:	ff d1                	call   *%ecx
40af33:	5e                   	pop    %esi
40af34:	5b                   	pop    %ebx
40af35:	c3                   	ret
40af36:	8b c0                	mov    %eax,%eax
40af38:	52                   	push   %edx
40af39:	50                   	push   %eax
40af3a:	52                   	push   %edx
40af3b:	89 e0                	mov    %esp,%eax
40af3d:	ba 9c 62 42 00       	mov    $0x42629c,%edx
40af42:	31 c9                	xor    %ecx,%ecx
40af44:	b1 0a                	mov    $0xa,%cl
40af46:	e8 85 f2 ff ff       	call   0x40a1d0
40af4b:	5a                   	pop    %edx
40af4c:	91                   	xchg   %eax,%ecx
40af4d:	58                   	pop    %eax
40af4e:	6a 01                	push   $0x1
40af50:	ff 35 7c 61 42 00    	push   0x42617c
40af56:	ba 6c 64 42 00       	mov    $0x42646c,%edx
40af5b:	81 c9 00 02 21 50    	or     $0x50210200,%ecx
40af61:	f7 c1 01 00 00 00    	test   $0x1,%ecx
40af67:	75 03                	jne    0x40af6c
40af69:	83 c9 02             	or     $0x2,%ecx
40af6c:	e8 d7 2a 00 00       	call   0x40da48
40af71:	8b 50 4c             	mov    0x4c(%eax),%edx
40af74:	c7 42 18 4c 70 40 00 	movl   $0x40704c,0x18(%edx)
40af7b:	c6 80 39 01 00 00 06 	movb   $0x6,0x139(%eax)
40af82:	c7 40 7c 10 dc 40 00 	movl   $0x40dc10,0x7c(%eax)
40af89:	80 48 20 08          	orb    $0x8,0x20(%eax)
40af8d:	83 80 be 00 00 00 24 	addl   $0x24,0xbe(%eax)
40af94:	83 80 c2 00 00 00 d6 	addl   $0xffffffd6,0xc2(%eax)
40af9b:	b1 01                	mov    $0x1,%cl
40af9d:	5a                   	pop    %edx
40af9e:	f6 c2 01             	test   $0x1,%dl
40afa1:	74 02                	je     0x40afa5
40afa3:	b1 03                	mov    $0x3,%cl
40afa5:	88 48 3c             	mov    %cl,0x3c(%eax)
40afa8:	50                   	push   %eax
40afa9:	ba 5c 75 40 00       	mov    $0x40755c,%edx
40afae:	e8 85 ea ff ff       	call   0x409a38
40afb3:	58                   	pop    %eax
40afb4:	c3                   	ret
40afb5:	8d 40 00             	lea    0x0(%eax),%eax
40afb8:	80 48 38 10          	orb    $0x10,0x38(%eax)
40afbc:	8b 48 30             	mov    0x30(%eax),%ecx
40afbf:	e3 16                	jecxz  0x40afd7
40afc1:	51                   	push   %ecx
40afc2:	ba 6c b0 40 00       	mov    $0x40b06c,%edx
40afc7:	e8 6c ea ff ff       	call   0x409a38
40afcc:	58                   	pop    %eax
40afcd:	ba 3c b0 40 00       	mov    $0x40b03c,%edx
40afd2:	e8 61 ea ff ff       	call   0x409a38
40afd7:	c3                   	ret
40afd8:	6a 01                	push   $0x1
40afda:	6a 0a                	push   $0xa
40afdc:	ba a8 60 42 00       	mov    $0x4260a8,%edx
40afe1:	b9 00 00 00 50       	mov    $0x50000000,%ecx
40afe6:	e8 91 c6 ff ff       	call   0x40767c
40afeb:	8d 90 b6 00 00 00    	lea    0xb6(%eax),%edx
40aff1:	8b 0a                	mov    (%edx),%ecx
40aff3:	81 c1 2c 01 00 00    	add    $0x12c,%ecx
40aff9:	89 4a 08             	mov    %ecx,0x8(%edx)
40affc:	8b 4a 04             	mov    0x4(%edx),%ecx
40afff:	83 c1 14             	add    $0x14,%ecx
40b002:	89 4a 0c             	mov    %ecx,0xc(%edx)
40b005:	31 d2                	xor    %edx,%edx
40b007:	89 90 84 00 00 00    	mov    %edx,0x84(%eax)
40b00d:	c7 80 a0 00 00 00 0d 	movl   $0x8000000d,0xa0(%eax)
40b014:	00 00 80
40b017:	8b 48 4c             	mov    0x4c(%eax),%ecx
40b01a:	66 c7 41 68 01 20    	movw   $0x2001,0x68(%ecx)
40b020:	c3                   	ret
40b021:	8d 40 00             	lea    0x0(%eax),%eax
40b024:	52                   	push   %edx
40b025:	e8 ae ff ff ff       	call   0x40afd8
40b02a:	59                   	pop    %ecx
40b02b:	31 d2                	xor    %edx,%edx
40b02d:	d1 e9                	shr    $1,%ecx
40b02f:	73 02                	jae    0x40b033
40b031:	b2 04                	mov    $0x4,%dl
40b033:	d1 e9                	shr    $1,%ecx
40b035:	73 01                	jae    0x40b038
40b037:	42                   	inc    %edx
40b038:	09 50 24             	or     %edx,0x24(%eax)
40b03b:	c3                   	ret
40b03c:	66 83 7a 04 4e       	cmpw   $0x4e,0x4(%edx)
40b041:	75 25                	jne    0x40b068
40b043:	51                   	push   %ecx
40b044:	52                   	push   %edx
40b045:	50                   	push   %eax
40b046:	8b 4a 0c             	mov    0xc(%edx),%ecx
40b049:	6a eb                	push   $0xffffffeb
40b04b:	ff 31                	push   (%ecx)
40b04d:	e8 5a 9f ff ff       	call   0x404fac
40b052:	59                   	pop    %ecx
40b053:	5a                   	pop    %edx
40b054:	85 c0                	test   %eax,%eax
40b056:	74 0f                	je     0x40b067
40b058:	39 c8                	cmp    %ecx,%eax
40b05a:	74 0b                	je     0x40b067
40b05c:	8b 48 1c             	mov    0x1c(%eax),%ecx
40b05f:	89 0a                	mov    %ecx,(%edx)
40b061:	59                   	pop    %ecx
40b062:	e9 25 e9 ff ff       	jmp    0x40998c
40b067:	59                   	pop    %ecx
40b068:	31 c0                	xor    %eax,%eax
40b06a:	c3                   	ret
40b06b:	90                   	nop
40b06c:	66 83 7a 04 4e       	cmpw   $0x4e,0x4(%edx)
40b071:	75 5d                	jne    0x40b0d0
40b073:	53                   	push   %ebx
40b074:	8b 5a 0c             	mov    0xc(%edx),%ebx
40b077:	8b 53 08             	mov    0x8(%ebx),%edx
40b07a:	31 c9                	xor    %ecx,%ecx
40b07c:	83 fa fe             	cmp    $0xfffffffe,%edx
40b07f:	74 07                	je     0x40b088
40b081:	83 fa fb             	cmp    $0xfffffffb,%edx
40b084:	75 17                	jne    0x40b09d
40b086:	b1 40                	mov    $0x40,%cl
40b088:	80 60 39 bf          	andb   $0xbf,0x39(%eax)
40b08c:	08 48 39             	or     %cl,0x39(%eax)
40b08f:	8b 48 50             	mov    0x50(%eax),%ecx
40b092:	8b 49 10             	mov    0x10(%ecx),%ecx
40b095:	8b 50 50             	mov    0x50(%eax),%edx
40b098:	8b 52 14             	mov    0x14(%edx),%edx
40b09b:	eb 2f                	jmp    0x40b0cc
40b09d:	83 fa f8             	cmp    $0xfffffff8,%edx
40b0a0:	75 11                	jne    0x40b0b3
40b0a2:	8b 40 50             	mov    0x50(%eax),%eax
40b0a5:	8b 88 a0 00 00 00    	mov    0xa0(%eax),%ecx
40b0ab:	8b 90 a4 00 00 00    	mov    0xa4(%eax),%edx
40b0b1:	eb 19                	jmp    0x40b0cc
40b0b3:	83 fa fc             	cmp    $0xfffffffc,%edx
40b0b6:	74 05                	je     0x40b0bd
40b0b8:	83 fa f9             	cmp    $0xfffffff9,%edx
40b0bb:	75 12                	jne    0x40b0cf
40b0bd:	8b 40 50             	mov    0x50(%eax),%eax
40b0c0:	8b 88 98 00 00 00    	mov    0x98(%eax),%ecx
40b0c6:	8b 90 9c 00 00 00    	mov    0x9c(%eax),%edx
40b0cc:	92                   	xchg   %eax,%edx
40b0cd:	ff d1                	call   *%ecx
40b0cf:	5b                   	pop    %ebx
40b0d0:	31 c0                	xor    %eax,%eax
40b0d2:	c3                   	ret
40b0d3:	90                   	nop
40b0d4:	60                   	pusha
40b0d5:	96                   	xchg   %eax,%esi
40b0d6:	8b 4e 4c             	mov    0x4c(%esi),%ecx
40b0d9:	0f b7 49 66          	movzwl 0x66(%ecx),%ecx
40b0dd:	e3 31                	jecxz  0x40b110
40b0df:	89 cd                	mov    %ecx,%ebp
40b0e1:	31 db                	xor    %ebx,%ebx
40b0e3:	b3 20                	mov    $0x20,%bl
40b0e5:	31 ff                	xor    %edi,%edi
40b0e7:	89 f0                	mov    %esi,%eax
40b0e9:	89 da                	mov    %ebx,%edx
40b0eb:	e8 bc d8 ff ff       	call   0x4089ac
40b0f0:	85 c0                	test   %eax,%eax
40b0f2:	74 0e                	je     0x40b102
40b0f4:	e8 37 14 00 00       	call   0x40c530
40b0f9:	50                   	push   %eax
40b0fa:	57                   	push   %edi
40b0fb:	55                   	push   %ebp
40b0fc:	56                   	push   %esi
40b0fd:	e8 3a 14 00 00       	call   0x40c53c
40b102:	47                   	inc    %edi
40b103:	d1 eb                	shr    $1,%ebx
40b105:	74 09                	je     0x40b110
40b107:	80 fb 10             	cmp    $0x10,%bl
40b10a:	7d db                	jge    0x40b0e7
40b10c:	31 db                	xor    %ebx,%ebx
40b10e:	eb d7                	jmp    0x40b0e7
40b110:	61                   	popa
40b111:	c3                   	ret
40b112:	8b c0                	mov    %eax,%eax
40b114:	60                   	pusha
40b115:	96                   	xchg   %eax,%esi
40b116:	ff b6 1a 01 00 00    	push   0x11a(%esi)
40b11c:	89 e0                	mov    %esp,%eax
40b11e:	ba dc 62 42 00       	mov    $0x4262dc,%edx
40b123:	31 c9                	xor    %ecx,%ecx
40b125:	b1 19                	mov    $0x19,%cl
40b127:	e8 a4 f0 ff ff       	call   0x40a1d0
40b12c:	59                   	pop    %ecx
40b12d:	51                   	push   %ecx
40b12e:	8b 56 24             	mov    0x24(%esi),%edx
40b131:	66 81 e2 c0 bf       	and    $0xbfc0,%dx
40b136:	09 c2                	or     %eax,%edx