4558b2:	eb 25                	jmp    0x4558d9
4558b4:	a9 00 00 00 40       	test   $0x40000000,%eax
4558b9:	74 11                	je     0x4558cc
4558bb:	25 00 00 00 80       	and    $0x80000000,%eax
4558c0:	f7 d8                	neg    %eax
4558c2:	1b c0                	sbb    %eax,%eax
4558c4:	83 e0 02             	and    $0x2,%eax
4558c7:	83 c0 02             	add    $0x2,%eax
4558ca:	eb 0d                	jmp    0x4558d9
4558cc:	25 00 00 00 80       	and    $0x80000000,%eax
4558d1:	f7 d8                	neg    %eax
4558d3:	1b c0                	sbb    %eax,%eax
4558d5:	83 e0 07             	and    $0x7,%eax
4558d8:	40                   	inc    %eax
4558d9:	8d 54 24 10          	lea    0x10(%esp),%edx
4558dd:	8b f0                	mov    %eax,%esi
4558df:	52                   	push   %edx
4558e0:	e8 7b 09 00 00       	call   0x456260
4558e5:	50                   	push   %eax
4558e6:	56                   	push   %esi
4558e7:	8b 4c 24 28          	mov    0x28(%esp),%ecx
4558eb:	8b b4 24 40 01 00 00 	mov    0x140(%esp),%esi
4558f2:	8b 44 24 24          	mov    0x24(%esp),%eax
4558f6:	03 ce                	add    %esi,%ecx
4558f8:	50                   	push   %eax
4558f9:	70 4c                	jo     0x455947
4558fb:	51                   	push   %ecx
4558fc:	e8 7f 08 00 00       	call   0x456180
455901:	85 c0                	test   %eax,%eax
455903:	74 21                	je     0x455926
455905:	83 c7 28             	add    $0x28,%edi
455908:	70 3d                	jo     0x455947
45590a:	83 c3 01             	add    $0x1,%ebx
45590d:	70 38                	jo     0x455947
45590f:	3b dd                	cmp    %ebp,%ebx
455911:	0f 8e 56 ff ff ff    	jle    0x45586d
455917:	5f                   	pop    %edi
455918:	5e                   	pop    %esi
455919:	5d                   	pop    %ebp
45591a:	33 c0                	xor    %eax,%eax
45591c:	5b                   	pop    %ebx
45591d:	81 c4 24 01 00 00    	add    $0x124,%esp
455923:	c2 04 00             	ret    $0x4
455926:	5f                   	pop    %edi
455927:	5e                   	pop    %esi
455928:	5d                   	pop    %ebp
455929:	b8 04 00 00 00       	mov    $0x4,%eax
45592e:	5b                   	pop    %ebx
45592f:	81 c4 24 01 00 00    	add    $0x124,%esp
455935:	c2 04 00             	ret    $0x4
455938:	8b c6                	mov    %esi,%eax
45593a:	5f                   	pop    %edi
45593b:	5e                   	pop    %esi
45593c:	5d                   	pop    %ebp
45593d:	5b                   	pop    %ebx
45593e:	81 c4 24 01 00 00    	add    $0x124,%esp
455944:	c2 04 00             	ret    $0x4
455947:	ff 15 7c 11 40 00    	call   *0x40117c
45594d:	90                   	nop
45594e:	90                   	nop
45594f:	90                   	nop
455950:	81 ec 20 01 00 00    	sub    $0x120,%esp
455956:	53                   	push   %ebx
455957:	56                   	push   %esi
455958:	57                   	push   %edi
455959:	b9 3e 00 00 00       	mov    $0x3e,%ecx
45595e:	33 c0                	xor    %eax,%eax
455960:	8d 7c 24 34          	lea    0x34(%esp),%edi
455964:	f3 ab                	rep stos %eax,%es:(%edi)
455966:	8b bc 24 30 01 00 00 	mov    0x130(%esp),%edi
45596d:	89 44 24 14          	mov    %eax,0x14(%esp)
455971:	89 44 24 18          	mov    %eax,0x18(%esp)
455975:	33 c9                	xor    %ecx,%ecx
455977:	89 44 24 1c          	mov    %eax,0x1c(%esp)
45597b:	8d 54 24 34          	lea    0x34(%esp),%edx
45597f:	33 f6                	xor    %esi,%esi
455981:	89 44 24 20          	mov    %eax,0x20(%esp)
455985:	89 4c 24 2c          	mov    %ecx,0x2c(%esp)
455989:	52                   	push   %edx
45598a:	57                   	push   %edi
45598b:	89 74 24 18          	mov    %esi,0x18(%esp)
45598f:	89 44 24 2c          	mov    %eax,0x2c(%esp)
455993:	89 74 24 14          	mov    %esi,0x14(%esp)
455997:	89 4c 24 38          	mov    %ecx,0x38(%esp)
45599b:	e8 d0 05 00 00       	call   0x455f70
4559a0:	85 c0                	test   %eax,%eax
4559a2:	75 11                	jne    0x4559b5
4559a4:	5f                   	pop    %edi
4559a5:	5e                   	pop    %esi
4559a6:	b8 01 00 00 00       	mov    $0x1,%eax
4559ab:	5b                   	pop    %ebx
4559ac:	81 c4 20 01 00 00    	add    $0x120,%esp
4559b2:	c2 04 00             	ret    $0x4
4559b5:	83 bc 24 a8 00 00 00 	cmpl   $0x1,0xa8(%esp)
4559bc:	01
4559bd:	0f 8e 75 01 00 00    	jle    0x455b38
4559c3:	8d 44 24 2c          	lea    0x2c(%esp),%eax
4559c7:	50                   	push   %eax
4559c8:	6a 01                	push   $0x1
4559ca:	57                   	push   %edi
4559cb:	e8 80 06 00 00       	call   0x456050
4559d0:	85 c0                	test   %eax,%eax
4559d2:	75 11                	jne    0x4559e5
4559d4:	5f                   	pop    %edi
4559d5:	5e                   	pop    %esi
4559d6:	b8 02 00 00 00       	mov    $0x2,%eax
4559db:	5b                   	pop    %ebx
4559dc:	81 c4 20 01 00 00    	add    $0x120,%esp
4559e2:	c2 04 00             	ret    $0x4
4559e5:	8b 44 24 30          	mov    0x30(%esp),%eax
4559e9:	85 c0                	test   %eax,%eax
4559eb:	0f 8e 47 01 00 00    	jle    0x455b38
4559f1:	8b 44 24 2c          	mov    0x2c(%esp),%eax
4559f5:	85 c0                	test   %eax,%eax
4559f7:	0f 8e 3b 01 00 00    	jle    0x455b38
4559fd:	03 c7                	add    %edi,%eax
4559ff:	0f 80 41 01 00 00    	jo     0x455b46
455a05:	8b f0                	mov    %eax,%esi
455a07:	8d 4c 24 14          	lea    0x14(%esp),%ecx
455a0b:	89 74 24 28          	mov    %esi,0x28(%esp)
455a0f:	51                   	push   %ecx
455a10:	e8 4b 08 00 00       	call   0x456260
455a15:	6a 14                	push   $0x14
455a17:	56                   	push   %esi
455a18:	50                   	push   %eax
455a19:	e8 82 07 00 00       	call   0x4561a0
455a1e:	8b 44 24 14          	mov    0x14(%esp),%eax
455a22:	85 c0                	test   %eax,%eax
455a24:	8b 44 24 20          	mov    0x20(%esp),%eax
455a28:	75 25                	jne    0x455a4f
455a2a:	8b 4c 24 24          	mov    0x24(%esp),%ecx
455a2e:	85 c9                	test   %ecx,%ecx
455a30:	75 1d                	jne    0x455a4f
455a32:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
455a36:	85 c9                	test   %ecx,%ecx
455a38:	75 15                	jne    0x455a4f
455a3a:	85 c0                	test   %eax,%eax
455a3c:	75 13                	jne    0x455a51
455a3e:	8b 44 24 18          	mov    0x18(%esp),%eax
455a42:	85 c0                	test   %eax,%eax
455a44:	0f 84 e0 00 00 00    	je     0x455b2a
455a4a:	e9 bc 00 00 00       	jmp    0x455b0b
455a4f:	85 c0                	test   %eax,%eax
455a51:	0f 8e b4 00 00 00    	jle    0x455b0b
455a57:	03 c7                	add    %edi,%eax
455a59:	0f 80 e7 00 00 00    	jo     0x455b46
455a5f:	50                   	push   %eax
455a60:	e8 6b 07 00 00       	call   0x4561d0
455a65:	8b d8                	mov    %eax,%ebx
455a67:	85 db                	test   %ebx,%ebx
455a69:	0f 84 aa 00 00 00    	je     0x455b19
455a6f:	8b 74 24 14          	mov    0x14(%esp),%esi
455a73:	85 f6                	test   %esi,%esi
455a75:	75 04                	jne    0x455a7b
455a77:	8b 74 24 24          	mov    0x24(%esp),%esi
455a7b:	8d 54 24 0c          	lea    0xc(%esp),%edx
455a7f:	03 f7                	add    %edi,%esi
455a81:	52                   	push   %edx
455a82:	0f 80 be 00 00 00    	jo     0x455b46
455a88:	e8 d3 07 00 00       	call   0x456260
455a8d:	6a 04                	push   $0x4
455a8f:	56                   	push   %esi
455a90:	50                   	push   %eax
455a91:	e8 0a 07 00 00       	call   0x4561a0
455a96:	8b 44 24 0c          	mov    0xc(%esp),%eax
455a9a:	85 c0                	test   %eax,%eax
455a9c:	74 6d                	je     0x455b0b
455a9e:	7d 07                	jge    0x455aa7
455aa0:	25 ff ff 00 00       	and    $0xffff,%eax
455aa5:	eb 11                	jmp    0x455ab8
455aa7:	83 c0 02             	add    $0x2,%eax
455aaa:	0f 80 96 00 00 00    	jo     0x455b46
455ab0:	03 c7                	add    %edi,%eax
455ab2:	0f 80 8e 00 00 00    	jo     0x455b46
455ab8:	50                   	push   %eax
455ab9:	53                   	push   %ebx
455aba:	e8 21 07 00 00       	call   0x4561e0
455abf:	83 c6 04             	add    $0x4,%esi
455ac2:	89 44 24 10          	mov    %eax,0x10(%esp)
455ac6:	8d 44 24 0c          	lea    0xc(%esp),%eax
455aca:	50                   	push   %eax
455acb:	70 79                	jo     0x455b46
455acd:	e8 8e 07 00 00       	call   0x456260
455ad2:	6a 04                	push   $0x4
455ad4:	56                   	push   %esi
455ad5:	50                   	push   %eax
455ad6:	e8 c5 06 00 00       	call   0x4561a0
455adb:	8d 4c 24 10          	lea    0x10(%esp),%ecx
455adf:	51                   	push   %ecx
455ae0:	e8 7b 07 00 00       	call   0x456260
455ae5:	6a 04                	push   $0x4
455ae7:	50                   	push   %eax
455ae8:	8b 54 24 2c          	mov    0x2c(%esp),%edx
455aec:	03 d7                	add    %edi,%edx
455aee:	70 56                	jo     0x455b46
455af0:	52                   	push   %edx
455af1:	e8 aa 06 00 00       	call   0x4561a0
455af6:	8b 44 24 24          	mov    0x24(%esp),%eax
455afa:	83 c0 04             	add    $0x4,%eax
455afd:	70 47                	jo     0x455b46
455aff:	89 44 24 24          	mov    %eax,0x24(%esp)
455b03:	8b 44 24 0c          	mov    0xc(%esp),%eax
455b07:	85 c0                	test   %eax,%eax
455b09:	75 93                	jne    0x455a9e
455b0b:	8b 74 24 28          	mov    0x28(%esp),%esi
455b0f:	83 c6 14             	add    $0x14,%esi
455b12:	70 32                	jo     0x455b46
455b14:	e9 ee fe ff ff       	jmp    0x455a07
455b19:	5f                   	pop    %edi
455b1a:	5e                   	pop    %esi
455b1b:	b8 05 00 00 00       	mov    $0x5,%eax
455b20:	5b                   	pop    %ebx
455b21:	81 c4 20 01 00 00    	add    $0x120,%esp
455b27:	c2 04 00             	ret    $0x4
455b2a:	5f                   	pop    %edi
455b2b:	5e                   	pop    %esi
455b2c:	33 c0                	xor    %eax,%eax
455b2e:	5b                   	pop    %ebx
455b2f:	81 c4 20 01 00 00    	add    $0x120,%esp
455b35:	c2 04 00             	ret    $0x4
455b38:	8b c6                	mov    %esi,%eax
455b3a:	5f                   	pop    %edi
455b3b:	5e                   	pop    %esi
455b3c:	5b                   	pop    %ebx
455b3d:	81 c4 20 01 00 00    	add    $0x120,%esp
455b43:	c2 04 00             	ret    $0x4
455b46:	ff 15 7c 11 40 00    	call   *0x40117c
455b4c:	90                   	nop
455b4d:	90                   	nop
455b4e:	90                   	nop
455b4f:	90                   	nop
455b50:	81 ec 14 01 00 00    	sub    $0x114,%esp
455b56:	55                   	push   %ebp
455b57:	56                   	push   %esi
455b58:	57                   	push   %edi
455b59:	b9 3e 00 00 00       	mov    $0x3e,%ecx
455b5e:	33 c0                	xor    %eax,%eax
455b60:	8d 7c 24 28          	lea    0x28(%esp),%edi
455b64:	f3 ab                	rep stos %eax,%es:(%edi)
455b66:	8b bc 24 24 01 00 00 	mov    0x124(%esp),%edi
455b6d:	33 c9                	xor    %ecx,%ecx
455b6f:	8d 54 24 28          	lea    0x28(%esp),%edx
455b73:	33 f6                	xor    %esi,%esi
455b75:	89 44 24 10          	mov    %eax,0x10(%esp)
455b79:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
455b7d:	52                   	push   %edx
455b7e:	57                   	push   %edi
455b7f:	89 74 24 14          	mov    %esi,0x14(%esp)
455b83:	89 44 24 1c          	mov    %eax,0x1c(%esp)
455b87:	89 74 24 20          	mov    %esi,0x20(%esp)
455b8b:	89 4c 24 28          	mov    %ecx,0x28(%esp)
455b8f:	e8 dc 03 00 00       	call   0x455f70
455b94:	85 c0                	test   %eax,%eax
455b96:	75 11                	jne    0x455ba9
455b98:	5f                   	pop    %edi
455b99:	5e                   	pop    %esi
455b9a:	b8 01 00 00 00       	mov    $0x1,%eax
455b9f:	5d                   	pop    %ebp
455ba0:	81 c4 14 01 00 00    	add    $0x114,%esp
455ba6:	c2 04 00             	ret    $0x4
455ba9:	8b 54 24 5c          	mov    0x5c(%esp),%edx
455bad:	8b c7                	mov    %edi,%eax
455baf:	2b c2                	sub    %edx,%eax
455bb1:	0f 80 72 01 00 00    	jo     0x455d29
455bb7:	3b c6                	cmp    %esi,%eax
455bb9:	89 44 24 24          	mov    %eax,0x24(%esp)
455bbd:	0f 84 58 01 00 00    	je     0x455d1b
455bc3:	8d 44 24 1c          	lea    0x1c(%esp),%eax
455bc7:	50                   	push   %eax
455bc8:	6a 05                	push   $0x5
455bca:	57                   	push   %edi
455bcb:	e8 80 04 00 00       	call   0x456050
455bd0:	85 c0                	test   %eax,%eax
455bd2:	75 11                	jne    0x455be5
455bd4:	5f                   	pop    %edi
455bd5:	5e                   	pop    %esi
455bd6:	b8 02 00 00 00       	mov    $0x2,%eax
455bdb:	5d                   	pop    %ebp
455bdc:	81 c4 14 01 00 00    	add    $0x114,%esp
455be2:	c2 04 00             	ret    $0x4
455be5:	39 74 24 20          	cmp    %esi,0x20(%esp)
455be9:	0f 8e 2c 01 00 00    	jle    0x455d1b
455bef:	8b 44 24 1c          	mov    0x1c(%esp),%eax
455bf3:	3b c6                	cmp    %esi,%eax
455bf5:	0f 8e 20 01 00 00    	jle    0x455d1b
455bfb:	03 c7                	add    %edi,%eax
455bfd:	8d 4c 24 10          	lea    0x10(%esp),%ecx
455c01:	0f 80 22 01 00 00    	jo     0x455d29
455c07:	51                   	push   %ecx
455c08:	8b e8                	mov    %eax,%ebp
455c0a:	e8 51 06 00 00       	call   0x456260
455c0f:	6a 08                	push   $0x8
455c11:	55                   	push   %ebp
455c12:	50                   	push   %eax
455c13:	e8 88 05 00 00       	call   0x4561a0
455c18:	39 74 24 10          	cmp    %esi,0x10(%esp)
455c1c:	0f 84 f9 00 00 00    	je     0x455d1b
455c22:	53                   	push   %ebx
455c23:	8b 4c 24 18          	mov    0x18(%esp),%ecx
455c27:	8b f5                	mov    %ebp,%esi
455c29:	83 c6 08             	add    $0x8,%esi
455c2c:	8b c1                	mov    %ecx,%eax
455c2e:	0f 80 f5 00 00 00    	jo     0x455d29
455c34:	83 e8 08             	sub    $0x8,%eax
455c37:	0f 80 ec 00 00 00    	jo     0x455d29
455c3d:	99                   	cltd
455c3e:	2b c2                	sub    %edx,%eax
455c40:	8b d8                	mov    %eax,%ebx
455c42:	d1 fb                	sar    $1,%ebx
455c44:	85 db                	test   %ebx,%ebx
455c46:	0f 8e 9b 00 00 00    	jle    0x455ce7
455c4c:	8d 54 24 1c          	lea    0x1c(%esp),%edx
455c50:	52                   	push   %edx
455c51:	e8 0a 06 00 00       	call   0x456260
455c56:	6a 02                	push   $0x2
455c58:	56                   	push   %esi
455c59:	50                   	push   %eax
455c5a:	e8 41 05 00 00       	call   0x4561a0
455c5f:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
455c63:	8b c1                	mov    %ecx,%eax
455c65:	99                   	cltd
455c66:	81 e2 ff 0f 00 00    	and    $0xfff,%edx
455c6c:	03 c2                	add    %edx,%eax
455c6e:	c1 f8 0c             	sar    $0xc,%eax
455c71:	83 e0 0f             	and    $0xf,%eax
455c74:	3c 03                	cmp    $0x3,%al
455c76:	75 59                	jne    0x455cd1
455c78:	8b 54 24 14          	mov    0x14(%esp),%edx
455c7c:	81 e1 ff 0f 00 00    	and    $0xfff,%ecx
455c82:	03 ca                	add    %edx,%ecx
455c84:	8d 44 24 10          	lea    0x10(%esp),%eax
455c88:	0f 80 9b 00 00 00    	jo     0x455d29
455c8e:	03 cf                	add    %edi,%ecx
455c90:	50                   	push   %eax
455c91:	0f 80 92 00 00 00    	jo     0x455d29
455c97:	8b f9                	mov    %ecx,%edi
455c99:	e8 c2 05 00 00       	call   0x456260
455c9e:	6a 04                	push   $0x4
455ca0:	57                   	push   %edi
455ca1:	50                   	push   %eax
455ca2:	e8 f9 04 00 00       	call   0x4561a0
455ca7:	8b 4c 24 28          	mov    0x28(%esp),%ecx
455cab:	8b 54 24 10          	mov    0x10(%esp),%edx
455caf:	03 ca                	add    %edx,%ecx
455cb1:	8d 54 24 10          	lea    0x10(%esp),%edx
455cb5:	70 72                	jo     0x455d29
455cb7:	52                   	push   %edx
455cb8:	89 4c 24 14          	mov    %ecx,0x14(%esp)
455cbc:	e8 9f 05 00 00       	call   0x456260
455cc1:	6a 04                	push   $0x4