439e2e:	8b c2                	mov    %edx,%eax
439e30:	f7 d8                	neg    %eax
439e32:	1b c0                	sbb    %eax,%eax
439e34:	25 04 01 00 00       	and    $0x104,%eax
439e39:	50                   	push   %eax
439e3a:	8b c1                	mov    %ecx,%eax
439e3c:	f7 d8                	neg    %eax
439e3e:	52                   	push   %edx
439e3f:	1b c0                	sbb    %eax,%eax
439e41:	25 04 01 00 00       	and    $0x104,%eax
439e46:	50                   	push   %eax
439e47:	51                   	push   %ecx
439e48:	68 04 01 00 00       	push   $0x104
439e4d:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
439e53:	50                   	push   %eax
439e54:	8b c6                	mov    %esi,%eax
439e56:	f7 d8                	neg    %eax
439e58:	1b c0                	sbb    %eax,%eax
439e5a:	25 04 01 00 00       	and    $0x104,%eax
439e5f:	50                   	push   %eax
439e60:	56                   	push   %esi
439e61:	57                   	push   %edi
439e62:	ff 15 e8 22 45 00    	call   *0x4522e8
439e68:	83 c4 24             	add    $0x24,%esp
439e6b:	85 f6                	test   %esi,%esi
439e6d:	74 63                	je     0x439ed2
439e6f:	b9 04 01 00 00       	mov    $0x104,%ecx
439e74:	8b c6                	mov    %esi,%eax
439e76:	66 83 38 00          	cmpw   $0x0,(%eax)
439e7a:	74 08                	je     0x439e84
439e7c:	83 c0 02             	add    $0x2,%eax
439e7f:	83 e9 01             	sub    $0x1,%ecx
439e82:	75 f2                	jne    0x439e76
439e84:	8b c1                	mov    %ecx,%eax
439e86:	f7 d8                	neg    %eax
439e88:	1b c0                	sbb    %eax,%eax
439e8a:	25 a9 ff f8 7f       	and    $0x7ff8ffa9,%eax
439e8f:	05 57 00 07 80       	add    $0x80070057,%eax
439e94:	85 c9                	test   %ecx,%ecx
439e96:	74 33                	je     0x439ecb
439e98:	8b d1                	mov    %ecx,%edx
439e9a:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
439ea0:	51                   	push   %ecx
439ea1:	f7 da                	neg    %edx
439ea3:	50                   	push   %eax
439ea4:	1b d2                	sbb    %edx,%edx
439ea6:	8d 81 fc fe ff ff    	lea    -0x104(%ecx),%eax
439eac:	23 d0                	and    %eax,%edx
439eae:	b8 04 01 00 00       	mov    $0x104,%eax
439eb3:	2b c1                	sub    %ecx,%eax
439eb5:	81 c2 04 01 00 00    	add    $0x104,%edx
439ebb:	51                   	push   %ecx
439ebc:	03 c0                	add    %eax,%eax
439ebe:	f7 d9                	neg    %ecx
439ec0:	1b c9                	sbb    %ecx,%ecx
439ec2:	23 c8                	and    %eax,%ecx
439ec4:	03 ce                	add    %esi,%ecx
439ec6:	e8 e5 b3 fd ff       	call   0x4152b0
439ecb:	8b c8                	mov    %eax,%ecx
439ecd:	e8 0e ee fe ff       	call   0x428ce0
439ed2:	8b 4d fc             	mov    -0x4(%ebp),%ecx
439ed5:	33 c0                	xor    %eax,%eax
439ed7:	5f                   	pop    %edi
439ed8:	33 cd                	xor    %ebp,%ecx
439eda:	5e                   	pop    %esi
439edb:	e8 70 30 01 00       	call   0x44cf50
439ee0:	8b e5                	mov    %ebp,%esp
439ee2:	5d                   	pop    %ebp
439ee3:	c2 10 00             	ret    $0x10
439ee6:	cc                   	int3
439ee7:	cc                   	int3
439ee8:	cc                   	int3
439ee9:	cc                   	int3
439eea:	cc                   	int3
439eeb:	cc                   	int3
439eec:	cc                   	int3
439eed:	cc                   	int3
439eee:	cc                   	int3
439eef:	cc                   	int3
439ef0:	8b ff                	mov    %edi,%edi
439ef2:	56                   	push   %esi
439ef3:	8b f1                	mov    %ecx,%esi
439ef5:	85 f6                	test   %esi,%esi
439ef7:	74 4c                	je     0x439f45
439ef9:	66 83 3e 00          	cmpw   $0x0,(%esi)
439efd:	74 46                	je     0x439f45
439eff:	6a 5c                	push   $0x5c
439f01:	56                   	push   %esi
439f02:	ff 15 54 23 45 00    	call   *0x452354
439f08:	8b d0                	mov    %eax,%edx
439f0a:	83 c4 08             	add    $0x8,%esp
439f0d:	85 d2                	test   %edx,%edx
439f0f:	75 04                	jne    0x439f15
439f11:	8b c6                	mov    %esi,%eax
439f13:	5e                   	pop    %esi
439f14:	c3                   	ret
439f15:	8b ce                	mov    %esi,%ecx
439f17:	57                   	push   %edi
439f18:	8d 79 02             	lea    0x2(%ecx),%edi
439f1b:	eb 03                	jmp    0x439f20
439f1d:	8d 49 00             	lea    0x0(%ecx),%ecx
439f20:	66 8b 01             	mov    (%ecx),%ax
439f23:	83 c1 02             	add    $0x2,%ecx
439f26:	66 85 c0             	test   %ax,%ax
439f29:	75 f5                	jne    0x439f20
439f2b:	2b cf                	sub    %edi,%ecx
439f2d:	83 c2 02             	add    $0x2,%edx
439f30:	d1 f9                	sar    $1,%ecx
439f32:	5f                   	pop    %edi
439f33:	8d 04 4e             	lea    (%esi,%ecx,2),%eax
439f36:	3b d0                	cmp    %eax,%edx
439f38:	72 07                	jb     0x439f41
439f3a:	b8 14 29 41 00       	mov    $0x412914,%eax
439f3f:	5e                   	pop    %esi
439f40:	c3                   	ret
439f41:	8b c2                	mov    %edx,%eax
439f43:	5e                   	pop    %esi
439f44:	c3                   	ret
439f45:	b8 8c 20 40 00       	mov    $0x40208c,%eax
439f4a:	5e                   	pop    %esi
439f4b:	c3                   	ret
439f4c:	cc                   	int3
439f4d:	cc                   	int3
439f4e:	cc                   	int3
439f4f:	cc                   	int3
439f50:	8b ff                	mov    %edi,%edi
439f52:	55                   	push   %ebp
439f53:	8b ec                	mov    %esp,%ebp
439f55:	8b 4d 08             	mov    0x8(%ebp),%ecx
439f58:	e8 93 ff ff ff       	call   0x439ef0
439f5d:	5d                   	pop    %ebp
439f5e:	c2 04 00             	ret    $0x4
439f61:	cc                   	int3
439f62:	cc                   	int3
439f63:	cc                   	int3
439f64:	cc                   	int3
439f65:	cc                   	int3
439f66:	cc                   	int3
439f67:	cc                   	int3
439f68:	cc                   	int3
439f69:	cc                   	int3
439f6a:	cc                   	int3
439f6b:	cc                   	int3
439f6c:	cc                   	int3
439f6d:	cc                   	int3
439f6e:	cc                   	int3
439f6f:	cc                   	int3
439f70:	8b ff                	mov    %edi,%edi
439f72:	55                   	push   %ebp
439f73:	8b ec                	mov    %esp,%ebp
439f75:	ff 75 10             	push   0x10(%ebp)
439f78:	8b 4d 14             	mov    0x14(%ebp),%ecx
439f7b:	33 c0                	xor    %eax,%eax
439f7d:	ff 75 0c             	push   0xc(%ebp)
439f80:	ff 75 08             	push   0x8(%ebp)
439f83:	66 89 01             	mov    %ax,(%ecx)
439f86:	50                   	push   %eax
439f87:	8b 45 18             	mov    0x18(%ebp),%eax
439f8a:	d1 e8                	shr    $1,%eax
439f8c:	50                   	push   %eax
439f8d:	51                   	push   %ecx
439f8e:	ff 15 ec 22 45 00    	call   *0x4522ec
439f94:	83 c4 18             	add    $0x18,%esp
439f97:	85 c0                	test   %eax,%eax
439f99:	74 45                	je     0x439fe0
439f9b:	e8 50 3d 00 00       	call   0x43dcf0
439fa0:	83 c0 10             	add    $0x10,%eax
439fa3:	74 0a                	je     0x439faf
439fa5:	e8 46 3d 00 00       	call   0x43dcf0
439faa:	83 c0 14             	add    $0x14,%eax
439fad:	eb 02                	jmp    0x439fb1
439faf:	33 c0                	xor    %eax,%eax
439fb1:	81 3d 30 1a 45 00 01 	cmpl   $0xfffffc01,0x451a30
439fb8:	fc ff ff
439fbb:	c7 00 c8 28 41 00    	movl   $0x4128c8,(%eax)
439fc1:	c7 40 04 f1 04 00 00 	movl   $0x4f1,0x4(%eax)
439fc8:	c7 40 08 01 fc ff ff 	movl   $0xfffffc01,0x8(%eax)
439fcf:	75 06                	jne    0x439fd7
439fd1:	ff 15 58 20 45 00    	call   *0x452058
439fd7:	b8 01 fc ff ff       	mov    $0xfffffc01,%eax
439fdc:	5d                   	pop    %ebp
439fdd:	c2 14 00             	ret    $0x14
439fe0:	33 c0                	xor    %eax,%eax
439fe2:	5d                   	pop    %ebp
439fe3:	c2 14 00             	ret    $0x14
439fe6:	cc                   	int3
439fe7:	cc                   	int3
439fe8:	cc                   	int3
439fe9:	cc                   	int3
439fea:	cc                   	int3
439feb:	cc                   	int3
439fec:	cc                   	int3
439fed:	cc                   	int3
439fee:	cc                   	int3
439fef:	cc                   	int3
439ff0:	8b ff                	mov    %edi,%edi
439ff2:	55                   	push   %ebp
439ff3:	8b ec                	mov    %esp,%ebp
439ff5:	56                   	push   %esi
439ff6:	57                   	push   %edi
439ff7:	68 08 02 00 00       	push   $0x208
439ffc:	ff 75 14             	push   0x14(%ebp)
439fff:	8b f9                	mov    %ecx,%edi
43a001:	ff 75 10             	push   0x10(%ebp)
43a004:	ff 75 0c             	push   0xc(%ebp)
43a007:	8b 37                	mov    (%edi),%esi
43a009:	ff 75 08             	push   0x8(%ebp)
43a00c:	8b 76 28             	mov    0x28(%esi),%esi
43a00f:	8b ce                	mov    %esi,%ecx
43a011:	ff 15 84 23 45 00    	call   *0x452384
43a017:	8b cf                	mov    %edi,%ecx
43a019:	ff d6                	call   *%esi
43a01b:	5f                   	pop    %edi
43a01c:	5e                   	pop    %esi
43a01d:	5d                   	pop    %ebp
43a01e:	c2 10 00             	ret    $0x10
43a021:	cc                   	int3
43a022:	cc                   	int3
43a023:	cc                   	int3
43a024:	cc                   	int3
43a025:	cc                   	int3
43a026:	cc                   	int3
43a027:	cc                   	int3
43a028:	cc                   	int3
43a029:	cc                   	int3
43a02a:	cc                   	int3
43a02b:	cc                   	int3
43a02c:	cc                   	int3
43a02d:	cc                   	int3
43a02e:	cc                   	int3
43a02f:	cc                   	int3
43a030:	8b ff                	mov    %edi,%edi
43a032:	55                   	push   %ebp
43a033:	8b ec                	mov    %esp,%ebp
43a035:	8b 55 08             	mov    0x8(%ebp),%edx
43a038:	8b ca                	mov    %edx,%ecx
43a03a:	56                   	push   %esi
43a03b:	8d 71 02             	lea    0x2(%ecx),%esi
43a03e:	8b ff                	mov    %edi,%edi
43a040:	66 8b 01             	mov    (%ecx),%ax
43a043:	83 c1 02             	add    $0x2,%ecx
43a046:	66 85 c0             	test   %ax,%ax
43a049:	75 f5                	jne    0x43a040
43a04b:	2b ce                	sub    %esi,%ecx
43a04d:	d1 f9                	sar    $1,%ecx
43a04f:	75 46                	jne    0x43a097
43a051:	e8 9a 3c 00 00       	call   0x43dcf0
43a056:	83 c0 10             	add    $0x10,%eax
43a059:	74 0a                	je     0x43a065
43a05b:	e8 90 3c 00 00       	call   0x43dcf0
43a060:	83 c0 14             	add    $0x14,%eax
43a063:	eb 02                	jmp    0x43a067
43a065:	33 c0                	xor    %eax,%eax
43a067:	81 3d 30 1a 45 00 01 	cmpl   $0xfffffc01,0x451a30
43a06e:	fc ff ff
43a071:	c7 00 c8 28 41 00    	movl   $0x4128c8,(%eax)
43a077:	c7 40 04 0e 05 00 00 	movl   $0x50e,0x4(%eax)
43a07e:	c7 40 08 01 fc ff ff 	movl   $0xfffffc01,0x8(%eax)
43a085:	75 06                	jne    0x43a08d
43a087:	ff 15 58 20 45 00    	call   *0x452058
43a08d:	b8 01 fc ff ff       	mov    $0xfffffc01,%eax
43a092:	5e                   	pop    %esi
43a093:	5d                   	pop    %ebp
43a094:	c2 08 00             	ret    $0x8
43a097:	03 c9                	add    %ecx,%ecx
43a099:	66 83 7c 11 fe 5c    	cmpw   $0x5c,-0x2(%ecx,%edx,1)
43a09f:	74 55                	je     0x43a0f6
43a0a1:	8d 41 04             	lea    0x4(%ecx),%eax
43a0a4:	3b 45 0c             	cmp    0xc(%ebp),%eax
43a0a7:	76 46                	jbe    0x43a0ef
43a0a9:	e8 42 3c 00 00       	call   0x43dcf0
43a0ae:	83 c0 10             	add    $0x10,%eax
43a0b1:	74 0a                	je     0x43a0bd
43a0b3:	e8 38 3c 00 00       	call   0x43dcf0
43a0b8:	83 c0 14             	add    $0x14,%eax
43a0bb:	eb 02                	jmp    0x43a0bf
43a0bd:	33 c0                	xor    %eax,%eax
43a0bf:	81 3d 30 1a 45 00 f2 	cmpl   $0xfffffbf2,0x451a30
43a0c6:	fb ff ff
43a0c9:	c7 00 c8 28 41 00    	movl   $0x4128c8,(%eax)
43a0cf:	c7 40 04 17 05 00 00 	movl   $0x517,0x4(%eax)
43a0d6:	c7 40 08 f2 fb ff ff 	movl   $0xfffffbf2,0x8(%eax)
43a0dd:	75 06                	jne    0x43a0e5
43a0df:	ff 15 58 20 45 00    	call   *0x452058
43a0e5:	b8 f2 fb ff ff       	mov    $0xfffffbf2,%eax
43a0ea:	5e                   	pop    %esi
43a0eb:	5d                   	pop    %ebp
43a0ec:	c2 08 00             	ret    $0x8
43a0ef:	c7 04 11 5c 00 00 00 	movl   $0x5c,(%ecx,%edx,1)
43a0f6:	33 c0                	xor    %eax,%eax
43a0f8:	5e                   	pop    %esi
43a0f9:	5d                   	pop    %ebp
43a0fa:	c2 08 00             	ret    $0x8
43a0fd:	cc                   	int3
43a0fe:	cc                   	int3
43a0ff:	cc                   	int3
43a100:	8b ff                	mov    %edi,%edi
43a102:	55                   	push   %ebp
43a103:	8b ec                	mov    %esp,%ebp
43a105:	56                   	push   %esi
43a106:	8b 75 08             	mov    0x8(%ebp),%esi
43a109:	85 f6                	test   %esi,%esi
43a10b:	74 3c                	je     0x43a149
43a10d:	0f b7 06             	movzwl (%esi),%eax
43a110:	50                   	push   %eax
43a111:	ff 15 5c 23 45 00    	call   *0x45235c
43a117:	83 c4 04             	add    $0x4,%esp
43a11a:	b9 5c 00 00 00       	mov    $0x5c,%ecx
43a11f:	85 c0                	test   %eax,%eax
43a121:	74 11                	je     0x43a134
43a123:	b8 3a 00 00 00       	mov    $0x3a,%eax
43a128:	66 3b 46 02          	cmp    0x2(%esi),%ax
43a12c:	75 06                	jne    0x43a134
43a12e:	66 3b 4e 04          	cmp    0x4(%esi),%cx
43a132:	74 15                	je     0x43a149
43a134:	66 3b 0e             	cmp    (%esi),%cx
43a137:	75 06                	jne    0x43a13f
43a139:	66 3b 4e 02          	cmp    0x2(%esi),%cx
43a13d:	74 0a                	je     0x43a149
43a13f:	b8 01 00 00 00       	mov    $0x1,%eax
43a144:	5e                   	pop    %esi
43a145:	5d                   	pop    %ebp
43a146:	c2 04 00             	ret    $0x4
43a149:	33 c0                	xor    %eax,%eax
43a14b:	5e                   	pop    %esi
43a14c:	5d                   	pop    %ebp
43a14d:	c2 04 00             	ret    $0x4
43a150:	8b ff                	mov    %edi,%edi
43a152:	55                   	push   %ebp
43a153:	8b ec                	mov    %esp,%ebp
43a155:	83 ec 28             	sub    $0x28,%esp
43a158:	a1 e4 f8 44 00       	mov    0x44f8e4,%eax
43a15d:	33 c5                	xor    %ebp,%eax
43a15f:	89 45 fc             	mov    %eax,-0x4(%ebp)
43a162:	8b 45 08             	mov    0x8(%ebp),%eax
43a165:	8d 4d d8             	lea    -0x28(%ebp),%ecx
43a168:	56                   	push   %esi
43a169:	8b 75 0c             	mov    0xc(%ebp),%esi
43a16c:	51                   	push   %ecx
43a16d:	6a 00                	push   $0x0
43a16f:	50                   	push   %eax
43a170:	ff 15 b8 20 45 00    	call   *0x4520b8
43a176:	85 c0                	test   %eax,%eax
43a178:	74 22                	je     0x43a19c
43a17a:	85 f6                	test   %esi,%esi
43a17c:	74 0b                	je     0x43a189
43a17e:	8b 4d d8             	mov    -0x28(%ebp),%ecx
43a181:	c1 e9 04             	shr    $0x4,%ecx
43a184:	83 e1 01             	and    $0x1,%ecx
43a187:	89 0e                	mov    %ecx,(%esi)