4033d8:	e8 01 de ff ff       	call   0x4011de
4033dd:	33 c0                	xor    %eax,%eax
4033df:	59                   	pop    %ecx
4033e0:	89 06                	mov    %eax,(%esi)
4033e2:	89 46 04             	mov    %eax,0x4(%esi)
4033e5:	89 46 08             	mov    %eax,0x8(%esi)
4033e8:	5e                   	pop    %esi
4033e9:	c3                   	ret
4033ea:	8b 54 24 04          	mov    0x4(%esp),%edx
4033ee:	53                   	push   %ebx
4033ef:	57                   	push   %edi
4033f0:	8b f9                	mov    %ecx,%edi
4033f2:	8b 5f 08             	mov    0x8(%edi),%ebx
4033f5:	8b c3                	mov    %ebx,%eax
4033f7:	8b 4f 04             	mov    0x4(%edi),%ecx
4033fa:	2b c1                	sub    %ecx,%eax
4033fc:	3b c2                	cmp    %edx,%eax
4033fe:	73 30                	jae    0x403430
403400:	8b 07                	mov    (%edi),%eax
403402:	2b c1                	sub    %ecx,%eax
403404:	48                   	dec    %eax
403405:	3b c2                	cmp    %edx,%eax
403407:	72 2c                	jb     0x403435
403409:	2b 0f                	sub    (%edi),%ecx
40340b:	2b 1f                	sub    (%edi),%ebx
40340d:	56                   	push   %esi
40340e:	8b c3                	mov    %ebx,%eax
403410:	8d 34 11             	lea    (%ecx,%edx,1),%esi
403413:	d1 e8                	shr    $1,%eax
403415:	8b c8                	mov    %eax,%ecx
403417:	33 d2                	xor    %edx,%edx
403419:	f7 d1                	not    %ecx
40341b:	03 c3                	add    %ebx,%eax
40341d:	3b cb                	cmp    %ebx,%ecx
40341f:	8b cf                	mov    %edi,%ecx
403421:	0f 43 d0             	cmovae %eax,%edx
403424:	3b d6                	cmp    %esi,%edx
403426:	0f 43 f2             	cmovae %edx,%esi
403429:	56                   	push   %esi
40342a:	e8 bf 00 00 00       	call   0x4034ee
40342f:	5e                   	pop    %esi
403430:	5f                   	pop    %edi
403431:	5b                   	pop    %ebx
403432:	c2 04 00             	ret    $0x4
403435:	e8 a9 00 00 00       	call   0x4034e3
40343a:	cc                   	int3
40343b:	8b 44 24 04          	mov    0x4(%esp),%eax
40343f:	3b 41 10             	cmp    0x10(%ecx),%eax
403442:	77 08                	ja     0x40344c
403444:	50                   	push   %eax
403445:	e8 2b ee ff ff       	call   0x402275
40344a:	eb 0d                	jmp    0x403459
40344c:	ff 74 24 08          	push   0x8(%esp)
403450:	2b 41 10             	sub    0x10(%ecx),%eax
403453:	50                   	push   %eax
403454:	e8 eb 00 00 00       	call   0x403544
403459:	c2 08 00             	ret    $0x8
40345c:	56                   	push   %esi
40345d:	57                   	push   %edi
40345e:	8b 7c 24 0c          	mov    0xc(%esp),%edi
403462:	8b f1                	mov    %ecx,%esi
403464:	57                   	push   %edi
403465:	e8 74 ed ff ff       	call   0x4021de
40346a:	84 c0                	test   %al,%al
40346c:	74 1d                	je     0x40348b
40346e:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
403472:	72 04                	jb     0x403478
403474:	8b 06                	mov    (%esi),%eax
403476:	eb 02                	jmp    0x40347a
403478:	8b c6                	mov    %esi,%eax
40347a:	ff 74 24 10          	push   0x10(%esp)
40347e:	2b f8                	sub    %eax,%edi
403480:	d1 ff                	sar    $1,%edi
403482:	57                   	push   %edi
403483:	56                   	push   %esi
403484:	e8 36 01 00 00       	call   0x4035bf
403489:	eb 4d                	jmp    0x4034d8
40348b:	8b 4e 10             	mov    0x10(%esi),%ecx
40348e:	8b c1                	mov    %ecx,%eax
403490:	53                   	push   %ebx
403491:	8b 5c 24 14          	mov    0x14(%esp),%ebx
403495:	f7 d0                	not    %eax
403497:	3b c3                	cmp    %ebx,%eax
403499:	76 42                	jbe    0x4034dd
40349b:	85 db                	test   %ebx,%ebx
40349d:	74 36                	je     0x4034d5
40349f:	55                   	push   %ebp
4034a0:	8d 2c 19             	lea    (%ecx,%ebx,1),%ebp
4034a3:	8b ce                	mov    %esi,%ecx
4034a5:	6a 00                	push   $0x0
4034a7:	55                   	push   %ebp
4034a8:	e8 6a ed ff ff       	call   0x402217
4034ad:	84 c0                	test   %al,%al
4034af:	74 23                	je     0x4034d4
4034b1:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
4034b5:	72 04                	jb     0x4034bb
4034b7:	8b 0e                	mov    (%esi),%ecx
4034b9:	eb 02                	jmp    0x4034bd
4034bb:	8b ce                	mov    %esi,%ecx
4034bd:	8b 46 10             	mov    0x10(%esi),%eax
4034c0:	8b d7                	mov    %edi,%edx
4034c2:	53                   	push   %ebx
4034c3:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
4034c6:	e8 a1 dc ff ff       	call   0x40116c
4034cb:	59                   	pop    %ecx
4034cc:	55                   	push   %ebp
4034cd:	8b ce                	mov    %esi,%ecx
4034cf:	e8 a1 ed ff ff       	call   0x402275
4034d4:	5d                   	pop    %ebp
4034d5:	8b c6                	mov    %esi,%eax
4034d7:	5b                   	pop    %ebx
4034d8:	5f                   	pop    %edi
4034d9:	5e                   	pop    %esi
4034da:	c2 08 00             	ret    $0x8
4034dd:	e8 21 ee ff ff       	call   0x402303
4034e2:	cc                   	int3
4034e3:	68 a4 94 43 00       	push   $0x4394a4
4034e8:	e8 2c 64 00 00       	call   0x409919
4034ed:	cc                   	int3
4034ee:	53                   	push   %ebx
4034ef:	55                   	push   %ebp
4034f0:	56                   	push   %esi
4034f1:	57                   	push   %edi
4034f2:	33 d2                	xor    %edx,%edx
4034f4:	8b f9                	mov    %ecx,%edi
4034f6:	51                   	push   %ecx
4034f7:	8b 4c 24 18          	mov    0x18(%esp),%ecx
4034fb:	42                   	inc    %edx
4034fc:	e8 85 dc ff ff       	call   0x401186
403501:	8b 4f 04             	mov    0x4(%edi),%ecx
403504:	8b d8                	mov    %eax,%ebx
403506:	2b 0f                	sub    (%edi),%ecx
403508:	51                   	push   %ecx
403509:	ff 37                	push   (%edi)
40350b:	53                   	push   %ebx
40350c:	e8 2f 79 00 00       	call   0x40ae40
403511:	8b 0f                	mov    (%edi),%ecx
403513:	83 c4 10             	add    $0x10,%esp
403516:	8b 6f 04             	mov    0x4(%edi),%ebp
403519:	2b e9                	sub    %ecx,%ebp
40351b:	85 c9                	test   %ecx,%ecx
40351d:	74 0d                	je     0x40352c
40351f:	8b 57 08             	mov    0x8(%edi),%edx
403522:	6a 01                	push   $0x1
403524:	2b d1                	sub    %ecx,%edx
403526:	e8 b3 dc ff ff       	call   0x4011de
40352b:	59                   	pop    %ecx
40352c:	8b 44 24 14          	mov    0x14(%esp),%eax
403530:	03 c3                	add    %ebx,%eax
403532:	89 1f                	mov    %ebx,(%edi)
403534:	89 47 08             	mov    %eax,0x8(%edi)
403537:	8d 04 2b             	lea    (%ebx,%ebp,1),%eax
40353a:	89 47 04             	mov    %eax,0x4(%edi)
40353d:	5f                   	pop    %edi
40353e:	5e                   	pop    %esi
40353f:	5d                   	pop    %ebp
403540:	5b                   	pop    %ebx
403541:	c2 04 00             	ret    $0x4
403544:	56                   	push   %esi
403545:	8b f1                	mov    %ecx,%esi
403547:	57                   	push   %edi
403548:	8b 7c 24 0c          	mov    0xc(%esp),%edi
40354c:	8b 4e 10             	mov    0x10(%esi),%ecx
40354f:	8b c1                	mov    %ecx,%eax
403551:	f7 d0                	not    %eax
403553:	3b c7                	cmp    %edi,%eax
403555:	76 62                	jbe    0x4035b9
403557:	85 ff                	test   %edi,%edi
403559:	74 57                	je     0x4035b2
40355b:	53                   	push   %ebx
40355c:	8d 1c 39             	lea    (%ecx,%edi,1),%ebx
40355f:	8b ce                	mov    %esi,%ecx
403561:	6a 00                	push   $0x0
403563:	53                   	push   %ebx
403564:	e8 ae ec ff ff       	call   0x402217
403569:	84 c0                	test   %al,%al
40356b:	74 44                	je     0x4035b1
40356d:	8b 56 10             	mov    0x10(%esi),%edx
403570:	83 ff 01             	cmp    $0x1,%edi
403573:	75 17                	jne    0x40358c
403575:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
403579:	72 04                	jb     0x40357f
40357b:	8b 0e                	mov    (%esi),%ecx
40357d:	eb 02                	jmp    0x403581
40357f:	8b ce                	mov    %esi,%ecx
403581:	66 8b 44 24 14       	mov    0x14(%esp),%ax
403586:	66 89 04 51          	mov    %ax,(%ecx,%edx,2)
40358a:	eb 1d                	jmp    0x4035a9
40358c:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
403590:	72 04                	jb     0x403596
403592:	8b 06                	mov    (%esi),%eax
403594:	eb 02                	jmp    0x403598
403596:	8b c6                	mov    %esi,%eax
403598:	57                   	push   %edi
403599:	ff 74 24 18          	push   0x18(%esp)
40359d:	8d 04 50             	lea    (%eax,%edx,2),%eax
4035a0:	50                   	push   %eax
4035a1:	e8 36 f2 ff ff       	call   0x4027dc
4035a6:	83 c4 0c             	add    $0xc,%esp
4035a9:	53                   	push   %ebx
4035aa:	8b ce                	mov    %esi,%ecx
4035ac:	e8 c4 ec ff ff       	call   0x402275
4035b1:	5b                   	pop    %ebx
4035b2:	5f                   	pop    %edi
4035b3:	8b c6                	mov    %esi,%eax
4035b5:	5e                   	pop    %esi
4035b6:	c2 08 00             	ret    $0x8
4035b9:	e8 45 ed ff ff       	call   0x402303
4035be:	cc                   	int3
4035bf:	55                   	push   %ebp
4035c0:	8b 6c 24 0c          	mov    0xc(%esp),%ebp
4035c4:	56                   	push   %esi
4035c5:	57                   	push   %edi
4035c6:	8b 7c 24 10          	mov    0x10(%esp),%edi
4035ca:	8b f1                	mov    %ecx,%esi
4035cc:	8b 47 10             	mov    0x10(%edi),%eax
4035cf:	3b c5                	cmp    %ebp,%eax
4035d1:	72 68                	jb     0x40363b
4035d3:	8b 4e 10             	mov    0x10(%esi),%ecx
4035d6:	2b c5                	sub    %ebp,%eax
4035d8:	53                   	push   %ebx
4035d9:	8b 5c 24 1c          	mov    0x1c(%esp),%ebx
4035dd:	3b c3                	cmp    %ebx,%eax
4035df:	0f 42 d8             	cmovb  %eax,%ebx
4035e2:	8b c1                	mov    %ecx,%eax
4035e4:	f7 d0                	not    %eax
4035e6:	3b c3                	cmp    %ebx,%eax
4035e8:	76 56                	jbe    0x403640
4035ea:	85 db                	test   %ebx,%ebx
4035ec:	74 44                	je     0x403632
4035ee:	8d 04 19             	lea    (%ecx,%ebx,1),%eax
4035f1:	8b ce                	mov    %esi,%ecx
4035f3:	6a 00                	push   $0x0
4035f5:	50                   	push   %eax
4035f6:	89 44 24 1c          	mov    %eax,0x1c(%esp)
4035fa:	e8 18 ec ff ff       	call   0x402217
4035ff:	84 c0                	test   %al,%al
403601:	74 2f                	je     0x403632
403603:	83 7f 14 08          	cmpl   $0x8,0x14(%edi)
403607:	72 02                	jb     0x40360b
403609:	8b 3f                	mov    (%edi),%edi
40360b:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40360f:	72 04                	jb     0x403615
403611:	8b 0e                	mov    (%esi),%ecx
403613:	eb 02                	jmp    0x403617
403615:	8b ce                	mov    %esi,%ecx
403617:	8b 46 10             	mov    0x10(%esi),%eax
40361a:	8d 14 6f             	lea    (%edi,%ebp,2),%edx
40361d:	53                   	push   %ebx
40361e:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
403621:	e8 46 db ff ff       	call   0x40116c
403626:	59                   	pop    %ecx
403627:	ff 74 24 14          	push   0x14(%esp)
40362b:	8b ce                	mov    %esi,%ecx
40362d:	e8 43 ec ff ff       	call   0x402275
403632:	5b                   	pop    %ebx
403633:	5f                   	pop    %edi
403634:	8b c6                	mov    %esi,%eax
403636:	5e                   	pop    %esi
403637:	5d                   	pop    %ebp
403638:	c2 0c 00             	ret    $0xc
40363b:	e8 93 eb ff ff       	call   0x4021d3
403640:	e8 be ec ff ff       	call   0x402303
403645:	cc                   	int3
403646:	51                   	push   %ecx
403647:	33 c9                	xor    %ecx,%ecx
403649:	ba 28 01 00 00       	mov    $0x128,%edx
40364e:	41                   	inc    %ecx
40364f:	e8 32 db ff ff       	call   0x401186
403654:	59                   	pop    %ecx
403655:	8b 4c 24 04          	mov    0x4(%esp),%ecx
403659:	85 c9                	test   %ecx,%ecx
40365b:	75 06                	jne    0x403663
40365d:	8b c8                	mov    %eax,%ecx
40365f:	8b d0                	mov    %eax,%edx
403661:	eb 04                	jmp    0x403667
403663:	8b 54 24 08          	mov    0x8(%esp),%edx
403667:	85 c0                	test   %eax,%eax
403669:	74 02                	je     0x40366d
40366b:	89 08                	mov    %ecx,(%eax)
40366d:	8d 48 04             	lea    0x4(%eax),%ecx
403670:	85 c9                	test   %ecx,%ecx
403672:	74 02                	je     0x403676
403674:	89 11                	mov    %edx,(%ecx)
403676:	c2 08 00             	ret    $0x8
403679:	53                   	push   %ebx
40367a:	55                   	push   %ebp
40367b:	56                   	push   %esi
40367c:	8b f1                	mov    %ecx,%esi
40367e:	33 c0                	xor    %eax,%eax
403680:	57                   	push   %edi
403681:	6a 07                	push   $0x7
403683:	5d                   	pop    %ebp
403684:	83 66 10 00          	andl   $0x0,0x10(%esi)
403688:	bf a0 94 43 00       	mov    $0x4394a0,%edi
40368d:	89 6e 14             	mov    %ebp,0x14(%esi)
403690:	8b cf                	mov    %edi,%ecx
403692:	8b da                	mov    %edx,%ebx
403694:	66 89 06             	mov    %ax,(%esi)
403697:	e8 b0 da ff ff       	call   0x40114c
40369c:	03 43 10             	add    0x10(%ebx),%eax
40369f:	3b c5                	cmp    %ebp,%eax
4036a1:	74 23                	je     0x4036c6
4036a3:	6a 01                	push   $0x1
4036a5:	50                   	push   %eax
4036a6:	8b ce                	mov    %esi,%ecx
4036a8:	e8 6a eb ff ff       	call   0x402217
4036ad:	84 c0                	test   %al,%al
4036af:	74 15                	je     0x4036c6
4036b1:	83 66 10 00          	andl   $0x0,0x10(%esi)
4036b5:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
4036b9:	72 04                	jb     0x4036bf
4036bb:	8b 06                	mov    (%esi),%eax
4036bd:	eb 02                	jmp    0x4036c1
4036bf:	8b c6                	mov    %esi,%eax
4036c1:	33 c9                	xor    %ecx,%ecx
4036c3:	66 89 08             	mov    %cx,(%eax)
4036c6:	6a ff                	push   $0xffffffff
4036c8:	6a 00                	push   $0x0
4036ca:	53                   	push   %ebx
4036cb:	8b ce                	mov    %esi,%ecx
4036cd:	e8 ed fe ff ff       	call   0x4035bf
4036d2:	8b cf                	mov    %edi,%ecx
4036d4:	e8 73 da ff ff       	call   0x40114c
4036d9:	57                   	push   %edi
4036da:	8b ce                	mov    %esi,%ecx
4036dc:	8b d8                	mov    %eax,%ebx
4036de:	e8 fb ea ff ff       	call   0x4021de
4036e3:	84 c0                	test   %al,%al
4036e5:	74 1a                	je     0x403701
4036e7:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
4036eb:	72 04                	jb     0x4036f1
4036ed:	8b 06                	mov    (%esi),%eax
4036ef:	eb 02                	jmp    0x4036f3
4036f1:	8b c6                	mov    %esi,%eax
4036f3:	2b f8                	sub    %eax,%edi
4036f5:	53                   	push   %ebx
4036f6:	d1 ff                	sar    $1,%edi
4036f8:	57                   	push   %edi
4036f9:	56                   	push   %esi
4036fa:	e8 c0 fe ff ff       	call   0x4035bf
4036ff:	eb 50                	jmp    0x403751
403701:	8b 4e 10             	mov    0x10(%esi),%ecx
403704:	8b c1                	mov    %ecx,%eax
403706:	f7 d0                	not    %eax
403708:	3b c3                	cmp    %ebx,%eax
40370a:	76 4c                	jbe    0x403758
40370c:	85 db                	test   %ebx,%ebx
40370e:	74 41                	je     0x403751
403710:	8d 2c 19             	lea    (%ecx,%ebx,1),%ebp