00401000 <.text>:
401000:	56                   	push   %esi
401001:	57                   	push   %edi
401002:	8b 7c 24 0c          	mov    0xc(%esp),%edi
401006:	8b 74 24 10          	mov    0x10(%esp),%esi
40100a:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40100e:	55                   	push   %ebp
40100f:	c1 e1 06             	shl    $0x6,%ecx
401012:	53                   	push   %ebx
401013:	01 f1                	add    %esi,%ecx
401015:	83 e9 40             	sub    $0x40,%ecx
401018:	8b 07                	mov    (%edi),%eax
40101a:	51                   	push   %ecx
40101b:	8b 5f 04             	mov    0x4(%edi),%ebx
40101e:	8b 4f 08             	mov    0x8(%edi),%ecx
401021:	8b 57 0c             	mov    0xc(%edi),%edx
401024:	89 cf                	mov    %ecx,%edi
401026:	8b 2e                	mov    (%esi),%ebp
401028:	31 d7                	xor    %edx,%edi
40102a:	21 df                	and    %ebx,%edi
40102c:	8d 84 28 78 a4 6a d7 	lea    -0x28955b88(%eax,%ebp,1),%eax
401033:	31 d7                	xor    %edx,%edi
401035:	8b 6e 04             	mov    0x4(%esi),%ebp
401038:	01 f8                	add    %edi,%eax
40103a:	c1 c0 07             	rol    $0x7,%eax
40103d:	89 df                	mov    %ebx,%edi
40103f:	01 d8                	add    %ebx,%eax
401041:	31 cf                	xor    %ecx,%edi
401043:	21 c7                	and    %eax,%edi
401045:	8d 94 2a 56 b7 c7 e8 	lea    -0x173848aa(%edx,%ebp,1),%edx
40104c:	31 cf                	xor    %ecx,%edi
40104e:	8b 6e 08             	mov    0x8(%esi),%ebp
401051:	01 fa                	add    %edi,%edx
401053:	c1 c2 0c             	rol    $0xc,%edx
401056:	89 c7                	mov    %eax,%edi
401058:	01 c2                	add    %eax,%edx
40105a:	31 df                	xor    %ebx,%edi
40105c:	21 d7                	and    %edx,%edi
40105e:	8d 8c 29 db 70 20 24 	lea    0x242070db(%ecx,%ebp,1),%ecx
401065:	31 df                	xor    %ebx,%edi
401067:	8b 6e 0c             	mov    0xc(%esi),%ebp
40106a:	01 f9                	add    %edi,%ecx
40106c:	c1 c1 11             	rol    $0x11,%ecx
40106f:	89 d7                	mov    %edx,%edi
401071:	01 d1                	add    %edx,%ecx
401073:	31 c7                	xor    %eax,%edi
401075:	21 cf                	and    %ecx,%edi
401077:	8d 9c 2b ee ce bd c1 	lea    -0x3e423112(%ebx,%ebp,1),%ebx
40107e:	31 c7                	xor    %eax,%edi
401080:	8b 6e 10             	mov    0x10(%esi),%ebp
401083:	01 fb                	add    %edi,%ebx
401085:	c1 c3 16             	rol    $0x16,%ebx
401088:	89 cf                	mov    %ecx,%edi
40108a:	01 cb                	add    %ecx,%ebx
40108c:	31 d7                	xor    %edx,%edi
40108e:	21 df                	and    %ebx,%edi
401090:	8d 84 28 af 0f 7c f5 	lea    -0xa83f051(%eax,%ebp,1),%eax
401097:	31 d7                	xor    %edx,%edi
401099:	8b 6e 14             	mov    0x14(%esi),%ebp
40109c:	01 f8                	add    %edi,%eax
40109e:	c1 c0 07             	rol    $0x7,%eax
4010a1:	89 df                	mov    %ebx,%edi
4010a3:	01 d8                	add    %ebx,%eax
4010a5:	31 cf                	xor    %ecx,%edi
4010a7:	21 c7                	and    %eax,%edi
4010a9:	8d 94 2a 2a c6 87 47 	lea    0x4787c62a(%edx,%ebp,1),%edx
4010b0:	31 cf                	xor    %ecx,%edi
4010b2:	8b 6e 18             	mov    0x18(%esi),%ebp
4010b5:	01 fa                	add    %edi,%edx
4010b7:	c1 c2 0c             	rol    $0xc,%edx
4010ba:	89 c7                	mov    %eax,%edi
4010bc:	01 c2                	add    %eax,%edx
4010be:	31 df                	xor    %ebx,%edi
4010c0:	21 d7                	and    %edx,%edi
4010c2:	8d 8c 29 13 46 30 a8 	lea    -0x57cfb9ed(%ecx,%ebp,1),%ecx
4010c9:	31 df                	xor    %ebx,%edi
4010cb:	8b 6e 1c             	mov    0x1c(%esi),%ebp
4010ce:	01 f9                	add    %edi,%ecx
4010d0:	c1 c1 11             	rol    $0x11,%ecx
4010d3:	89 d7                	mov    %edx,%edi
4010d5:	01 d1                	add    %edx,%ecx
4010d7:	31 c7                	xor    %eax,%edi
4010d9:	21 cf                	and    %ecx,%edi
4010db:	8d 9c 2b 01 95 46 fd 	lea    -0x2b96aff(%ebx,%ebp,1),%ebx
4010e2:	31 c7                	xor    %eax,%edi
4010e4:	8b 6e 20             	mov    0x20(%esi),%ebp
4010e7:	01 fb                	add    %edi,%ebx
4010e9:	c1 c3 16             	rol    $0x16,%ebx
4010ec:	89 cf                	mov    %ecx,%edi
4010ee:	01 cb                	add    %ecx,%ebx
4010f0:	31 d7                	xor    %edx,%edi
4010f2:	21 df                	and    %ebx,%edi
4010f4:	8d 84 28 d8 98 80 69 	lea    0x698098d8(%eax,%ebp,1),%eax
4010fb:	31 d7                	xor    %edx,%edi
4010fd:	8b 6e 24             	mov    0x24(%esi),%ebp
401100:	01 f8                	add    %edi,%eax
401102:	c1 c0 07             	rol    $0x7,%eax
401105:	89 df                	mov    %ebx,%edi
401107:	01 d8                	add    %ebx,%eax
401109:	31 cf                	xor    %ecx,%edi
40110b:	21 c7                	and    %eax,%edi
40110d:	8d 94 2a af f7 44 8b 	lea    -0x74bb0851(%edx,%ebp,1),%edx
401114:	31 cf                	xor    %ecx,%edi
401116:	8b 6e 28             	mov    0x28(%esi),%ebp
401119:	01 fa                	add    %edi,%edx
40111b:	c1 c2 0c             	rol    $0xc,%edx
40111e:	89 c7                	mov    %eax,%edi
401120:	01 c2                	add    %eax,%edx
401122:	31 df                	xor    %ebx,%edi
401124:	21 d7                	and    %edx,%edi
401126:	8d 8c 29 b1 5b ff ff 	lea    -0xa44f(%ecx,%ebp,1),%ecx
40112d:	31 df                	xor    %ebx,%edi
40112f:	8b 6e 2c             	mov    0x2c(%esi),%ebp
401132:	01 f9                	add    %edi,%ecx
401134:	c1 c1 11             	rol    $0x11,%ecx
401137:	89 d7                	mov    %edx,%edi
401139:	01 d1                	add    %edx,%ecx
40113b:	31 c7                	xor    %eax,%edi
40113d:	21 cf                	and    %ecx,%edi
40113f:	8d 9c 2b be d7 5c 89 	lea    -0x76a32842(%ebx,%ebp,1),%ebx
401146:	31 c7                	xor    %eax,%edi
401148:	8b 6e 30             	mov    0x30(%esi),%ebp
40114b:	01 fb                	add    %edi,%ebx
40114d:	c1 c3 16             	rol    $0x16,%ebx
401150:	89 cf                	mov    %ecx,%edi
401152:	01 cb                	add    %ecx,%ebx
401154:	31 d7                	xor    %edx,%edi
401156:	21 df                	and    %ebx,%edi
401158:	8d 84 28 22 11 90 6b 	lea    0x6b901122(%eax,%ebp,1),%eax
40115f:	31 d7                	xor    %edx,%edi
401161:	8b 6e 34             	mov    0x34(%esi),%ebp
401164:	01 f8                	add    %edi,%eax
401166:	c1 c0 07             	rol    $0x7,%eax
401169:	89 df                	mov    %ebx,%edi
40116b:	01 d8                	add    %ebx,%eax
40116d:	31 cf                	xor    %ecx,%edi
40116f:	21 c7                	and    %eax,%edi
401171:	8d 94 2a 93 71 98 fd 	lea    -0x2678e6d(%edx,%ebp,1),%edx
401178:	31 cf                	xor    %ecx,%edi
40117a:	8b 6e 38             	mov    0x38(%esi),%ebp
40117d:	01 fa                	add    %edi,%edx
40117f:	c1 c2 0c             	rol    $0xc,%edx
401182:	89 c7                	mov    %eax,%edi
401184:	01 c2                	add    %eax,%edx
401186:	31 df                	xor    %ebx,%edi
401188:	21 d7                	and    %edx,%edi
40118a:	8d 8c 29 8e 43 79 a6 	lea    -0x5986bc72(%ecx,%ebp,1),%ecx
401191:	31 df                	xor    %ebx,%edi
401193:	8b 6e 3c             	mov    0x3c(%esi),%ebp
401196:	01 f9                	add    %edi,%ecx
401198:	c1 c1 11             	rol    $0x11,%ecx
40119b:	89 d7                	mov    %edx,%edi
40119d:	01 d1                	add    %edx,%ecx
40119f:	31 c7                	xor    %eax,%edi
4011a1:	21 cf                	and    %ecx,%edi
4011a3:	8d 9c 2b 21 08 b4 49 	lea    0x49b40821(%ebx,%ebp,1),%ebx
4011aa:	31 c7                	xor    %eax,%edi
4011ac:	8b 6e 04             	mov    0x4(%esi),%ebp
4011af:	01 fb                	add    %edi,%ebx
4011b1:	c1 c3 16             	rol    $0x16,%ebx
4011b4:	89 cf                	mov    %ecx,%edi
4011b6:	01 cb                	add    %ecx,%ebx
4011b8:	31 df                	xor    %ebx,%edi
4011ba:	21 d7                	and    %edx,%edi
4011bc:	8d 84 28 62 25 1e f6 	lea    -0x9e1da9e(%eax,%ebp,1),%eax
4011c3:	31 cf                	xor    %ecx,%edi
4011c5:	8b 6e 18             	mov    0x18(%esi),%ebp
4011c8:	01 f8                	add    %edi,%eax
4011ca:	89 df                	mov    %ebx,%edi
4011cc:	c1 c0 05             	rol    $0x5,%eax
4011cf:	01 d8                	add    %ebx,%eax
4011d1:	31 c7                	xor    %eax,%edi
4011d3:	21 cf                	and    %ecx,%edi
4011d5:	8d 94 2a 40 b3 40 c0 	lea    -0x3fbf4cc0(%edx,%ebp,1),%edx
4011dc:	31 df                	xor    %ebx,%edi
4011de:	8b 6e 2c             	mov    0x2c(%esi),%ebp
4011e1:	01 fa                	add    %edi,%edx
4011e3:	89 c7                	mov    %eax,%edi
4011e5:	c1 c2 09             	rol    $0x9,%edx
4011e8:	01 c2                	add    %eax,%edx
4011ea:	31 d7                	xor    %edx,%edi
4011ec:	21 df                	and    %ebx,%edi
4011ee:	8d 8c 29 51 5a 5e 26 	lea    0x265e5a51(%ecx,%ebp,1),%ecx
4011f5:	31 c7                	xor    %eax,%edi
4011f7:	8b 2e                	mov    (%esi),%ebp
4011f9:	01 f9                	add    %edi,%ecx
4011fb:	89 d7                	mov    %edx,%edi
4011fd:	c1 c1 0e             	rol    $0xe,%ecx
401200:	01 d1                	add    %edx,%ecx
401202:	31 cf                	xor    %ecx,%edi
401204:	21 c7                	and    %eax,%edi
401206:	8d 9c 2b aa c7 b6 e9 	lea    -0x16493856(%ebx,%ebp,1),%ebx
40120d:	31 d7                	xor    %edx,%edi
40120f:	8b 6e 14             	mov    0x14(%esi),%ebp
401212:	01 fb                	add    %edi,%ebx
401214:	89 cf                	mov    %ecx,%edi
401216:	c1 c3 14             	rol    $0x14,%ebx
401219:	01 cb                	add    %ecx,%ebx
40121b:	31 df                	xor    %ebx,%edi
40121d:	21 d7                	and    %edx,%edi
40121f:	8d 84 28 5d 10 2f d6 	lea    -0x29d0efa3(%eax,%ebp,1),%eax
401226:	31 cf                	xor    %ecx,%edi
401228:	8b 6e 28             	mov    0x28(%esi),%ebp
40122b:	01 f8                	add    %edi,%eax
40122d:	89 df                	mov    %ebx,%edi
40122f:	c1 c0 05             	rol    $0x5,%eax
401232:	01 d8                	add    %ebx,%eax
401234:	31 c7                	xor    %eax,%edi
401236:	21 cf                	and    %ecx,%edi
401238:	8d 94 2a 53 14 44 02 	lea    0x2441453(%edx,%ebp,1),%edx
40123f:	31 df                	xor    %ebx,%edi
401241:	8b 6e 3c             	mov    0x3c(%esi),%ebp
401244:	01 fa                	add    %edi,%edx
401246:	89 c7                	mov    %eax,%edi
401248:	c1 c2 09             	rol    $0x9,%edx
40124b:	01 c2                	add    %eax,%edx
40124d:	31 d7                	xor    %edx,%edi
40124f:	21 df                	and    %ebx,%edi
401251:	8d 8c 29 81 e6 a1 d8 	lea    -0x275e197f(%ecx,%ebp,1),%ecx
401258:	31 c7                	xor    %eax,%edi
40125a:	8b 6e 10             	mov    0x10(%esi),%ebp
40125d:	01 f9                	add    %edi,%ecx
40125f:	89 d7                	mov    %edx,%edi
401261:	c1 c1 0e             	rol    $0xe,%ecx
401264:	01 d1                	add    %edx,%ecx
401266:	31 cf                	xor    %ecx,%edi
401268:	21 c7                	and    %eax,%edi
40126a:	8d 9c 2b c8 fb d3 e7 	lea    -0x182c0438(%ebx,%ebp,1),%ebx
401271:	31 d7                	xor    %edx,%edi
401273:	8b 6e 24             	mov    0x24(%esi),%ebp
401276:	01 fb                	add    %edi,%ebx
401278:	89 cf                	mov    %ecx,%edi
40127a:	c1 c3 14             	rol    $0x14,%ebx
40127d:	01 cb                	add    %ecx,%ebx
40127f:	31 df                	xor    %ebx,%edi
401281:	21 d7                	and    %edx,%edi
401283:	8d 84 28 e6 cd e1 21 	lea    0x21e1cde6(%eax,%ebp,1),%eax
40128a:	31 cf                	xor    %ecx,%edi
40128c:	8b 6e 38             	mov    0x38(%esi),%ebp
40128f:	01 f8                	add    %edi,%eax
401291:	89 df                	mov    %ebx,%edi
401293:	c1 c0 05             	rol    $0x5,%eax
401296:	01 d8                	add    %ebx,%eax
401298:	31 c7                	xor    %eax,%edi
40129a:	21 cf                	and    %ecx,%edi
40129c:	8d 94 2a d6 07 37 c3 	lea    -0x3cc8f82a(%edx,%ebp,1),%edx
4012a3:	31 df                	xor    %ebx,%edi
4012a5:	8b 6e 0c             	mov    0xc(%esi),%ebp
4012a8:	01 fa                	add    %edi,%edx
4012aa:	89 c7                	mov    %eax,%edi
4012ac:	c1 c2 09             	rol    $0x9,%edx
4012af:	01 c2                	add    %eax,%edx
4012b1:	31 d7                	xor    %edx,%edi
4012b3:	21 df                	and    %ebx,%edi
4012b5:	8d 8c 29 87 0d d5 f4 	lea    -0xb2af279(%ecx,%ebp,1),%ecx
4012bc:	31 c7                	xor    %eax,%edi
4012be:	8b 6e 20             	mov    0x20(%esi),%ebp
4012c1:	01 f9                	add    %edi,%ecx
4012c3:	89 d7                	mov    %edx,%edi
4012c5:	c1 c1 0e             	rol    $0xe,%ecx
4012c8:	01 d1                	add    %edx,%ecx
4012ca:	31 cf                	xor    %ecx,%edi
4012cc:	21 c7                	and    %eax,%edi
4012ce:	8d 9c 2b ed 14 5a 45 	lea    0x455a14ed(%ebx,%ebp,1),%ebx
4012d5:	31 d7                	xor    %edx,%edi
4012d7:	8b 6e 34             	mov    0x34(%esi),%ebp
4012da:	01 fb                	add    %edi,%ebx
4012dc:	89 cf                	mov    %ecx,%edi
4012de:	c1 c3 14             	rol    $0x14,%ebx
4012e1:	01 cb                	add    %ecx,%ebx
4012e3:	31 df                	xor    %ebx,%edi
4012e5:	21 d7                	and    %edx,%edi
4012e7:	8d 84 28 05 e9 e3 a9 	lea    -0x561c16fb(%eax,%ebp,1),%eax
4012ee:	31 cf                	xor    %ecx,%edi
4012f0:	8b 6e 08             	mov    0x8(%esi),%ebp
4012f3:	01 f8                	add    %edi,%eax
4012f5:	89 df                	mov    %ebx,%edi
4012f7:	c1 c0 05             	rol    $0x5,%eax
4012fa:	01 d8                	add    %ebx,%eax
4012fc:	31 c7                	xor    %eax,%edi
4012fe:	21 cf                	and    %ecx,%edi
401300:	8d 94 2a f8 a3 ef fc 	lea    -0x3105c08(%edx,%ebp,1),%edx
401307:	31 df                	xor    %ebx,%edi
401309:	8b 6e 1c             	mov    0x1c(%esi),%ebp
40130c:	01 fa                	add    %edi,%edx
40130e:	89 c7                	mov    %eax,%edi
401310:	c1 c2 09             	rol    $0x9,%edx
401313:	01 c2                	add    %eax,%edx
401315:	31 d7                	xor    %edx,%edi
401317:	21 df                	and    %ebx,%edi
401319:	8d 8c 29 d9 02 6f 67 	lea    0x676f02d9(%ecx,%ebp,1),%ecx
401320:	31 c7                	xor    %eax,%edi
401322:	8b 6e 30             	mov    0x30(%esi),%ebp
401325:	01 f9                	add    %edi,%ecx
401327:	89 d7                	mov    %edx,%edi
401329:	c1 c1 0e             	rol    $0xe,%ecx
40132c:	01 d1                	add    %edx,%ecx
40132e:	31 cf                	xor    %ecx,%edi
401330:	21 c7                	and    %eax,%edi
401332:	8d 9c 2b 8a 4c 2a 8d 	lea    -0x72d5b376(%ebx,%ebp,1),%ebx
401339:	31 d7                	xor    %edx,%edi
40133b:	8b 6e 14             	mov    0x14(%esi),%ebp
40133e:	01 fb                	add    %edi,%ebx
401340:	89 cf                	mov    %ecx,%edi
401342:	c1 c3 14             	rol    $0x14,%ebx
401345:	01 cb                	add    %ecx,%ebx
401347:	31 d7                	xor    %edx,%edi
401349:	31 df                	xor    %ebx,%edi
40134b:	8d 84 28 42 39 fa ff 	lea    -0x5c6be(%eax,%ebp,1),%eax
401352:	01 f8                	add    %edi,%eax
401354:	8b 6e 20             	mov    0x20(%esi),%ebp
401357:	c1 c0 04             	rol    $0x4,%eax
40135a:	89 df                	mov    %ebx,%edi
40135c:	01 d8                	add    %ebx,%eax
40135e:	31 cf                	xor    %ecx,%edi
401360:	8d 94 2a 81 f6 71 87 	lea    -0x788e097f(%edx,%ebp,1),%edx
401367:	31 c7                	xor    %eax,%edi
401369:	8b 6e 2c             	mov    0x2c(%esi),%ebp
40136c:	01 fa                	add    %edi,%edx
40136e:	89 c7                	mov    %eax,%edi
401370:	c1 c2 0b             	rol    $0xb,%edx
401373:	01 c2                	add    %eax,%edx
401375:	31 df                	xor    %ebx,%edi
401377:	31 d7                	xor    %edx,%edi
401379:	8d 8c 29 22 61 9d 6d 	lea    0x6d9d6122(%ecx,%ebp,1),%ecx
401380:	01 f9                	add    %edi,%ecx
401382:	8b 6e 38             	mov    0x38(%esi),%ebp
401385:	c1 c1 10             	rol    $0x10,%ecx
401388:	89 d7                	mov    %edx,%edi
40138a:	01 d1                	add    %edx,%ecx
40138c:	31 c7                	xor    %eax,%edi
40138e:	8d 9c 2b 0c 38 e5 fd 	lea    -0x21ac7f4(%ebx,%ebp,1),%ebx
401395:	31 cf                	xor    %ecx,%edi
401397:	8b 6e 04             	mov    0x4(%esi),%ebp
40139a:	01 fb                	add    %edi,%ebx
40139c:	89 cf                	mov    %ecx,%edi
40139e:	c1 c3 17             	rol    $0x17,%ebx
4013a1:	01 cb                	add    %ecx,%ebx
4013a3:	31 d7                	xor    %edx,%edi
4013a5:	31 df                	xor    %ebx,%edi
4013a7:	8d 84 28 44 ea be a4 	lea    -0x5b4115bc(%eax,%ebp,1),%eax
4013ae:	01 f8                	add    %edi,%eax
4013b0:	8b 6e 10             	mov    0x10(%esi),%ebp
4013b3:	c1 c0 04             	rol    $0x4,%eax
4013b6:	89 df                	mov    %ebx,%edi
4013b8:	01 d8                	add    %ebx,%eax
4013ba:	31 cf                	xor    %ecx,%edi
4013bc:	8d 94 2a a9 cf de 4b 	lea    0x4bdecfa9(%edx,%ebp,1),%edx
4013c3:	31 c7                	xor    %eax,%edi
4013c5:	8b 6e 1c             	mov    0x1c(%esi),%ebp