40ff1c:	0f 88 77 04 00 00    	js     0x410399
40ff22:	ff 77 1c             	push   0x1c(%edi)
40ff25:	bb 20 0b 45 00       	mov    $0x450b20,%ebx
40ff2a:	ff 77 18             	push   0x18(%edi)
40ff2d:	53                   	push   %ebx
40ff2e:	ff 75 fc             	push   -0x4(%ebp)
40ff31:	e8 06 15 03 00       	call   0x44143c
40ff36:	8b f0                	mov    %eax,%esi
40ff38:	85 f6                	test   %esi,%esi
40ff3a:	0f 88 59 04 00 00    	js     0x410399
40ff40:	ff 77 34             	push   0x34(%edi)
40ff43:	bb 44 0b 45 00       	mov    $0x450b44,%ebx
40ff48:	ff 77 30             	push   0x30(%edi)
40ff4b:	53                   	push   %ebx
40ff4c:	ff 75 fc             	push   -0x4(%ebp)
40ff4f:	e8 e8 14 03 00       	call   0x44143c
40ff54:	8b f0                	mov    %eax,%esi
40ff56:	85 f6                	test   %esi,%esi
40ff58:	0f 88 3b 04 00 00    	js     0x410399
40ff5e:	8b 4f 38             	mov    0x38(%edi),%ecx
40ff61:	bb a0 0b 45 00       	mov    $0x450ba0,%ebx
40ff66:	8b 57 3c             	mov    0x3c(%edi),%edx
40ff69:	0f b7 c1             	movzwl %cx,%eax
40ff6c:	50                   	push   %eax
40ff6d:	8b c2                	mov    %edx,%eax
40ff6f:	89 55 f0             	mov    %edx,-0x10(%ebp)
40ff72:	0f ac c1 10          	shrd   $0x10,%eax,%ecx
40ff76:	c1 e8 10             	shr    $0x10,%eax
40ff79:	0f b7 c1             	movzwl %cx,%eax
40ff7c:	50                   	push   %eax
40ff7d:	0f b7 c2             	movzwl %dx,%eax
40ff80:	50                   	push   %eax
40ff81:	c1 ea 10             	shr    $0x10,%edx
40ff84:	52                   	push   %edx
40ff85:	68 60 17 45 00       	push   $0x451760
40ff8a:	53                   	push   %ebx
40ff8b:	ff 75 fc             	push   -0x4(%ebp)
40ff8e:	e8 f4 15 03 00       	call   0x441587
40ff93:	8b f0                	mov    %eax,%esi
40ff95:	83 c4 1c             	add    $0x1c,%esp
40ff98:	85 f6                	test   %esi,%esi
40ff9a:	0f 88 f9 03 00 00    	js     0x410399
40ffa0:	83 7f 44 00          	cmpl   $0x0,0x44(%edi)
40ffa4:	74 1b                	je     0x40ffc1
40ffa6:	ff 77 44             	push   0x44(%edi)
40ffa9:	bb d8 0b 45 00       	mov    $0x450bd8,%ebx
40ffae:	53                   	push   %ebx
40ffaf:	ff 75 fc             	push   -0x4(%ebp)
40ffb2:	e8 db 13 03 00       	call   0x441392
40ffb7:	8b f0                	mov    %eax,%esi
40ffb9:	85 f6                	test   %esi,%esi
40ffbb:	0f 88 d8 03 00 00    	js     0x410399
40ffc1:	83 7f 14 00          	cmpl   $0x0,0x14(%edi)
40ffc5:	74 1b                	je     0x40ffe2
40ffc7:	ff 77 14             	push   0x14(%edi)
40ffca:	bb fc 0b 45 00       	mov    $0x450bfc,%ebx
40ffcf:	53                   	push   %ebx
40ffd0:	ff 75 fc             	push   -0x4(%ebp)
40ffd3:	e8 ba 13 03 00       	call   0x441392
40ffd8:	8b f0                	mov    %eax,%esi
40ffda:	85 f6                	test   %esi,%esi
40ffdc:	0f 88 b7 03 00 00    	js     0x410399
40ffe2:	68 f8 b9 44 00       	push   $0x44b9f8
40ffe7:	68 80 17 45 00       	push   $0x451780
40ffec:	bb bc 0b 45 00       	mov    $0x450bbc,%ebx
40fff1:	53                   	push   %ebx
40fff2:	ff 75 fc             	push   -0x4(%ebp)
40fff5:	e8 8d 15 03 00       	call   0x441587
40fffa:	8b f0                	mov    %eax,%esi
40fffc:	83 c4 10             	add    $0x10,%esp
40ffff:	85 f6                	test   %esi,%esi
410001:	0f 88 92 03 00 00    	js     0x410399
410007:	ff 77 54             	push   0x54(%edi)
41000a:	bb 78 0d 45 00       	mov    $0x450d78,%ebx
41000f:	68 88 17 45 00       	push   $0x451788
410014:	53                   	push   %ebx
410015:	ff 75 fc             	push   -0x4(%ebp)
410018:	e8 6a 15 03 00       	call   0x441587
41001d:	8b f0                	mov    %eax,%esi
41001f:	83 c4 10             	add    $0x10,%esp
410022:	85 f6                	test   %esi,%esi
410024:	0f 88 6f 03 00 00    	js     0x410399
41002a:	8b 5d 10             	mov    0x10(%ebp),%ebx
41002d:	8d 45 f8             	lea    -0x8(%ebp),%eax
410030:	50                   	push   %eax
410031:	53                   	push   %ebx
410032:	57                   	push   %edi
410033:	e8 96 e8 ff ff       	call   0x40e8ce
410038:	85 c0                	test   %eax,%eax
41003a:	8b 45 f8             	mov    -0x8(%ebp),%eax
41003d:	79 03                	jns    0x410042
41003f:	8b 47 60             	mov    0x60(%edi),%eax
410042:	50                   	push   %eax
410043:	68 88 0b 45 00       	push   $0x450b88
410048:	ff 75 fc             	push   -0x4(%ebp)
41004b:	e8 42 13 03 00       	call   0x441392
410050:	8b f0                	mov    %eax,%esi
410052:	85 f6                	test   %esi,%esi
410054:	79 0a                	jns    0x410060
410056:	68 88 0b 45 00       	push   $0x450b88
41005b:	e9 3a 03 00 00       	jmp    0x41039a
410060:	83 7f 64 00          	cmpl   $0x0,0x64(%edi)
410064:	74 20                	je     0x410086
410066:	ff 77 64             	push   0x64(%edi)
410069:	68 90 0d 45 00       	push   $0x450d90
41006e:	ff 75 fc             	push   -0x4(%ebp)
410071:	e8 1c 13 03 00       	call   0x441392
410076:	8b f0                	mov    %eax,%esi
410078:	85 f6                	test   %esi,%esi
41007a:	79 0a                	jns    0x410086
41007c:	68 90 0d 45 00       	push   $0x450d90
410081:	e9 14 03 00 00       	jmp    0x41039a
410086:	8d 45 f4             	lea    -0xc(%ebp),%eax
410089:	50                   	push   %eax
41008a:	53                   	push   %ebx
41008b:	57                   	push   %edi
41008c:	e8 d5 e7 ff ff       	call   0x40e866
410091:	85 c0                	test   %eax,%eax
410093:	8b 45 f4             	mov    -0xc(%ebp),%eax
410096:	79 03                	jns    0x41009b
410098:	8b 47 68             	mov    0x68(%edi),%eax
41009b:	50                   	push   %eax
41009c:	68 cc 0d 45 00       	push   $0x450dcc
4100a1:	ff 75 fc             	push   -0x4(%ebp)
4100a4:	e8 e9 12 03 00       	call   0x441392
4100a9:	8b f0                	mov    %eax,%esi
4100ab:	85 f6                	test   %esi,%esi
4100ad:	79 0a                	jns    0x4100b9
4100af:	68 cc 0d 45 00       	push   $0x450dcc
4100b4:	e9 e1 02 00 00       	jmp    0x41039a
4100b9:	83 7f 6c 00          	cmpl   $0x0,0x6c(%edi)
4100bd:	74 20                	je     0x4100df
4100bf:	ff 77 6c             	push   0x6c(%edi)
4100c2:	68 e0 0d 45 00       	push   $0x450de0
4100c7:	ff 75 fc             	push   -0x4(%ebp)
4100ca:	e8 c3 12 03 00       	call   0x441392
4100cf:	8b f0                	mov    %eax,%esi
4100d1:	85 f6                	test   %esi,%esi
4100d3:	79 0a                	jns    0x4100df
4100d5:	68 e0 0d 45 00       	push   $0x450de0
4100da:	e9 bb 02 00 00       	jmp    0x41039a
4100df:	83 7f 70 00          	cmpl   $0x0,0x70(%edi)
4100e3:	74 20                	je     0x410105
4100e5:	ff 77 70             	push   0x70(%edi)
4100e8:	68 f4 0d 45 00       	push   $0x450df4
4100ed:	ff 75 fc             	push   -0x4(%ebp)
4100f0:	e8 9d 12 03 00       	call   0x441392
4100f5:	8b f0                	mov    %eax,%esi
4100f7:	85 f6                	test   %esi,%esi
4100f9:	79 0a                	jns    0x410105
4100fb:	68 f4 0d 45 00       	push   $0x450df4
410100:	e9 95 02 00 00       	jmp    0x41039a
410105:	83 7f 74 00          	cmpl   $0x0,0x74(%edi)
410109:	74 20                	je     0x41012b
41010b:	ff 77 74             	push   0x74(%edi)
41010e:	68 10 0e 45 00       	push   $0x450e10
410113:	ff 75 fc             	push   -0x4(%ebp)
410116:	e8 77 12 03 00       	call   0x441392
41011b:	8b f0                	mov    %eax,%esi
41011d:	85 f6                	test   %esi,%esi
41011f:	79 0a                	jns    0x41012b
410121:	68 10 0e 45 00       	push   $0x450e10
410126:	e9 6f 02 00 00       	jmp    0x41039a
41012b:	83 7f 78 00          	cmpl   $0x0,0x78(%edi)
41012f:	74 20                	je     0x410151
410131:	ff 77 78             	push   0x78(%edi)
410134:	68 2c 0e 45 00       	push   $0x450e2c
410139:	ff 75 fc             	push   -0x4(%ebp)
41013c:	e8 51 12 03 00       	call   0x441392
410141:	8b f0                	mov    %eax,%esi
410143:	85 f6                	test   %esi,%esi
410145:	79 0a                	jns    0x410151
410147:	68 2c 0e 45 00       	push   $0x450e2c
41014c:	e9 49 02 00 00       	jmp    0x41039a
410151:	83 7f 7c 00          	cmpl   $0x0,0x7c(%edi)
410155:	74 40                	je     0x410197
410157:	ff 77 7c             	push   0x7c(%edi)
41015a:	68 48 0e 45 00       	push   $0x450e48
41015f:	ff 75 fc             	push   -0x4(%ebp)
410162:	e8 2b 12 03 00       	call   0x441392
410167:	8b f0                	mov    %eax,%esi
410169:	85 f6                	test   %esi,%esi
41016b:	79 0a                	jns    0x410177
41016d:	68 48 0e 45 00       	push   $0x450e48
410172:	e9 23 02 00 00       	jmp    0x41039a
410177:	ff 77 7c             	push   0x7c(%edi)
41017a:	68 6c 0e 45 00       	push   $0x450e6c
41017f:	ff 75 fc             	push   -0x4(%ebp)
410182:	e8 0b 12 03 00       	call   0x441392
410187:	8b f0                	mov    %eax,%esi
410189:	85 f6                	test   %esi,%esi
41018b:	79 0a                	jns    0x410197
41018d:	68 6c 0e 45 00       	push   $0x450e6c
410192:	e9 03 02 00 00       	jmp    0x41039a
410197:	8b 87 80 00 00 00    	mov    0x80(%edi),%eax
41019d:	85 c0                	test   %eax,%eax
41019f:	74 1e                	je     0x4101bf
4101a1:	50                   	push   %eax
4101a2:	68 88 0e 45 00       	push   $0x450e88
4101a7:	ff 75 fc             	push   -0x4(%ebp)
4101aa:	e8 e3 11 03 00       	call   0x441392
4101af:	8b f0                	mov    %eax,%esi
4101b1:	85 f6                	test   %esi,%esi
4101b3:	79 0a                	jns    0x4101bf
4101b5:	68 88 0e 45 00       	push   $0x450e88
4101ba:	e9 db 01 00 00       	jmp    0x41039a
4101bf:	8b 87 84 00 00 00    	mov    0x84(%edi),%eax
4101c5:	85 c0                	test   %eax,%eax
4101c7:	74 1e                	je     0x4101e7
4101c9:	50                   	push   %eax
4101ca:	68 9c 0e 45 00       	push   $0x450e9c
4101cf:	ff 75 fc             	push   -0x4(%ebp)
4101d2:	e8 bb 11 03 00       	call   0x441392
4101d7:	8b f0                	mov    %eax,%esi
4101d9:	85 f6                	test   %esi,%esi
4101db:	79 0a                	jns    0x4101e7
4101dd:	68 9c 0e 45 00       	push   $0x450e9c
4101e2:	e9 b3 01 00 00       	jmp    0x41039a
4101e7:	8b 87 88 00 00 00    	mov    0x88(%edi),%eax
4101ed:	83 f8 01             	cmp    $0x1,%eax
4101f0:	75 1e                	jne    0x410210
4101f2:	50                   	push   %eax
4101f3:	68 ac 0e 45 00       	push   $0x450eac
4101f8:	ff 75 fc             	push   -0x4(%ebp)
4101fb:	e8 44 11 03 00       	call   0x441344
410200:	8b f0                	mov    %eax,%esi
410202:	85 f6                	test   %esi,%esi
410204:	79 56                	jns    0x41025c
410206:	68 ac 0e 45 00       	push   $0x450eac
41020b:	e9 8a 01 00 00       	jmp    0x41039a
410210:	83 f8 02             	cmp    $0x2,%eax
410213:	74 47                	je     0x41025c
410215:	ff 77 54             	push   0x54(%edi)
410218:	68 94 17 45 00       	push   $0x451794
41021d:	68 c0 0e 45 00       	push   $0x450ec0
410222:	ff 75 fc             	push   -0x4(%ebp)
410225:	e8 5d 13 03 00       	call   0x441587
41022a:	8b f0                	mov    %eax,%esi
41022c:	83 c4 10             	add    $0x10,%esp
41022f:	85 f6                	test   %esi,%esi
410231:	79 0a                	jns    0x41023d
410233:	68 c0 0e 45 00       	push   $0x450ec0
410238:	e9 5d 01 00 00       	jmp    0x41039a
41023d:	6a 01                	push   $0x1
41023f:	68 d8 0e 45 00       	push   $0x450ed8
410244:	ff 75 fc             	push   -0x4(%ebp)
410247:	e8 f8 10 03 00       	call   0x441344
41024c:	8b f0                	mov    %eax,%esi
41024e:	85 f6                	test   %esi,%esi
410250:	79 0a                	jns    0x41025c
410252:	68 d8 0e 45 00       	push   $0x450ed8
410257:	e9 3e 01 00 00       	jmp    0x41039a
41025c:	83 bf 8c 00 00 00 00 	cmpl   $0x0,0x8c(%edi)
410263:	74 23                	je     0x410288
410265:	ff b7 90 00 00 00    	push   0x90(%edi)
41026b:	68 fc 0e 45 00       	push   $0x450efc
410270:	ff 75 fc             	push   -0x4(%ebp)
410273:	e8 cc 10 03 00       	call   0x441344
410278:	8b f0                	mov    %eax,%esi
41027a:	85 f6                	test   %esi,%esi
41027c:	79 0a                	jns    0x410288
41027e:	68 fc 0e 45 00       	push   $0x450efc
410283:	e9 12 01 00 00       	jmp    0x41039a
410288:	83 7f 04 00          	cmpl   $0x0,0x4(%edi)
41028c:	75 1f                	jne    0x4102ad
41028e:	6a 01                	push   $0x1
410290:	68 10 0f 45 00       	push   $0x450f10
410295:	ff 75 fc             	push   -0x4(%ebp)
410298:	e8 a7 10 03 00       	call   0x441344
41029d:	8b f0                	mov    %eax,%esi
41029f:	85 f6                	test   %esi,%esi
4102a1:	79 0a                	jns    0x4102ad
4102a3:	68 10 0f 45 00       	push   $0x450f10
4102a8:	e9 ed 00 00 00       	jmp    0x41039a
4102ad:	ff 77 54             	push   0x54(%edi)
4102b0:	68 b0 17 45 00       	push   $0x4517b0
4102b5:	68 30 0f 45 00       	push   $0x450f30
4102ba:	ff 75 fc             	push   -0x4(%ebp)
4102bd:	e8 c5 12 03 00       	call   0x441587
4102c2:	8b f0                	mov    %eax,%esi
4102c4:	83 c4 10             	add    $0x10,%esp
4102c7:	85 f6                	test   %esi,%esi
4102c9:	79 0a                	jns    0x4102d5
4102cb:	68 30 0f 45 00       	push   $0x450f30
4102d0:	e9 c5 00 00 00       	jmp    0x41039a
4102d5:	83 bf 88 00 00 00 02 	cmpl   $0x2,0x88(%edi)
4102dc:	b9 f0 17 45 00       	mov    $0x4517f0,%ecx
4102e1:	b8 e0 17 45 00       	mov    $0x4517e0,%eax
4102e6:	0f 45 c1             	cmovne %ecx,%eax
4102e9:	50                   	push   %eax
4102ea:	ff 77 54             	push   0x54(%edi)
4102ed:	68 54 bc 44 00       	push   $0x44bc54
4102f2:	68 5c 0f 45 00       	push   $0x450f5c
4102f7:	ff 75 fc             	push   -0x4(%ebp)
4102fa:	e8 88 12 03 00       	call   0x441587
4102ff:	8b f0                	mov    %eax,%esi
410301:	83 c4 14             	add    $0x14,%esp
410304:	85 f6                	test   %esi,%esi
410306:	79 0a                	jns    0x410312
410308:	68 5c 0f 45 00       	push   $0x450f5c
41030d:	e9 88 00 00 00       	jmp    0x41039a
410312:	83 bf 98 00 00 00 00 	cmpl   $0x0,0x98(%edi)
410319:	74 1d                	je     0x410338
41031b:	8d 87 94 00 00 00    	lea    0x94(%edi),%eax
410321:	50                   	push   %eax
410322:	53                   	push   %ebx
410323:	e8 b4 ef ff ff       	call   0x40f2dc
410328:	8b f0                	mov    %eax,%esi
41032a:	85 f6                	test   %esi,%esi
41032c:	79 0a                	jns    0x410338
41032e:	68 08 18 45 00       	push   $0x451808
410333:	e9 a3 00 00 00       	jmp    0x4103db
410338:	83 bf 9c 00 00 00 00 	cmpl   $0x0,0x9c(%edi)
41033f:	74 17                	je     0x410358
410341:	53                   	push   %ebx
410342:	57                   	push   %edi
410343:	e8 c8 f0 ff ff       	call   0x40f410
410348:	8b f0                	mov    %eax,%esi
41034a:	85 f6                	test   %esi,%esi
41034c:	79 0a                	jns    0x410358
41034e:	68 28 18 45 00       	push   $0x451828
410353:	e9 83 00 00 00       	jmp    0x4103db
410358:	f6 45 18 04          	testb  $0x4,0x18(%ebp)
41035c:	74 4c                	je     0x4103aa
41035e:	8b 4d 20             	mov    0x20(%ebp),%ecx
410361:	8b 45 24             	mov    0x24(%ebp),%eax
410364:	0f ac c1 0a          	shrd   $0xa,%eax,%ecx
410368:	c1 e8 0a             	shr    $0xa,%eax
41036b:	85 c0                	test   %eax,%eax
41036d:	72 3b                	jb     0x4103aa
41036f:	77 08                	ja     0x410379
410371:	85 c9                	test   %ecx,%ecx
410373:	74 35                	je     0x4103aa
410375:	85 c0                	test   %eax,%eax
410377:	72 09                	jb     0x410382
410379:	6a ff                	push   $0xffffffff
41037b:	58                   	pop    %eax
41037c:	77 06                	ja     0x410384
41037e:	3b c8                	cmp    %eax,%ecx
410380:	77 02                	ja     0x410384
410382:	8b c1                	mov    %ecx,%eax
410384:	50                   	push   %eax
410385:	bb b0 0d 45 00       	mov    $0x450db0,%ebx
41038a:	53                   	push   %ebx
41038b:	ff 75 fc             	push   -0x4(%ebp)
41038e:	e8 b1 0f 03 00       	call   0x441344
410393:	8b f0                	mov    %eax,%esi
410395:	85 f6                	test   %esi,%esi
410397:	79 11                	jns    0x4103aa
410399:	53                   	push   %ebx